Ubuntu 16.04にTensorFlow(GPU)をインストール
追記:
ややアップデートしたエントリを作成した
yyasui.hatenablog.com
Ubuntu 16.04にTensorFlowを入れた。基本的に公式(Installing TensorFlow | TensorFlow)をそのままやれば入ると思われるが、いくつか変更する必要があった。場当たり的な対応なので取り敢えず動いただけとしていおく。
変更点は2つあり、それぞれCUDAとcuDNNである。まずCUDAは現在NVIDIAからUbuntu向けに公開されているのは15.04/14.04用であり、一部の仕様が変更された16.04ではCUDAのインストールは変更する必要があった。cuDNNはTensorFlowのサポートはv4まででv5は未サポートとしているが、探すのも面倒だったのでv5を使用している。
また、基本的には公式のvirtualenvに従っているが、virtualenvwrapperのユーザなのでいくつか公式と手順が違う。
環境とインストールしたもの
CPU | Intel(R) Core(TM) i5-6600T CPU @ 2.70GHz |
Mem | 12GB |
GPU | GeForce GTX 750 Ti |
OS | Lubuntu 16.04 LTS |
Python | python 2.7 |
NVIDIA driver | 361.42 |
CUDA | 7.5.18-0ubuntu1 |
cuDNN | v5 |
TensorFlowのインストール
TensorFlow本体のインストールは通常のパッケージと同様にpipで引っ張ってくればよい。
インストールの事前準備
$ sudo apt-get install python-pip python-dev $ sudo pip install virtualenvwrapper
TensorFlow本体のインストール
$ mkvirtualenv tensorflow (tensorflow)$ pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
GPUを使う準備
ドライバをNVIDIAにする
GPUを使いたいのでドライバをnouveauからNVIDIAに変える。以前は自分で調べて入れる必要があった気がするが、[Preference]-[Additional Drivers]という項目ができており、既に候補がリストアップされていた。取り敢えず新しい方を試してみる。
恐らくこの後で再起動が必要と思われる。
CUDAの導入
Ubuntuなので15.04ならばCUDAのライブラリは公開されている。従ってnetworkを選べば以下でインストールできるかと思った。
$ sudo dpkg -i cuda-repo-ubuntu1504_[version]_amd64.deb $ sudo apt-get update $ sudo apt-get install cuda
しかし、これをやろうとするとsudo apt-get updateでNVIDIAのリポジトリが無視される。これはOpenSSH仕様が変わってSHA1のキーが無効にされたが、NVIDIAのリポジトリがSHA1を利用しているからのようだ。
仕方ないのでUbuntu側のリポジトリを向けてやった。結果的に動いているようだが、ライブラリの不整合等の可能性もあるのであまりよろしくはないか。
$ sudo apt-get install nvidia-cuda-dev
cuDNNの導入
v4を探す気が起きなかったのでv5を落としてきて書いてある通りに入れた。
tar xvzf cudnn-7.5-linux-x64-v4.tgz sudo cp cuda/cudnn.h /usr/local/cuda/include sudo cp cuda/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
パスの設定
これもそのまま写すだけ。
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64" export CUDA_HOME=/usr/local/cuda
確認
確認はGPUを使うというページ自体がある(Using GPUs | TensorFlow)からそれをそのまま流用すればいい。結果は次の通り。
Device mapping: /job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: GeForce GTX 750 Ti , pci bus id: 0000:01:00.0 b: /job:localhost/replica:0/task:0/gpu:0 a: /job:localhost/replica:0/task:0/gpu:0 MatMul: /job:localhost/replica:0/task:0/gpu:0 [[ 22. 28.] [ 49. 64.]]
Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)
- 作者: Sebastian Raschka,株式会社クイープ,福島真太朗
- 出版社/メーカー: インプレス
- 発売日: 2016/06/30
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る