tensorflow-gpuのインストール方法がわからない…
GeForceのGPUを使って機械学習がしたい…
こんな悩みを持つ方へ向けてtensorflow-gpuのインストール時の注意点についてまとめていきます。
先に伝えておくと、この記事を書いている時点(2019/01/19)では、Tensorflow-gpuの新しいVersion(tensorflow-gpu==1.12.0以上)を使うことができません。 理由は、GPUがTensorflowの新しいVersionに対応していないためです。 そのため、tensorflowの以前のVersion(tensorflow-gpu==1.9.0)で開発環境を構築することとします。
また、Python3.7ではtensorflowが使えません!そのため、Python3.6をインストールしてパスを通しておいてください。
私の開発環境は以下の通りです。
■Tensorflow-gpuのインストール時の注意点
Tensorflow-gpuのインストール時の注意点をまとめていきます。基本的にはインストールするVersionが間違っていなければうまくいくと思います。
・CUDA、cudnnのインストール
CUDA、cudnnはGPUを機械学習に使うためのドライバーになります。 先にも書いた通り、tensorflowの新しいVersionは、CUDAの最新版に対応していないので、tensorflowへCUDAのVersionを合わせる必要があります。
今回は、Tensorflow-gpu==1.9.0を使うので、これに対応している以下のVersionをインストールしてください。
・CUDA v9.0
・cudnn v7.0.5
自分はCUDA v9.2でも、v10.0でも動かず、CUDA v9.0でやっと動きました。また、cudnnもCUDA v9.0に対応したものを選ぶ必要があります。
以下のリンクからダウンロードできます。
CUDA Toolkit 9.0 (Sept 2017), Online Documentationと書かれている場所をクリックしてダウンロードできます。ダウンロード終了後、そのままインストール。
インストール先は、デフォルトだと、C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0になっているはず。
Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0と書かれている場所をクリックでダウンロード。ダウンロードした圧縮ファイルを解凍すると以下の画像のような内訳になっています。
解凍した各フォルダ内(bin,include,lib)に入っているファイルを、同じ名前のCUDA v9.0へコピペしてください。
画像を見ていただければわかるかと。
最後に、インストールしたCUDA v9.0のbinフォルダへパスを通します。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\binへパスを通してください。
コントロールパネル>環境変数の設定>Pathに追加すれば大丈夫です。
これで、GPUのドライバーの設定は完了です。
・Tensorflow-gpuのインストール
Tensorflow-gpuをインストールするには、以下のコードをコンソール上で入力してくれと、公式HPには記載されています。
1 |
pip install tensorflow-gpu |
これはこれで、インストールできるのですが、このコマンドでインストールされるのは、tensorflow-gpu==1.12.0です。
私の環境では、簡単なコードを実行することはできたのですが、ディープラーニングをしようとすると、以下のようなエラーが起きてしまいました。
1 2 3 4 5 |
tensorflow/stream_executor/cuda/cuda_dnn.cc:363] Loaded runtime CuDNN library: 7.0.5 but source was compiled with: 7.2.1. CuDNN library major and minor version needs to match or have higher minor version in case of CuDNN 7.0 or later version. |
このエラーが意味するのは、「tensorflow-gpu==1.12.0はcuDNN v7.2.1を使ってコンパイルしているんだけど、あなたはcuDNN v7.0.5で読み込もうとしたよ」ってことです。 つまり、tensorflowが使いたいVersionと私の設定したVersionが合っていなかったため、エラーが発生したんです。
このエラーを解消するには、tensorflowのVersionを下げればいいってことを知りました。
以下のコードでtensorflowのVersionを下げることができます。私のPC上でうまくいった1.9.0のVersionをインストールするコードです。
1 |
pip install --ignore-installed --upgrade tensorflow==1.9.0 |
うまくtensorflowを読み込めたか確認するためには、以下のコードをPython上で実行してみてください。
1 |
import tensorflow as tf; print(tf.__version__) |
また、コンソール上で、「pip list」というコマンドでインストールしたライブラリを確認できます。
次にGPUが機能しているかの確認は以下のコードで確認できます。
1 2 |
from tensorflow.python.client import device_lib device_lib.list_local_devices() |
うまく読み込めていると、以下のようなコードが表示されます。
1 2 3 4 5 6 7 8 9 10 |
2019-01-19 20:46:28.599347: I T:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 2019-01-19 20:46:28.896027: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1392] Found device 0 with properties: name: GeForce GTX 1060 6GB major: 6 minor: 1 memoryClockRate(GHz): 1.7085 pciBusID: 0000:01:00.0 totalMemory: 6.00GiB freeMemory: 4.96GiB 2019-01-19 20:46:28.896972: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1471] Adding visible gpu devices: 0 2019-01-19 20:46:30.117163: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:952] Device interconnect StreamExecutor with strength 1 edge matrix: 2019-01-19 20:46:30.117497: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:958] 0 2019-01-19 20:46:30.117723: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:971] 0: N 2019-01-19 20:46:30.119083: I T:\src\github\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1084] Created TensorFlow device (/device:GPU:0 with 4726 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0, compute capability: 6.1) |
■まとめ
tensorflowがインストールできれば、deeplearningを行えるようになるので、よりPythonを使うのが楽しくなりますね。
今回インストールして学べたのは、なんでもかんでも最新版をダウンロードするには注意が必要ってことでした。
最後まで読んでいただきありがとうございました。