딥러닝을 위한 다양한 라이브러리가 존재하지만, google에서 개발한 tensorflow를 설치한다.
tensorflow는 기본적으로 C++로 작성되었지만, 파이썬, 자바, 고 등의 다양한 언어를 지원하며, 특히 파이썬에 대한 지원이 최우선으로 되어 있으므로, 파이썬도 같이 설치한다
기본적으로 설치되어야하는 프로그램은 다음과 같다[2019.01.17 기준]
python 3.6 + tensorflow 1.2 + CUDA 9.0 + cnDNN 7.4.2
처음에 python3.5 이상 버전을 설치하면 된다길래 최신 버전인 3.7.2 버전을 설치하고, tensorflow 설치를 위하여 window 명령 프롬프트에서 pip3 install --upgrade tensorflow 를 입력하였더니 아래와 같은 오류가 발생했다.
“Could not find a version that satisfies the requirement tensorflow (from versions: )
No matching distribution found for tensorflow”
처음에는 x64버전이 아니라 x32버전을 설치한 줄 알고 다시 설치해봤지만, 동일한 오류가 발생하였고, python 3.6 버전으로 다시 설치하니 제대로 명령어가 먹히고 아래와 같이 설치되었다.
다음으로 GPU를 활용하기 위하여 NVIDIA에서 제공하는 CUDA 툴킷을 설치한다. 현재 tensorflow 버전에서 지원하는 버전은 아래 사이트에서 확인할 수 있다. (https://www.tensorflow.org/install/gpu)
기본적으로 그래픽카드의 드라이버가 다운받아져 있어야하고, CUDA Toolkit 링크와 cuDNN SDK 링크를 따가서 설치하면 된다. cuDNN을 설치하려면 로그인이 필요한데, 구글 로그인을 통해서 아이디를 만들고 로그인까지 할 수 있어서 편리하다.
cuDNN이 설치되면 (bin, include, lib) 3가지의 폴더가 나오는데 이를 복사해서 CUDA 경로에 복붙하면 된다.
그런다음 window 명령프롬프트로 이동하여 pip3 install --upgrade tensorflow-gpu 를 통해 설치하면 된다. 그럼 아래와 같이 successfully installed 됬다고 뜬다.
설치가 잘 마무리되었는지 확인하기 위하여 아래의 명령어를 순서대로 실행해보았다.
$ python
…
>>> 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
>>>
아래와 같이 잘 실행이 되는데, 한 가지 의문이 드는 점이 생겼다.
먼저, 이게 바로 이쁘게 잘 되지는 않았다. 처음 sess = tf.Session() 명령어를 실행하니 그 아래에 주저리주저리하는게 중간정도까지 뜨면서, 다음 명령어를 입력하는 >>> 이게 뜨질 않았다. 지금은 되는걸 보니, 첫 실행이라서 그런가 시간이 좀 걸렸나? 라는 생각을 하는데, 단순 명령어인데 왜그렇게 오래걸렸나 싶다.
다음으로 sess = tf.Session() 명령어를 실행한 다음 줄에 보면
Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
라는 말이 생겨서 오류가 발생한거가 해서 찾아보았다. 일단, 간단하게 설명하면, CPU에 서포트 되는 AVX2가 사용이 안되서, 이걸 사용하면 더 빨라질 수 있다! 라는 의미라는 것이다. 근데 GPU를 사용하면 굳이 이걸 쓸 필요가 없으니 무시해도 된다고 하니, 무시하도록 하자. (참고 자료 1: StackOverflow) (참고 자료2 : 네이버 블로그 자료)
여기서, 또 궁금한 점! AVX가 정확히 뭘까? (참고 자료 : 위키백과)
AVX(Advanced Vector Extensions, 고급 벡터 확장)으로, 쉽게 말하면 부동 소수점 연산 처리 능력 향상을 위해서 개발된 명령어 집합 중 하나이다. 너무 깊게 들어갈 것 같으니, 패스하자.
'인공지능 > 인공지능 기초 정리' 카테고리의 다른 글
[독학] GAN(Generative Adversarial Network) (0) | 2019.07.03 |
---|---|
주피터 노트북 설치 (0) | 2019.01.17 |
텐서플로 예제 다운받고 실행해보기 (0) | 2019.01.17 |
윈도우 버전 git 설치하기 (0) | 2019.01.17 |
딥러닝 예제를 위한 numpy, matplotlib, pillow 라이브러리 설치 및 설명 (0) | 2019.01.17 |