Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
04-28 01:34
관리 메뉴

zyint's blog

Anaconda를 이용해서 윈도우즈에 GPU버전으로 TensorFlow 설치하기 본문

Machine learning

Anaconda를 이용해서 윈도우즈에 GPU버전으로 TensorFlow 설치하기

진트­ 2021. 12. 9. 11:21

TensorFlow 홈페이지의 TensorFlow 설치 문서에서는 다양한 설치 방법들을 소개하고 있습니다. 설치방법은 개인적 취향에 따라 선택하면 됩니다. 여기에서는 윈도우즈 10에 TensorFlow GPU 버전을 설치하는 방법을 다룹니다. Anaconda, pip를 이용하며 Python 3.6 버전을 사용합니다. Anaconda, pip가 무엇인지 몰라도 됩니다. 하나씩 소개해드리겠습니다.
이 방법을 따라하려면 다음과 같은 준비물이 필요합니다.

  • NVIDIA 그래픽 카드
  • 윈도우즈 7 이상 64비트 운영체제. 여기에서는 윈도우즈10 버전에서 설치를 진행합니다.
  • 넉넉한 하드디스크
  • 끈기, 의지, 노력, 열정…

그림. TensorFlow 홈페이지의 설치 페이지

Anaconda 설치

현재 이 글을 작성하고 있는 2018년 12월 8일 시점으로 TensorFlow 1.12는 파이썬 2.7, 3.4, 3.5, 3.6 버전을 지원합니다. 하지만, 윈도우즈는 윈도우즈7 이상 64비트를 지원하며, 파이썬 중에서 파이썬3만 지원합니다.

그림. 현재 TensorFlow 1.12에서 지원하는 운영체제

파이썬은 현재 3.7 버전까지 나왔으나 TensorFlow는 파이썬 3.6을 지원하므로 파이썬 3.6을 설치해줘야 합니다.

파이썬 3.6이 필요하다고 하니 Python 홈페이지에 가서 파이썬3를 다운받아서 설치하려고 할 수 도 있습니다. 하지만 그러기 전에(!!) 생각해볼게 있습니다. 한 컴퓨터에서 동시에 파이썬 3.6 뿐만 아니라 파이썬 2.7이나 파이썬 3.7을 써야하는 경우도 있습니다. 컴퓨터 시스템에 바로 설치된 파이썬을 사용하여 개발을 하면 파이썬 버전을 바꾸거나 패키지를 업데이트 할 때 문제가 발생할 수 있습니다. 혹은, 실수로 파이썬 설치를 하는데 문제가 생겼을 때, 시스템에 바로 설치하는 경우 문제 해결이 어려울 수 있습니다. 이런 경우에 Ananconda가 좋은 대안이 될 수 있습니다.

즉, 한 시스템(혹은 하나의 컴퓨터)에 다양한 버전의 파이썬을 설치하는 경우 Anaconda를 사용하면 됩니다. 설치하다가 실수해도 지우고 다시 설치하기 쉽습니다. 파이썬 3.6 버전을 설치할 때, 한 컴퓨터에 GPU를 사용하는 TensorFlow와 CPU를 사용하는 TensorFlow를 같이 설치할 수도 있습니다.

Anaconda는 패키지 관리 도구입니다. 패키지 설치와 관리를 편하게 하며, 윈도우, 맥, 리눅스 버전을 제공하여 운영체제별로 신경써야 하는 복잡한 부분들을 대신해줍니다. 환경(environment)이라는 것을 제공하는데, 하나의 컴퓨터에 여러 environment을 만들 수 있습니다. 환경 별로 설치된 패키지 종류도 다르게 할 수 있고, 버전도 다르게 할 수 있습니다. 예를 들어 파이썬 3.6 버전을 설치할 때, 한 컴퓨터에 GPU를 사용하는 TensorFlow와 CPU를 사용하는 TensorFlow를 environment를 다르게해서 한 컴퓨터에 같이 설치할 수도 있습니다.

