【Keras/TensorFlow】GPUを使うまでの手順と注意点などを解説します




Keras/TensorFlowでディープラーニングを行う際、計算時間を短縮するためにGPUを使いたいと思いました。しかし、なかなかうまく行かなかったので調べてみると、TensorFlowやCudaなどのヴァージョンがうまく噛み合っていなかったからでした。

そこで、今回はTensorFlowをバックエンドとしてKerasを動かすという前提で、TensorFlowでGPUを使う手順について解説していきます。

今回使った環境

  • OS:WIndows10(ビルトは2019-Marchの最新版18362.207)
  • GPU:NVIDIA GeForce RTX 2080 Ti
  • メモリー:16GB
  • Anacondaを利用

必要なもの

  • NVIDIA製のGPU
  • TensorFlow(GPU版)
  • Keras
  • (Windows)の場合:Microsoft Visual Studio C++(MSVC)
  • NVIDIA Driver
  • Cuda
  • cuDNN

確認必須:各ツールのバージョン

上記に挙げたtensorflow、MSVC、Cuda、cuDNNの各バージョンをすべて合わせる必要があります。基本的に、tensorflowのバーションを最初に決めた後(特に理由がなければ最新版で)、その他のバージョンを決めていきます。

対応表はこちらです。(Windowsの場合)(Mac、Linuxの場合

これを必ず確認してから以下の手順を進めてください。

導入手順

NVIDIA製のGPU

2019年6月30日現在、TensorFlowに公式対応しているのはNVIDIA製のGPUだけです。「(TensorFlow公式)GPU support」ただし、NVIDIA製以外のGPUでも使う方法はあるようなので、下の方に補足を書いておきます。

NVIDIA以外のGPU対応について

TensorFlow(GPU版)

TensorFlowは通常のCPU版と、GPU用の2つが用意されています。同時に二つを同じ環境にインストールしているとCPU版が自動で使われてしまうことがあるようです。もしすでにCPU版をインストールしているようであれば、一度すべてのTensorFlowをアンインストールするのが良いでしょう。

Anaconda Navigaterを起動し、インストール済みパッケージにtensorflowが含まれていれば削除します。一度環境からtensorflow関係をすべて取り除いた上で、tensorflow-gpuをインストールします。

※Macなどpipで行う場合はこちら

現在インストールされているTensorFlowの確認

tensorflowが入っていたら、アンインストールする

TensorFlowのGPU版をインストール

再度pip listを行って、tensorflow-gpuが入っていればインストール成功です。

Keras

こちらもAnaconda Navigater>Envirommentsからkerasパッケージをインストールします。

※Macなどpipで行う場合はこちら

(Windows)の場合:Windows Visual Studio C++

後述のCudaをインストールして使うために、WindowsVisualStudioC++が必要になります。こちらからインストールしてください。2019以降の古いバージョンはこちらです。必ず使いたいtensorflowのバージョンに対応したものをインストールしてください。

インストール時に「C++ ワークロードを使用したデスクトップ開発」を必ず選択してください。

NVIDIA  Driver

こちらのページからドライバーをインストールします。

cuDNN

こちらのページからCuDNNをダウンロードしてください。無料登録が必要になります。ダウンロードが終わったらフォルダを解凍してください。

次に、フォルダで「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v.○○」を開いてください。○○は、使おうとしているヴァージョンの数字が入ります。例えば、v.10.0などとなっています。

解凍したフォルダの中にbin,include,libと3つのフォルダがあります。binの中のファイルはbinのフォルダの中に、includeの中のファイルはincludeフォルダの中に、libの中のファイルはlibフォルダの中に上書き保存してください。

管理者権限を求められることがあります。インストールは終了です。

GPUの動作確認

TensorFlowがインストールされているか確認

upyter notebookを開いて、以下のコマンドを打ち込みます。

正常にインストールされていれば、エラーが返ってくることなく何も起こりません。

TensorFlowがGPUを認識しているかを確認

次にGPUの動作確認です。まず、

を実行します。正常にGPUが認識されていれば、device_type: “GPU”という一文が結果の中に書かれています。

GPUが動作するかを確認

Windowsの場合、タスクマネージャーを開いてGPUの稼働状況を見ることも出来ますが、細かい情報が見れません。ELSA社が無償公開しているELSA System Graphというソフトウェアのインストールをおすすめします。

早速、MNISTを使ってTensorFlowを動かしてみます。

こちらのソースコードをまるっとコピーしてjupyter notebookで実行してください。実行中にGPUの使用率が上がればGPUはうまく使われています。お疲れ様でした!