覚え書きブログ

Deep Learning覚え書き(Ubuntu14.04へのTensorflow v1.0.0のインストール)

windows版Tensorflowは、Python3の制約があり何かと使いにくいので、LinuxにPython2.7系のTensorflow v1.0.0をインストールすることにした。
https://www.tensorflow.org/install/install_linux

GPUサポートでTensorflowをインストールするためには、CUDA8.0とcuDNN5.1が必要なのでインストールする。

1)https://developer.nvidia.com/cuda-downloadsから、Ubuntu14.04のdeb(local)版「cuda-repo-ubuntu1404-8-0-local-ga2_8.0.61-1_amd64.deb」をダウンロードし、次のコマンドを実行してインストールする。

> sudo dpkg -i cuda-repo-ubuntu1404-8-0-local-ga2_8.0.61-1_amd64.deb
> sudo apt-get update
> sudo apt-get install cuda

2)https://developer.nvidia.com/rdp/cudnn-downloadから、cuDNN v5.1 Library for Linux版「cudnn-8.0-linux-x64-v5.1.tgz」をダウンロードし、次のコマンドを実行してインストールする。

> tar xzvf cudnn-8.0-linux-x64-v5.1.tgz 
> sudo cp -a cuda/lib64/* /usr/local/cuda-8.0/lib64/
> sudo cp -a cuda/include/* /usr/local/cuda-8.0/include/
> sudo ldconfig

3)libcupti-devをapt-getでインストールする

> sudo apt-get install libcupti-dev

4)native pythonのpipを用いて、tensorflowをインストールしてみる。
まず、pipをインストールする。

> sudo apt-get install python-pip python-dev

次にpipでtensorflowインストールしてみたが、下記のようなエラーがでた。

> pip install tensorflow-gpu
Downloading/unpacking tensorflow-gpu
  Could not find any downloads that satisfy the requirement tensorflow-gpu
Cleaning up...
No distributions at all found for tensorflow-gpu
Storing debug log for failure in /tmp/tmpHAlF_4

tensorflow-gpuが見つからないようだ。直接、tensorflowのパッケージのURLを指定してインストールしてみる。

> sudo pip  install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.0.0-cp27-none-linux_x86_64.whl
...
Successfully installed tensorflow-gpu numpy wheel mock protobuf funcsigs pbr setuptools packaging appdirs pyparsing
Cleaning up...

無事インストールが出来た。

5)動作確認をする。
まず、最新版のtensorflowのソースを、git cloneする。

> git clone https://github.com/tensorflow/tensorflow.git

そして、MNISTのサンプルコードを実行する。

> cd tensorflow/tensorflow/examples/tutorials/mnist
> python mnist_with_summaries.py
Accuracy at step 0: 0.1231
Accuracy at step 10: 0.6979
...
Accuracy at step 80: 0.8862
Accuracy at step 90: 0.8999
Couldn't open CUDA library libcupti.so.8.0. ...

何とさっき3)でインストールしたはずのlibcuptiが見つからないというエラーが出てしまった。。。どうやら、Ubuntu14.04のlibcupti-devパッケージはcuda-7系にしか対応していないようで、3)ではcuda-8用のlibcuptiがインストールされていなかった。

そこで、少し調べて見たところ、cuda-8のインストールディレクトリの下/usr/local/cuda-8.0/extras/CUPTI/lib64にlibcuptiがあることが判明したので、LD_LIBRARY_PATHに追加し、再度MNISTのサンプルコードを実行したところ成功した。

> export LD_LIBRARY_PATH=/usr/lib:/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:/usr/local/lib:$LD_LIBRARY_PATH
> python mnist_with_summaries.py
Accuracy at step 0: 0.1231
Accuracy at step 10: 0.6979
...
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcupti.so.8.0 locally
...
Accuracy at step 980: 0.966
Accuracy at step 990: 0.9671
Adding run metadata for 999

> tensorboard --logdir=/tmp/tensorflow/mnist
Starting TensorBoard 41 on port 6006
(You can navigate to http://127.0.1.1:6006)