Windows10にTensorFlow GPUとKerasをインストールする
概要
2018/12/11時点の情報ですので、情報が古い可能性があります。
PythonとKerasによるディープラーニングを買いました。
書籍内でUnixマシンが推奨されてますが、Windowsで環境構築を行いました。
環境構築の前にTensorFlowのGPU supportのHardware requirementsとSoftware requirementsの一読をおすすめします。 https://www.tensorflow.org/install/gpu
また、環境構築の手順はこちらのページが非常に参考になりました。
Keras & Tensorflow (GPU有)の環境構築 on Windows with Anaconda
PC環境
- Windows10 Home 64bit
- GeForce GTX 1080
- Anaconda 4.4.0 Python3.6 Version
- Python3.6.7
手順
グラフィックボードの確認
グラフィックボードの種類を確認します。
こちらのフリーソフトを利用して確認しました。
https://www.cpuid.com/softwares/cpu-z.html
こちらのソフトを起動して、GraphicsタブのDisplay Device Selectionに利用しているグラフィックボードの名前が表示されます。
TensorFlowで使用できるグラフィックボードはCompute Capability 3.5以上のものが必要です。
自分が使用しているグラフィックボードのCompute CapabilityはCUDA GPUsで確認できます。
CUDA GPUs
必要なソフトのインストール
GPUドライバーを最新のものに更新します。
https://www.nvidia.com/Download/index.aspx?lang=en-us
仮想環境でTensorFlowとKerasを使用するので、Anacondaもインストールします。
https://www.anaconda.com/download/
CUDA ToolkitでVisual Studioの機能を利用しているようなのでVisual Studioも事前にインストールしておきます。
個人利用なのでVisual Studio Community2017をインストールしました。
https://docs.microsoft.com/ja-jp/visualstudio/install/install-visual-studio?view=vs-2017
CUDA Toolkitをインストールします。
最新版のバージョンは10.0ですが、TensorFlowは9.0対応なのでCUDA Toolkit9.0をインストールします。
9.0インストール後、patchも1から4までダウンロードしてインストールします。
https://developer.nvidia.com/cuda-toolkit
CUDA9.0用のcuDNN 7.4をダウンロードします。
cuDNNのダウンロードには、NVIDIA Developer Programに登録する必要があります。
https://developer.nvidia.com/cudnn
cuDNNのzipファイルを解凍し、出てきたcudaフォルダをC:\toolsに移動します。
コマンドプロンプトに以下のコマンドを入力して環境変数のPathにフォルダを追加します。
1SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin;%PATH%
2SET PATH=C:\tools\cuda\bin;%PATH%<
Pathが追加されているか、こちらの方法でシステム環境変数のPathを選択し編集ボタンを押すと確認できます。
http://www.atmarkit.co.jp/ait/articles/1805/11/news035.html
Anacondaで仮想環境の構築
TensorFlowはPython3.xでは3.4, 3.5, 3.6に対応しています。
https://www.tensorflow.org/install/pip
今回はPython3.6.7で仮想環境を構築します。
Anaconda Promptを起動して、下記のコマンドを入力して仮想環境を作成します。
仮想環境の名前はkeras-deeplearningにしています。
1conda create -n keras-deeplearning python=3.6
作成した環境をactivateします。
1activate keras-deeplearning
tensorflow-gpuをpipでインストールします。
1pip install tensorflow-gpu
以下のPythonコードを実行してエラーがでなければインストール成功です。
コードを実行するとtensorflow-gpu最新バージョンの1.12.0が表示されます。
1import tensorflow as tf
2
3print(tf.__version__)
Kerasをpipでインストールします。
1pip install keras
MNISTでKerasの動作確認
KerasのMNISTのサンプルコードを動かします。
https://github.com/keras-team/keras/blob/master/examples/mnist_cnn.py
初回はMNISTデータをダウンロードするので、数分かかります。
データダウンロード完了後、処理を実行します。
GPUを使用した処理時間は約1分ほどでした。
GPUとCPUの処理速度の比較
GPUを利用した処理時間が約1分ほどだったので、CPUのみの処理時間と比較してみました。
Anacondaで別の仮想環境を作成します。
pip install tensorflowでCPUのみで処理を行うTensorFlowをインストールできます。
1conda create -n keras-cpu-test python=3.6
2activate keras-cpu-test
3pip install tensorflow
4pip install keras
上記の仮想環境でMNISTのコードを実行したところ、処理時間は約15分でした。
GPUバージョンは、かなり処理速度が速いことが確認できました。