Tensorflow gpu 설치 기록!
2019.12.15 업데이트
최근에 연구실 컴퓨터 바꾸면서 GPU 세팅 다시했는데 금방 환경 세팅이 된 것 같다.
- CUDA Toolkit 9.X 버전 설치
- CuDNN 9.X 버전대 맞춰서 설치
- CuDNN 압축 해제
- Window 환경변수에 CuDNN bin 위치 추가
- Anaconda로 가상환경 설정 후 tensorflow gpu 1.5 버전 설치
(근데 이 부분이 좀 헷갈리는게 Anaconda Navigator에서 tensorflow gpu 설치하면 자동으로 CUDA 버전에 맞춰서 tesnsorflow gpu가 1.5로 세팅이 되는 것 같다. 정확히 확인은 못 했는데 분명 2.0버전으로 설치했는데 확인해보니 1.5가 설치되어 있었다. 뭐지???)
CUDA 버전, CuDNN 버전, Tensorflow 버전만 잘 맞추면 큰 문제 없이 설치 할 수 있다.
window 환경변수는 CuDNN bin 폴더만 잘 설정하면 된다.
별 거 없다. (자주 해서 그런가?)
후기
- 설치는 했는데 갑자기 성공해서 왜 성공한지를 모르겠다.
- 추측컨데, 첫번째 이유로 CUDA Toolkit과 cuDNN 부분의 호환 문제인 것 같다.
- 두번재 이유로는 환경 설정 문제인 것으로 추정되어진다.
- ( 추가. tensorlfow gpu 1.5 버전으로 설치해서 성공한거다. 최신 버전 설치했을 때는 DLL 에러 발생했었는데… 1.5 버전으로 하니까 된다. )
설치
CUDA Toolkit 설치
CUDA Toolkit 9.0을 다운로드 했다. ( cuDNN 과의 호환 때문에 버전을 신경써서 설치해야 한다. 가급적이면 똑같이 하는게 좋다. )
-
자신의 컴퓨터 사양과 맞는 것을 클릭하고 다운로드 받는다.
cuDNN 설치
7.0.5 버전을 다운로드 받았다.
[Download] : https://developer.nvidia.com/rdp/cudnn-archive
환경변수 설정
여기 부분에서 삽질을 한 것 같다.
이게 처음에 다른 글들 보고 하다가 TOOLKIT 10점대 버전 설치하고 8점대 버전 설치하고 최종적으로 9점대 버전을 설치했다.
그러다보니 밑에 CUDA_PATH_V8_0, CUDA_PATH_V10_0 등이 생기면서 경로를 못 잡는 상황이 발생했었다.
( ImportError: DLL load failed ) 이런 에러가 발생한다면 환경변수 설정을 잘 못해서 발생하는 에러이다.
그냥 딱 더도 말고 덜도 말고 CUDA_PATH와 CUDA_PATH_V9_0만 확인하면 된다.
괜히 사용자 변수 편집 버튼 눌러서 이상한 거 추가하다 더 안된 것 같다.환경 변수 설정은 밑에 페이지에 잘 설명되어 있다.
Anaconda 설치
밑의 URL에서 Python 3점대 버전을 설치해준다.
가급적이면 Anaconda를 설치해서 환경을 분리해주는 것이 좋다.
안 그러면 환경설정이 엉켜서 나중에 감당할 수 없게 된다.[Download] : https://www.anaconda.com/download/
anaconda prompt 창에 들어가 아래 명령어를 입력한다.
conda create -n cuda pip python=3.5 /*환경 만들기(python 3.5) -> y/n 나오면 y 누를것.*/
activate cuda /*환경 활성화*/
python -m pip install --upgrade pip /*일단 pip 를 업그레이드 시켜준다.*/
pip install --ignore-installed --upgrade tensorflow-gpu==1.5
중요
- tensorflow-gpu 1.5 버전 설치해야 한다. (1.5버전 이상으로 하려면 CUDA나 CuDNN 버전까지 상향해서 설치해야 한다.)
최신 버전 설치하면 DLL 에러 발생한다!!!
jupyter notebook 설치
pip3 install jupyter
- jupyter notebook 실행 한 후에 테스트 하면 끝나게 된다.
테스트
밑의 코드를 실행시키고 에러가 발생하지 않는다면 설치에 성공한 것이다.
>>> import tensorflow as tf
>>> hello = tf.constant(‘Hello, TensorFlow!’)
>>> sess = tf.Session()
>>> sess.run(hello)
b’Hello, TensorFlow!’
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> sess.run(a + b)
42
참고 URL
가장 큰 도움이 되었다. ( 구세주… )
처음에 이거 보고 했는데… 잘 안되었다.
이거 보고 하다가 가장 크게 엉킨 것 같다.