[Tensorflow] 우분투에 텐서플로 설치하기 (CPU/GPU 버전)

텐서플로는 구글에서 만든 딥러닝 프로그램을 쉽게 구현할 수 있도록 다양한 기능을 제공하는 라이브러리다. 기본적으로 C++로 구현되어 있고, Python, Java, Go 등 다양한 언어를 지원한다. 하지만 파이썬을 최우선적으로 지원하기에 파이썬 환경에서 개발하는 것이 편하다. Keras나 TF-Slim과 같은 추상화 라이브러리를 제공하여 저수준 텐서플로 라이브러리에 대해 손쉽게 고수준 접근이 가능하게 해준다. 사용자는 이를 활용하여 간단하게 딥러닝 모델을 구현할 수 있다.

이제 텐서플로를 Ubuntu 18.04 버전과 Ubuntu Docker에 설치해보도록 하자. 텐서플로는 CPU 전용, GPU 이용 버전 두 개로 나뉜다.

따라서 Ubuntu 18.04에 CPU 전용버전, GPU 이용버전 두 종류를 설치하고, Ubuntu 기반의 Docker image에 CPU 전용버전, GPU 이용버전 두 종류를 설치해보도록 하겠다.

이번 글에서는 Ubuntu에 텐서플로 설치하는 것을 다루고, 다음 포스팅에서는 도커에 텐서플로를 설치해보도록 하겠다.

1. Ubuntu 18.04에 텐서플로 CPU 전용버전 설치하기

Tensorflow(CPU Only)는 파이썬 2.7 또는 3.3 이상 버전을 필요로 한다. 따라서 텐서플로를 설치하기 전에 파이썬 패키지를 먼저 설치하도록 한다.

sudo apt update
sudo apt -y install python python-pip python-setuptools python-dev
cs

이제 pip 파이썬 패키지 매니저를 이용하여 텐서플로를 설치하자.

pip install --upgrade tensorflow requests
cs

텐서플로가 설치되었다. 정상적으로 작동하는지 확인해보자.

python -"import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"
cs

출력 결과는 이러한 형식으로 나올 것이다.

Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
tf.Tensor(820.4219, shape=(), dtype=float32)
cs

숫자가 랜덤하게 지정되기 때문에 tf.Tensor(~)에 있는 결과값은 달라질 수 있다. CPU 관련 경고 메시지가 같이 출력될 수도 있는데 이는 결과에는 영향을 주지 않고 '이렇게 하면 더 빨라질 수 있다'고 알려주는 것이니 무시해도 좋다. no such files 등의 에러가 뜬다면 처음부터 다시 설치하는 것이 좋다.

2. Ubuntu 18.04에 텐서플로 GPU 이용버전 설치하기

텐서플로 GPU 버전을 설치하는 과정은 CPU 버전 설치보다 훨씬 복잡하다. NVIDIA Driver, Cuda 등의 툴킷을 같이 깔아줘야 하기 때문인데, 모든 패키지들의 버전이 맞아야 정상적으로 텐서플로를 사용할 수 있다.

GPU 버전의 텐서플로를 사용하려면 하드웨어, 소프트웨어 필요사항이 충족되어야 한다. CUDA Compute Capability 3.5 이상의 NVIDIA GPU 카드가 하드웨어 필요사항이고, 소프트웨어 요구사항은 다음과 같다.

NVIDIA® GPU drivers —CUDA 10.1 requires 418.x or higher.
CUDA® Toolkit —TensorFlow supports CUDA 10.1 (TensorFlow >= 2.1.0)
CUPTI ships with the CUDA Toolkit.
cuDNN SDK (>= 7.6)
(Optional) TensorRT 6.0 to improve latency and throughput for inference on some models.
cs

텐서플로 공식 홈페이지에 나오는 CUDA 10.1 설치 방법이다.

# Add NVIDIA package repositories
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.243-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1804_10.1.243-1_amd64.deb
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo apt-get update
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt install ./nvidia-machine-learning-repo-ubuntu1804_1.0.0-1_amd64.deb
sudo apt-get update
# Install NVIDIA driver
sudo apt-get install --no-install-recommends nvidia-driver-418
# Reboot. Check that GPUs are visible using the command: nvidia-smi
# Install development and runtime libraries (~4GB)
sudo apt-get install --no-install-recommends \
    cuda-10-1 \
    libcudnn7=7.6.4.38-1+cuda10.1  \
    libcudnn7-dev=7.6.4.38-1+cuda10.1
# Install TensorRT. Requires that libcudnn7 is installed above.
sudo apt-get install ---no-install-recommends libnvinfer6=6.0.1-1+cuda10.1 \
    libnvinfer-dev=6.0.1-1+cuda10.1 \
    libnvinfer-plugin6=6.0.1-1+cuda10.1
cs


이제 Tensorflow GPU 버전을 설치한다.

pip install tensorflow-gpu
cs

설치하는 과정에서 오류가 뜰 수도 있다. 디바이스 환경마다 오류의 내용이 천차만별이기 때문에 오류가 뜰때마다 구글링하는게 답이다.

댓글 없음:

Powered by Blogger.