이런 건 정리해 두지 않으면 나중에 꼭 처음부터 다시 삽질하게 된다.


여기 적혀있는 내용은 2017년 12월 19일 기준이며, Anaconda로 Python 3.6을 깔아놓은 윈도우 7 시스템에 CUDA를 지원하는 그래픽 카드가 설치된 경우를 기준으로 한다. 그리고 텐서플로우 1.4를 깔아서 사용하기로 했다.


혹시 방화벽 때문에 프록시 설정이 필요하다면 conda, pip, git 등에 대해 각각의 프록시 지정 방법을 숙지하고 작업해야 한다.

(conda나 pip는 설정 파일에서 지정해도 되고 아니면 --proxy=https://proxyUsername:proxyPassword@proxy.server.com:port 같은 식으로 명령행 옵션을 줘도 된다. git의 경우는 git config --global http.proxy http://proxyUsername:proxyPassword@proxy.server.com:port 같은 식으로 프록시를 설정하면 된다.)


1. CUDA Toolkit 설치

현재 CUDA 툴킷 최신 버전은 9.1이지만, 텐서플로우 1.4에서는 8.0만 지원하므로 (9.1이 깔려있다고 하더라도) 8.0이 안 깔려 있는 컴퓨터라면 8.0을 깔아줘야 한다.

다운로드 주소: https://developer.nvidia.com/cuda-80-ga2-download-archive 여기서 자기 시스템을 클릭클릭하면 다운로드 적합한 버전에 대한 링크가 뜬다.


2. cuDNN 설치

cuDNN도 최신 버전은 7이지만 텐서플로우 1.4에서는 6만 지원하므로 (7이 깔려있다고 하더라도) 6이 안 깔려 있다면 6도 깔아줘야 한다.

다운로드 주소: https://developer.nvidia.com/rdp/cudnn-download 이건 그냥 다운받을 수 없고 nVidia 개발자 프로그램에 가입해야 한다. 뭐 돈 들고 그러는 거 아니니까 잽싸게 가입하고 나서 다운로드 받으면 된다.

설치 방법: zip 파일을 받으면 디렉토리 안에 파일이 몇 개 들어있다. bin 디렉토리에 있는 건 CUDA 툴킷의 bin 디렉토리에 (보통은 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin)에 넣고, include, lib 디렉토리에 있는 것도 마찬가지로 해당되는 디렉토리로 복사해 주면 끝난다.


3. Tensorflow 설치 (https://www.tensorflow.org/install/install_windows 참조)

우선 텐서플로우용 환경을 하나 만든다. 파이썬 3.6을 쓰고 환경 이름은 tensorflow라고 하면 다음과 같은 명령을 쓰면 된다.

conda create -n tensorflow python=3.6

다음과 같이 하여 tensorflow 환경을 활성화한다. (프롬프트 바뀌는 것 확인)

activate tensorflow

그리고 나서 gpu 버전의 텐서플로우를 설치한다.

pip install --ignore-installed --upgrade tensorflow-gpu


4. HDF5, h5py 설치

이건 꼭 필요한 건 아니지만 Keras에서 디스크에 데이터를 저장고 싶다면 설치해야 한다. 그냥 conda 프롬프트나 Anaconda 내비게이터에서 설치하면 된다.

conda install hdf5

conda install h5py


5. graphviz, pydot 설치

이건 시각화에 필요한 모듈인데, 아나콘다에서 바로 설치가 되진 않는다.

pip install graphviz 명령으로 graphviz를 설치한다. 그리고 나서 시스템 PATH에 graphviz의 bin 디렉토리를 추가해야 한다. (그냥 별 옵션 없이 설치하면 C:\Program Files (x86)\Graphviz2.38\bin 이다.)


pydot도 파이썬 3.6에서는 기본 conda로 설치는 안 되고, 대신 pip install git+https://github.com/pydot/pydot-ng.git 라는 명령을 써서 설치해야 한다.


설치가 잘 되었는지 확인하고 싶다면 https://pythonhaven.wordpress.com/tag/pydot/ 여기에 있는 간단한 예제를 실행시켜보자.


6. scipy, matplotlib, PIL, pyyaml 설치

이것저것 하다 보면 PIL이 없어서 에러가 나는 경우가 있다. scipy, matplotlib 같은 건 거의 필수 아이템이니까 설치해야 하고...

scipy, pyyaml은 pip로 케라스를 설치하면 의존성 때문에 자동으로 깔아주는데, 혹시 케라스 설치할 때 UnicodeDecodeError가 나면서 설치가 제대로 되지 않는 문제가 생긴다면 따로 먼저 깔아보자. 나도 UnicodeDecodeError가 나서 잠시 고민했으나, 따로 깔아주니 괜찮았다. 

conda scipy

conda matplotlib

conda install pillow

conda pyyaml


7. Keras 설치

여기까지 하면 케라스 설치를 할 준비가 끝난다. 케라스 설치는 다음과 같은 명령을 내리면 된다.


pip install keras


끝.

간단하게 계산을 한다든가 파이썬 스크립트를 돌릴 때 Jupyter notebook을 띄워서 iPython 환경에서 작업을 할 때가 많습니다. 작업한 내역을 그대로 문서처럼 저장해 뒀다가 나중에 그대로 열어서 보기가 좋기 때문에 노트 겸용으로 쓰기 편하니까요. 


회사에서는 OS 기본 브라우저는 인터넷 익스플로러로 설정해놓고 쓰는데, 이러면 Jupyter notebook을 실행시키면 일단 IE에서 창이 뜨게 됩니다. 안타깝게도 (제가 뭔가 설정을 잘못해서 그런 걸지도 모르지만) IE에서는 Alt-Enter (셀을 실행한 다음 다음 셀에서 삽입 모드로 전환) 기능에 뭔가 문제가 있어서 매번 셀을 실행한 다음에 다음 셀로 내려가서는 한 번 더 엔터 키를 눌러야 삽입 모드로 들어가서 좀 불편합니다. 그래서 크롬에서 새 창이나 탭을 열고 주소를 입력해서 주피터를 시작하는데, 이게 또 하다 보면 귀찮습니다.


그래서 Jupyter notebook 기본 브라우저를 변경하는 방법을 찾아보니 https://stackoverflow.com/questions/35229604/how-to-change-the-default-browser-used-by-the-ipython-jupyter-notebook-in-linux 같은 글이 있더군요. 그래서 그대로 해 봤는데, 파일 경로를 영 못 알아먹는 것 같습니다. 예를 들어 컴퓨터에서 크롬 브라우저 실행파일이 C:\Program Files (x86)\Google\Chrome\Application\chrome.exe 라고 할 때, c.NotebookApp.browser = u'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe' 같은 식으로 설정파일에 지정을 해 줬더니 "No such file or directory: C:/Users/MY_USER_NAME/Files"라는 에러 메시지가 뜹니다. "MY_USER_NAME" 부분은 윈도우 시스템의 사용자 이름이고요. 절대경로 상대경로가 꼬이면서 나타나는 문제가 아닐까 하는 생각은 드는데, 어떻게 해결해야 할지 잘 모르겠더군요.


근데 의외로 간단한 해결책이 있었습니다. 바로 BROWSER라는 윈도우 시스템 변수를 이용하는 거였습니다. 시스템 변수 설정하는 데 가서 BROWSER라는 시스템 변수를 새로 만들고, 그 값으로 iPython에서 사용하길 원하는 기본 브라우저의 주소를 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" 같은 식으로 적어주는 거죠. 이렇게 하고 나니 jupyter_notebook_config.py 설정파일에서 따로 브라우저를 지정해주지 않아도 알아서 주피터 노트북이 크롬에서 바로 뜹니다. 물론 webbrowser 모듈의 get 함수 같은 걸로 브라우저에서 뭔가를 띄웠을 때도 마찬가지로 BROWSER 변수에서 지정한 브라우저가 열립니다.


오늘의 삽질기 끝.



+ Recent posts