텐서플로(Tensorflow)는 인공지능을 이용하기 위해 사용하는 파이썬 라이브러리이다. 손쉽게 모델을 구축하고 Traning이 가능하고High-Level API를 제공해 유연하고 강력한 파이썬 코드를 작성하게 도와준다.
텐서란 다차원 배열 데이터라 이해하면 된다. 벡터(1차원), 행렬(2차원), 큐브(3차원) 등등 이 모든 차원의 배열 데이터를 포괄적으로 텐서라고 한다.
https://stackoverflow.com/questions/37849322/how-to-understand-the-term-tensor-in-tensorflow
텐서플로는 이러한 데이터 흐름 그래프를 사용하는 수치 연산용 오픈소스 소프트웨어 라이브러리입니다. 오픈소스란 누구나 이 코드를 볼 수 있고 수정할 수 있는 형태입니다. 물론 이 코드는 깃헙(GitHub)에서 볼 수 있다.
https://github.com/tensorflow/tensorflow
여기서 텐서플로에 대한 자세한 안내와 어떻게 코드 contribution에 참여할 수 있는지 알 수 있다. 물론 텐서플로의 모든 소스 코드 또한 볼 수 있다.
오늘은 윈도우 PC기반에서 텐서플로 CPU버전과 텐서플로 GPU버전을 설치하는 방법을 알아본다.
CPU만 사용해 연산 작업을 수행하는 일반적인 텐서플로 CPU버전은 pip 명령어를 통해 설치한다.
pip install tensorflow
텐서플로 GPU
텐서 연산은 쉽게 말해 병렬 연산입니다. 따라서 CPU보다는 GPU의 하드웨어 성능을 이용하면 효율적인 연산이 가능합니다. 현재는 엔비디아(NVIDIA)의 GPU만 지원하기 때문에 본인의 PC에 엔비디아 그래픽카드가 설치되어 있어야 한다.
그래픽 카드 사양
최소 사양: 텐서플로의 Compute capability의 버전에 따라 다르지만 문서상 최소 사양한 GeForce GT 640(GDDR5)이다. 하지만, 실제 텐서플로를 훤활히 실행하고 어차피 그래픽카드를 구매할 시점이라면 GeForce GTX 1000시리즈를 권장한다. 현재 필자의 그래픽카드 GeForce GTX 1060 6GB를 사용한다.
https://developer.nvidia.com/cuda-gpus
위 링크에서 CUDA를 지원하는 그래픽 카드를 확인해본다.
- NVIDIA GPU Drivers: 384.x 이상 버전 설치
- CUDA Toolkit: CUDA 9.0
- cuDNN SDK: CUDA 9.0에 해당하는 7.2버전 이상
먼저 GPU 드라이버는 그래픽카드를 처음 설치하면 대부분 설치할 것이다. 하지만 최신 버전이 정확히 설치됐는지 확인한다.
CUDA Toolkit
쿠다(CUDA)란 엔비디아 그래픽카드에서 개발한 병렬 컴퓨팅 플랫폼 및 프로그래밍 모델이다. 한마디로, 그래픽 카드의 연산 능력을 이용해 CPU보다 효율적이고 빠르게 작업을 수행할 수 있게 도와준다.
텐서플로 공식 홈페이지에서는 최신의 CUDA 10.0버전 다운로드만 가능하니 다음 링크를 이용한다.
https://developer.nvidia.com/cuda-90-download-archive
자신의 운영체제를 선택하고, local 버전으로 1.4GB의 설치 파일을 다운로드 하고 설치한다. network버전은 인터넷 환경에 따라 설치속도가 느릴 수 있으니 참고한다. 버전 확인이 가장 중요하다. 사용자 정의 설치를 통해 Visual Studio 관련 항목 체크를 해제하면 오류없이 정상적으로 설치할 수 있을 것이다.
cuDNN SDK
심층신경망 라이브러리 개발 SDK이다. CUDA 9.0에 해당하는 최신버전을 설치한다.
https://developer.nvidia.com/cudnn
Download cuDNN을 클릭한다. 엔비디아 회원가입이 필요하니 가입 후 로그인한다. 간단한 설문조사를 하고 설치한다.
CUDA 9.0의 최신 버전인 cuDNN v7.3.1 Library for Windows 10을 선택해 다운로드한다.
압축파일을 해제하면 이렇게 3개의 폴더가 있다.
다음과 같이 복사한다.
<설치경로>\cuda\bin\cudnn64_7.dll -> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
<설치경로>\cuda\ include\cudnn.h -> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include
<설치경로>\cuda\lib\x64\cudnn.lib -> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
이렇게 총 3개의 파일을 정확한 위치에 복사한다.
다음으로 환경 변수를 설정한다.
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\extras\CUPTI\libx64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin\cuda\bin
이렇게 3개의 경로 또한 Path 변수에 추가한다.
마지막으로 CMD창에서 다음 명령어를 통해 텐서플로 gpu를 설치한다.
pip install tensorflow-gpu
CMD 창에서 파이썬을 실행해 텐서플로 설치가 완료됐는지 확인한다.
>>> import tensorflow as tf
아무런 오류가 없다면 정상적으로 설치된 것이다.
>>> import tensorflow as tf >>> tf.enable_eager_execution() >>> tf.add(1, 2)
이렇게 본인의 GPU를 통해 연산이 됐음을 확인할 수 있다. 간단한 코드를 테스트를 해본 결과이다. GPU가 정확히 인식되며, 만약 GPU가 없을 경우 자동으로 CPU 연산이 이뤄진다. 만약 정상적으로 작동이 안될 경우 기존의 텐서플로를 삭제하고 재설치하며, 환경변수를 확인해보자.