다른 분들은 어떨지 모르지만, 저는 파이썬도 비쥬얼 스튜디오를 이용해 작업합니다. 비쥬얼 스튜디오에 워낙 익숙하다 보니 다른 IDE를 쓰기가 불편하더군요. 특히 비쥬얼 스튜디오의 강력한 디버깅 만큼은 그 어떤 IDE도 따라오지 못한다 생각합니다. 과거 부터 Python Tools for Visual Studio 확장 기능 덕분에 네이티브 수준으로 비쥬얼 스튜디오에서 파이썬을 쓸수 있어 다른 IDE를 사용할 이유가 없을 정도죠.
이전 글 참고
2012/02/11 - [이것은 추천해야돼!!/이렇게 한번 해보세요] - Visual Studio 2010 에서 Python 사용하기
최근에는 MS에서 Visual Studio 2017부터 PTVS를 아예 기본 탑재하며, 파이썬을 공식 지원하는 모습까지 보여주고 있습니다. 그래서 이를 활용해 비쥬얼 스튜디오에서 텐서플로우 Tensorflow를 개발할수 있는 환경을 셋팅해보도록 하겠습니다. 우리도 딥러닝 해봅시다.
1. 파이썬 설치
먼저 Visual Studio 2017에서 파이썬 개발을 셋팅하도록 합니다.
텐서플로우는 파이선 3.5 이상버전의 64bit 환경에서 돌아갑니다. 설치가 완료되면, 환경 변수에서 PATH를 등록해주어야 합니다. 제어판 - 시스템 속성 - 환경 변수 - PATH 편집에서 아래와 같이 파이썬의 경로 두곳을 추가해 줍니다.
이 과정은 파이썬 인스톨러를 통해 설치할 경우, 설치 옵션에서 자동으로 등록이 가능하지만 비쥬얼 스튜디오를 통해 파이썬을 설치 할때는 생략되기 때문에 직접 등록해주어야 합니다.
파이썬 경로
%Program Files%\Microsoft Visual Studio\Shared\Python36_64\
%Program Files%\Microsoft Visual Studio\Shared\Python36_64\Scripts\
2. 텐서플로우 설치
pip3 install --upgrade tensorflow-gpu
뒤의 인자 -gpu는 그래픽카드 자원을 사용하겠다는 뜻입니다. 없이 설치하여도 텐서플로우를 사용하는데는 문제 없습니다. 그래픽 카드 자원을 사용하기 위해서는 몇가지 필요조건이 있습니다. 먼저 CUDA를 지원하는 nVidia 그래픽 카드가 필요합니다. 그리고 CUDA Toolkit과 nVidia에서 제공하는 Deep Neural Network library(cuDNN)이 필요합니다.
3. CUDA Toolkit 설치
이 포스팅을 쓰는 시점에서 텐서플로우 버전은 CUDA Toolkit 9.0과 cuDNN v7.0을 필요로 합니다. CUDA Toolkit Download 페이지를 가보면, 최신 버전을 다운받게 됩니다. 바로 다운로드를 하지 마시고, 옆의 Legacy Release 버튼을 눌러, 이전 버전 CUDA Toolkit 리스트에서 필요로 하는 버전을 다운받습니다. 여기선 구버전인 9.0을 다운 받아 설치 합니다.
4. cuDNN 다운로드
cuDNN의 경우는 CUDA Toolkit과 다르게 다운로드가 모두에게 오픈 되어있지 않습니다. nVidia에 개발자 등록을 해야만 받을 수 있는데, 거창한건 아닙니다. 간단한 사용목적과 이메일 인증만 받으면 바로 nVidia Developer로 등록할 수 있으며, cuDNN을 다운 받을수 있습니다.
cuDNN 다운로드 페이지를 보면 아래와 같이 여러버전이 존재합니다. CUDA Toolkit의 버전과 텐서플로우에서 요구하는 버전을 확인하고, 맞는 버전을 다운로드 받습니다.
cuDNN은 설치 버전이 아닌 압축파일로 다운로드 됩니다. 압축 해제를 하면, bin 폴더에 cudnn DLL 파일(버전에 따라 파일명이 정해져있습니다)이 하나 있는데, 이것을 위에 CUDA Toolkit이 설치된 bin 폴더에 복사해줍니다.
%Program Files%\NVIDIA GPU Computing Toolkit\CUDA\버전\bin\
5. Hello, Tensorflow
이제 모든 준비가 끝났습니다. 비쥬얼 스튜디오에서 파이썬 프로젝트를 하나 생성하여, Hello, Tensorflow 코드를 실행해봅니다.
import tensorflow as tf hello = tf.constant('Hello, TensorFlow!') sess = tf.Session() print(sess.run(hello))
아래와 같이 나온다면, 텐서플로우가 정상 설치 된것입니다.