- Arawn's Dev Blog
- Outsider's Dev Story
- Toby's Epril
- Benelog
- NHN 개발자 블로그
- SK 플래닛 기술 블로그
- OLC CENTER
- 소프트웨어 경영/공학 블로그
- 모바일 컨버전스
- KOSR - Korea Operating System …
- 넥스트리 블로그
- 리버스코어 ReverseCore
- SLiPP
- 개발자를 위하여... (Nextree 임병인 수석)
- "트위터 부트스트랩: 디자이너도 놀라워할 매끈하고 직관…
- Learning English - The English…
- real-english.com
- 'DataScience/Deep Learning' 카테…
- Deep Learning Summer School, M…
- Deep Learning Courses
민서네집
Deep Learning 환경 만들기 (Windows10) (Theano & Keras with GPU Enabled) 본문
Setup a Deep Learning Environment on Windows (Theano & Keras with GPU Enabled)
위 블로그에 나온 대로 하면 무난히 잘 설치된다.
내 Laptop 사양
Model: 레노버 Y70-70 Touch
CPU: Intel(R) Core(TM) i7-4720HQ CPU @ 2.60GHz
RAM: 16.0GB
64비트 운영 체제 (Windows 10)
그래픽:지포스GTX960M(메모리4G)
- Visual Studio 2013 설치. (Community 버전으로 설치해도 된다.)
Visual Sudio 2015 Community 버전을 설치해 봤는데, 현재 최신 버전인 CUDA 7.5 에서 인식하지 못함.
그래서 다시 Visual Sudio 2013 Community 버전을 설치했다.
https://www.visualstudio.com/downloads/download-visual-studio-vs.aspx
2. CUDA 64비트, 현재 가장 최신 버전인 7.5를 설치함.
https://developer.nvidia.com/cuda-downloads
3. CUDA 가 잘 설치되었는지 테스트.
Visual Studio 2013 를 띄워서 Open Project
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.5
cf) http://julip.co/2009/09/how-to-install-and-configure-cuda-on-windows/
( Test your setup by compiling an example )
4. Anacoda 64비트, Python 2.x 버전 설치.
https://www.continuum.io/downloads
“C:\Users\YourUserName\Anaconda2” 디렉터리에 설치함.
cf) Anaconda 에 대한 자세한 설명은 여기를 참조한다.
http://egloos.zum.com/mataeoh/v/7052271
5. Git을 따로 설치하는 대신에 Windows 용 Docker를 설치함.
https://docs.docker.com/windows/step_one/
Docker 안에 git 이 포함되어 있다.
6. 명령 프롬프트를 관리자 권한으로 실행해서 다음을 실행한다.
conda install pip six nose numpy scipy
conda install mingw libpython
cd \apps\pythonApps (원하는 디렉터리로 이동)
git clone git://github.com/Theano/Theano.git
cd Theano
python setup.py develop
conda list
7. 제어판 > 시스템 > 고급 시스템 설정 > 고급 탭 > 환경 변수
시스템 변수의 Path 에서 맨 밑에 다음을 추가한다.
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin
시스템 변수의 새로 만들기 버튼 클릭
변수 이름: THEANO_FLAGS
변수 값: floatX=float32,device=gpu,nvcc.fastmath=True
8. 명령 프롬프트를 다시 띄워서 python 입력.
import theano 를 입력하고 엔터한 후 나오는 메시지를 확인한다. Using gpu device 0: GeForce GTX 960M ...
9. Theano 를 설치한 것과 동일하게 Keras 를 설치한다.
cd \apps\pythonApps (원하는 디렉터리로 이동)
git clone https://github.com/fchollet/keras
cd keras
python setup.py develop
10. 명령 프롬프트에서 conda list 입력해서 잘 설치되었는지 확인하고, keras의 example을 실행해 본다.
cd examples ( keras 디렉터리 밑에 examples 디렉터리로 이동 )
ipython mnist_mlp.py
[실행결과]
11. cuDNN (엔비디아 CUDA 기반 neural net 라이브러리) 다운로드
< Deep Learning Framework 이 어떤 cuDNN 버전까지 지원하는가? >
https://developer.nvidia.com/deep-learning-frameworks
나는 Windows 운영체제에 설치하고 있고, 어차피 TensorFlow는 Windows를 지원하지 않으므로, 속 편하게 cuDNN v5를 다운로드 받아 설치하면 된다.
< cuDNN 다운로드 사이트 >
https://developer.nvidia.com/cudnn
C:\Users\Heeseok\Downloads\cudnn-7.5-windows10-x64-v5.0-ga\cuda\bin
=> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin
이 디렉터리는 시스템 환경변수 Path 에 이미 있는 디렉터리라서, 따로 Path를 걸어줄 필요가 없다.
C:\Users\Heeseok\Downloads\cudnn-7.5-windows10-x64-v5.0-ga\cuda\include
=> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\include
C:\Users\Heeseok\Downloads\cudnn-7.5-windows10-x64-v5.0-ga\cuda\lib\x64
=> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\lib\x64
http://stackoverflow.com/questions/36248056/how-to-setup-cudnn-with-theano-on-windows-7-64-bit
12. cuDNN 활성화 시키기
< Theano Configuration - cnmem 설정 >
http://deeplearning.net/software/theano/library/config.html
< CNMeM is disabled >
https://github.com/fchollet/keras/issues/987
시스템 변수: THEANO_FLAGS
변수 값: floatX=float32,device=gpu,nvcc.fastmath=True,lib.cnmem=0.82
lib.cnmem=0.82 로 하면, CNMeM is enabled with initial size: 82.0% of memory 되는데, 샘플을 돌려보면 Runtime Error가 발생한다.
C:\apps\pythonApps\keras\examples>ipython mnist_mlp.py
Using Theano backend.
Using gpu device 0: GeForce GTX 960M (CNMeM is enabled with initial size: 82.0% of memory, cuDNN 5005)
실행 시 Runtime Error 발생
그래서 THEANO_FLAGS 환경변수에서 lib.cnmem값을 0.81 로 조정했다.
floatX=float32,device=gpu,nvcc.fastmath=True,lib.cnmem=0.81
13. CPU를 이용한 경우와 GPU를 이용한 경우 테스트
Keras를 설치한 디렉터리 밑에 examples 디렉터리로 이동.
C:\apps\pythonApps\keras\examples
test.bat 배치 파일을 생성해서 CPU를 이용한 경우와 GPU를 이용한 경우 시간 측정
date /t >> test.log
echo %time% >> test.log
ipython mnist_mlp.py
date /t >> test.log
echo %time% >> test.log
=== CPU를 이용한 경우 (THEANO_FLAGS 환경변수에서 device=gpu 삭제) ====>>> import kerasUsing Theano backend.6분 3초 (363초)=== GPU를 이용한 경우 (cuDNN을 설치 안한 경우) ====>>> import kerasUsing Theano backend.Using gpu device 0: GeForce GTX 960M (CNMeM is disabled, cuDNN not available)2분 31초 (151초)=== GPU를 이용한 경우 (cuDNN을 설치하고, 환경변수에서 lib.cnmem 값을 주지 않은 경우) ====>>> import theanoUsing gpu device 0: GeForce GTX 960M (CNMeM is disabled, cuDNN 5005)2분 33초 (153초)=== GPU를 이용한 경우 (cuDNN을 설치하고, 환경변수에서 lib.cnmem 값을 0.81로 준 경우) ====Using gpu device 0: GeForce GTX 960M (CNMeM is enabled with initial size: 81.0% of memory, cuDNN 5005)1분 6초 (66초)
위에서 보는 바와 같이, GPU를 이용하면, CPU를 이용한 경우보다 5.5배 빨라졌다.
363 / 66 = 5.5
작업관리자에서 비교해 보면 GPU를 이용할 때, CPU의 부하가 내려간 것을 알 수 있다.
CPU를 이용한 경우
GPU를 이용한 경우 (cuDNN 설치 후, CNMeM 활성화)
'머신러닝' 카테고리의 다른 글
머신러닝/딥러닝 입문하는데 도움이 되는 책,사이트 (0) | 2016.05.31 |
---|---|
nVidia CUDA (GPU Library) - eclipse edition (0) | 2016.05.27 |
Mac에서 tensorflow 설치기 (0) | 2016.05.15 |
AlphaGo 의 인공지능(Artifitial Intelligence) (0) | 2016.05.13 |
OpenAI Gym Beta / Convolutional Neural Networks (CNNs / ConvNets) (0) | 2016.05.03 |