fast.aiのpart1 v2は基本的に PyTorch を使って進めることになりますが Keras+TensorFlow用の notebook(keras_lesson1.ipynb)が1つだけあります。
これも動かしたる! と思ってTensorFlowのパッケージをインストールしようとしたところ、、
part1 v2用の環境はCUDAのバージョンが9.1となっており、Anacondaやpipを使ってGPU対応のTensorFlowを一発でインストールができないことが分かりました。。(CUDA8.0用にビルドされているため)
が、先人の記事を発見し何とかインストールできました。(๑˃̵ᴗ˂̵)و
自分の記事の中で書きたいことはただ1つ。
bazel は 0.7.0 を使おう
(↑の記事の中で推奨とされている通り。最新版はダメ、絶対)
というのも、最初は 「p3インスタンス(V100)上でCUDA+CUDNN+Tensorflowを動かすのが大変だったのできろく。 - 焼肉が食べたい」 の記事を発見し、これを参考に作業してたのですが
bazelのインストールでそのまま真似したら
sudo apt-get -y install openjdk-8-jdk sudo add-apt-repository ppa:webupd8team/java sudo apt-get update && sudo apt-get install oracle-java8-installer echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add - sudo apt-get update && sudo apt-get install bazel sudo apt-get upgrade bazel
の手順で bazel の 0.9.0がインストールされていて、そのまま進めると TensorFlowのビルド時に大量のエラーメッセージ... ><
記事ではその後、TensorFlowのconfigureスクリプトの実行ログで
$ ./configure You have bazel 0.7.0 installed.
となっているのでその時だときっと bazel 0.7.0 がインストールされたのでしょう。。
CUDAとcudnnをインストールした以降の手順のメモ
fast.aiの環境構築が済んでいるとCUDAとcudnnは既にインストールされているので 先のid:syakai-jinさんの記事の (16) 以降をやればよいです。
bazelのインストール (0.7.0じゃないとダメ。0.9.0だとビルド時にエラーが出た)
$ wget https://github.com/bazelbuild/bazel/releases/download/0.7.0/bazel-0.7.0-installer-linux-x86_64.sh $ chmod +x bazel-0.7.0-installer-linux-x86_64.sh $ ./bazel-0.7.0-installer-linux-x86_64.sh $ bazel version
bazel のバージョンが 0.7.0 であることを確認しましょう
export PATH=~/bin:$PATH
を.bashrcに追加必要なパッケージをインストール
$ sudo apt-get -y install libcupti-dev
TensorFlowのソースコードを取ってきます
$ git clone -b v1.4.0 https://github.com/tensorflow/tensorflow $ cd tensorflow $ ./configure
- Do you wish to build TensorFlow with CUDA support? [y/N]: => Yes
- Please specify the CUDA SDK version you want to use, e.g. 7.0. [Leave empty to default to CUDA 8.0]: => 9.1
- Please specify the cuDNN version you want to use. [Leave empty to default to cuDNN 6.0]: => 7.0.5
これら以外は No と ENTER(デフォルトのまま)でよい
CUDAのバージョンは
ls /usr/local/cuda*
、cndnnのバージョン確認はls /usr/local/cuda/lib64/libcudnn.so.*
で確認できますシンボリックリンクを作る
$ sudo ln -s /usr/local/cuda/include/crt/math_functions.hpp /usr/local/cuda/include/math_functions.hpp
これをしないとファイルがないというビルドエラーになる
ビルド
$ bazel build -c opt --copt=-march="haswell" --config=cuda //tensorflow/tools/pip_package:build_pip_package
パッケージを作成
$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg`
パッケージをインストール
$ pip install /tmp/tensorflow_pkg/tensorflow-1.4.0-cp36-cp36m-linux_x86_64.whl`
あとは keras と h5py をインストールしましょう。
$ pip install keras $ conda install h5py # これをインストールしないとweightファイルのload時にエラーが出る