본문 바로가기

머신러닝

아나콘다(파이썬 3.8) + 텐서플로 2.5 설치

Windows 10에서 텐서플로 2.5 설치하기 (2021.06.15)

 

- CUDA Toolkit v11.3

- cuDNN v8.2.0

- Python 3.8 (Anaconda3)

- TensorFlow 2.5.0

 

1. CUDA Toolkit 설치

CUDA 툴킷 다운로드

(https://developer.nvidia.com/cuda-downloads)

 

CUDA Toolkit 11.3 Update 1 Downloads

Resources CUDA Documentation/Release NotesMacOS Tools Training Sample Code Forums Archive of Previous CUDA Releases FAQ Open Source PackagesSubmit a Bug

developer.nvidia.com

CUDA Toolkit 11.3 다운로드 (cuda_11.3.1_465.89_win10.exe)

 

CUDA 툴킷 설치

installer 압축이 다 풀리면 아래의 "NVIDIA 설치 프로그램"이 실행된다.
설치방법에서 "빠른 설치"를 선택한 후 설치 중이다.

 

2. cuDNN 설치

cuDNN 다운로드

cuDNN을 다운받기 위해서는 NVIDIA Developer Program Membership(https://developer.nvidia.com/)에 가입되어 있어야 한다.

 

NVIDIA Developer

Let’s Invent The Future Together Inspiring Sessions. Technical Training. Access to Experts.

developer.nvidia.com

 

CUDA Toolkit 버전에 맞는 cuDNN을 설치한다.

(https://developer.nvidia.com/rdp/cudnn-archive)

 

cuDNN Archive

NVIDIA cuDNN is a GPU-accelerated library of primitives for deep neural networks.

developer.nvidia.com

 

cuDNN v8.2.0이 CUDA 11.X을 지원한다.

 

cuDNN Library for Windows (x86)

 

cuDNN Library for Windows (x86)을 클릭하면, NVIDIA Developer Program Membership이 필요하다는 창이 뜨고, 계정으로 로그인 또는 가입을 한 후 다운로드 받는다.

 

cuDNN 설치

다운받은 cudnn-11.3-windows-x64-v8.2.0.53.zip 파일의 압축을 풀면 cuda라는 폴더가 생성되고, bin, include, lib라는 폴더가 포함되어 있다. 

 

이들 폴더에 있는 파일들을 CUDA Toolkit 폴더에 종류별로 복사한다.

 

(1) cuda\bin 폴더에 있는 모든 파일(*.dll)을 복사하여 아래 폴더에 붙여넣는다.

    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin

 

(2) cuda\include 폴더에 있는 모든 파일(*.h)을 복사하여 아래 폴더에 붙여넣는다.

    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\include

 

(3) cuda\lib\x64 폴더에 있는 모든 파일(*.lib)을 복사하여 아래 폴더에 붙여넣는다.

    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\lib\x64

 

3. CUDA 디바이스 점검

커맨드 창(윈도우키+R)에서 다음의 명령을 실행시켜 CUDA 디바이스의 상태를 점검한다.

 

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\extras\demo_suite\deviceQuery.exe"

 

 

deviceQuery는 현 시스템의 CUDA 디바이스 속성을 보여준다.

디바이스별 상세 속성과 CUDA 드라이버 버전, 런타임 버전, 디바이스 종류 및 개수 등을 알려주는데, 가장 아래에 Result = PASS라고 나타나면 지금까지 설치한 CUDA 툴킷이 현재 설치된 디바이스에서 정상 동작할 것이라는 의미이다.

만약, Result = FAIL이 나타난다면, 디바이스 드라이버를 최신 버전으로 설치하면 해결되는 경우가 있다고 한다.

 

4. 아나콘다 파이썬 3.8 버전 설치

(https://www.anaconda.com/products/individual)

 

Anaconda | Individual Edition

Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

 

python 3.8과 64bit windows 버전의 아나콘다 다운로드

 

아나콘다 홈페이지에서 Anaconda Individual Edition의 파이썬 버전을 확인하고 다운받는다. 

 

5. 가상환경 설치

tensorflow25라는 이름의 가상환경 생성

 

   1. 아나콘다 네비게이터를 실행한 후, 왼쪽 메뉴 중 "Environments"를 클릭

   2. 프로그램 화면 가운데 아래의 "[+] Create" 아이콘 클릭

   3. 가상환경 생성 창에서 Name:에  가상환경 이름을 입력하고, Packages: 에서 파이썬 버전을 확인한 후
      "Create" 버튼 클릭

   4. 가상환경 설치 결과 확인 (위 그림의 경우 tensorflow25라는 가상환경이 생성되었음)

 

6. TensorFlow 2.5 설치

가상환경에서 TensorFlow pip 패키지 설치

 

pip install --upgrade tensorflow

 

 

tensorflow 2.5.0 설치

 

tensorflow 정상 동작 여부 확인하기 위해 파이썬에서 tensorflow 모듈 로드한다.

 

import tensorflow as tf

 

정상적인 경우, 아래와 같은 메시지가 뜬다.


2021-06-15 17:50:50.472542: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudart64_110.dll

 

※ 설치 후, 바로 파이썬에서 tensorflow를 로딩하였을 때 cudart64_110.dll과 관련하여 아래와 같은 경고문이 나타났으나, 컴퓨터를 재부팅한 후 다시 실행시켰더니 정상적으로 실행되었다. 

"Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found"

(https://github.com/tensorflow/tensorflow/issues/48868)

 

"Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found" · Issue #48868 · tensorflow/tensorflo

Please make sure that this is a build/installation issue. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:...

github.com

 

호스트 런타임에 보이는 물리적 장치 목록을 확인하기 위해 아래와 같이 입력한다.

 

tf.config.list_physical_devices()

 

아래와 같이 GPU 정보가 나온다면 GPU를 사용할 수 있는 상태이다.

 

[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'), PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU'), PhysicalDevice(name='/physical_device:GPU:1', device_type='GPU')]