Anaconda 다운로드 페이지에서 윈도우 64비트 버전을 다운로드 받습니다. 여기에서는 Python 3.7로 받습니다. TensorFlow는 파이썬 3.6만 지원한다고 했는데 Python 3.7 버전 받아도 되는지 걱정할 수 있습니다. 괜찮습니다. 나중에 environment를 파이썬3.6으로 만들어주면 됩니다.

그림. 다운로드 받아야 하는 버전

실행하면 다음과 같은 영롱한 설치 화면이 뜹니다.

약관 동의를 하면 사용자 별로 설치를 하겠냐고 묻는데 Just Me를 선택합니다.

설치 경로를 지정하는 부분이 나오는데, 기본 경로는 윈도우 사용자 디렉토리 밑에 Anaconda3 폴더를 만들고 여기에 Anaconda에서 사용하는 각종 파일들이 저장됩니다. 윈도우 사용자분들의 경우 한글 이름으로 윈도우 계정을 만드는데, 여러모로 한글이 경로에 끼어있으면 문제가 될 가능성이 높습니다. 파이썬3 버전의 경우 유니코드를 잘 지원하니까 괜찮겠지만… 다년간의 경험으로는 이런거는 영어로만 지정하는게 좋습니다.

이 디렉토리에 저장되는 파일들의 용량이 꽤 큽니다. 그림에는 2.9GB가 필요하다고 하는데 정말로 수 기가 바이트는 잡아먹습니다. 어떤 파이썬 패키지를 설치하는지에 따라 달라지겠지만 environment 개수가 늘어나면 필요한 용량도 더 늘어납니다. C 드라이브는 요즘 보통 SSD를 사용하니 용량이 부족할 수도 있구요. 저는 아래 경로를 한글이 포함되지 않는 다른 경로로 다음과 같이 바꿔서 설치했습니다.

그림. 기본으로 설정된 설치 경로. 경로에 글이 껴있으니 다른 경로로 바꿔주자.

그림. 새로 지정한 설치 경로

혹시 기존에 Anaconda를 설치한적이 있거나 지정한 경로에 다른 파일들이 있으면 설치가 안됩니다. 해당 경로로 가서 파일들을 지우거나 다른 경로를 지정해줘야 할 수도 있습니다.

그림. 이미 경로에 뭔가가 있으면 뜨는 메시지. 처음 설치하는 경우는 이런 메시지 안뜨니 걱정할필요 없습니다.

Next를 클릭하면 설치를 마칠 수 있습니다.

Visual studio 2017 community edition 설치

저는 파이썬 개발할 때 Visual Studio를 사용하지 않습니다만, 뒤에서 나올 CUDA 드라이버 설치할 때 Visual studio가 필요합니다. VS studio가 없으면 CUDA 드라이버 설치시에 에러가 나더군요. (돌이켜 생각해보면 CUDA 설치 시 Visual studio Integration을 설치하지 않으면 VS Studio를 굳이 설치 하지 않아도 될거같지만, 해보지는 않았습니다.)

맘편하게 Visual studio 설치해주도록 합니다.

Visual Studio 다운로드 페이지에서 Community 버전을 다운로드 받습니다.

설치할 때 이것저것 다운받을게 많아보이지만, C++를 사용한 데스크톱 개발을 설치했습니다.

NVIDIA 소프트웨어 설치

이제 TensorFlow를 GPU버전으로 설치할 때 필요한 NVIDIA 소프트웨어를 설치합니다. 이 부분에서 제가 잘 안되어서 삽질을 좀 했습니다. TensorFlow에서 제공하는 문서는 여기에 있습니다만, 본 문서에서는 구체적으로 어떻게 설치해야하는지 알려드립니다.

첫 번째로, 본인이 사용하는 그래픽카드가 CUDA를 지원하는지 여기에서 확인합니다. 최근 NVIDIA 그래픽카드는 거의 다 지원합니다. 저는 NVIDIA Geforce GTX 1080 Ti를 사용합니다.

글 작성 시점에서 TensorFlow가 필요한 소프트웨어와 버전은 다음과 같았습니다.

NVIDIA 그래픽카드 드라이버를 설치해줍니다. 그래픽 카드 드라이버가 384.x 버전 이후 버전이어야 합니다. 모르겠으면 최신 버전 설치해줍니다.
https://www.nvidia.com/drivers

