Windows10にTensorFlow GPUとKerasをインストールする

概要

Warning

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バージョンは、かなり処理速度が速いことが確認できました。

関連ページ