CUDA Toolkit 다운로드 페이지 로 이동합니다. TensorFlow는 CUDA 9.0을 지원합니다. 다운로드 페이지에서 Download Now를 클릭합니다

최신 버전을 다운받고 싶은 유혹을 뿌리치고 Legacy release 버튼을 클릭합니다.

신규 버전이 있지만 꾹 참고 CUDA Toolkit 9.0 버전 다운로드 페이지로 갑니다.

저는 Windows/x86_64/10/exe(local)을 선택했습니다.

바로 가려면 아래 경로로 가면 됩니다.
https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal

다운로드해야 하는게 많이 보이는데 하나하나 다운로드 받아서 순서대로 설치해주면 됩니다.

아직 끝이 아닙니다. CuDNN SDK를 다운로드 받습니다. https://developer.nvidia.com/cudnn

Download cuDNN을 클릭합니다. 귀찮지만, 다운받으려면 NVIDIA 가입을 해야 합니다. 가입을 하고 로그인하면 다음과 같이 링크들을 볼 수 있습니다.

Windows 10용 CUDA 9.0, cuDNN 7.4.1을 받습니다. 설치 파일이 아닌 압축파일이 있는데, 적당한 디렉토리에 풀어줍니다.
압축을 풀면 cuda라는 폴더가 있고 안에 이런저런 파일이 있습니다. 저는 다음과 같은 경로에 압축을 풀었습니다.

TensorFlow GPU 버전 설치

Anaconda navigator로 Anaconda에 파이썬 3.6 환경을 추가합니다. Anaconda와 같이 설치된 Anaconda navigator를 실행해서 Environments를 클릭합니다. 기본으로는 base (root) 환경만 있습니다.

아래에 Create를 클릭하고, 새로운 환경을 만들 수 있습니다.

py36이라고 환경 이름을 설정하고 Package는 Python 3.6을 선택해줍니다. 여기서 꼭 py36으로 지정할 필요는 없습니다. tfgpu 처럼 지정해줘도 됩니다. 해당 env에 어떤 패키지가 설치되어있는지 본인이 알아볼 수 있으면 됩니다.

이렇게 추가된 env는 Anaconda3\envs 경로에 추가가 되며, env안에서 설치된 패키지들은 이 디렉토리 밑에 추가됩니다.

윈도우에서 Anaconda prompt를 실행해주면 다음과 같이 창이 뜨며, 커맨드 라인에 표시된 (base)가 현재 기본 환경으로 선택된걸 확인할 수 있습니다.

다음과 같은 명령으로 환경을 바꿀 수 있습니다.

activate (env이름)

여기에서는 다음과같이 py36 환경으로 전환합니다

activate py36

이 상태에서 아래 명령어로 tensorflow-gpu를 설치합니다.

pip install tensorflow-gpu 

이 명령은 pip는 패키지 관리자로 tensorflow-gpu를 설치해줍니다. 정확하게는 anaconda의 py36이라는 env에 설치를 해줍니다.

TensorFlow 쓰려면 아래와 같이 NVIDIA 소프트웨어들의 PATH를 설정해줘야 합니다

SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\CUPTI\libx64;%PATH%
SET PATH=H:\Workspace\lib\cudnn\cuda\bin;%PATH%

특히, 마지막 cudnn는 앞에서 다운받아 설치한 cudnn\cuda\bin 의 경로를 지정해줘야 합니다. 이 위치에는 cudnn64_7.dll 파일이 있습니다.

SET PATH=… 명령은 현재 열려있는 Anaconda Prompt에만 적용됩니다. 매번 입력하기 귀찮으면 윈도우의 ‘환경 변수’에서 ‘시스템 변수’ 중 PATH에 위 경로들을 추가하면 매번 위 명령을 칠 필요가 없습니다.

Tensoflow-gpu 패키지도 설치하고 패스도 설정했으면 다음과 같이 입력하면 현재 설치된 TensorFlow 버전이 출력됩니다.

python -c "import tensorflow as tf; print(tf.__version__)"

TensorFlow 버전이 출력되면 성공한겁니다. 수고하셨습니다!

 

2018/12/8 작성

 

Comments