今回は、Windows 10上にTensorflow同梱のtf.Kerasを、GPU対応としてAnaconda環境に構築する手順を紹介します。
はじめに
数年前からちょこちょこ機械学習で趣味の予測を楽しんでいましたが、Windowsの調子が悪くなった際に再インストールでその環境が消えてしまいました。再度機械学習に挑戦するにあたり、折角のGPUを活かすのと、外部ではなくTensorflowに同梱されているKerasを用いる、この2つをポイントに、Windows上に環境構築することにしました。
準備
対応バージョン確認
まず、Tensorflowとその周辺モジュールの対応バージョンを公式サイトのGPU対応一覧で確認します。一覧は右上の英語言語を指定した方が、最新版まで表示されます。
今回は、以下のバリエーションで構築します。
- Tensorflow:2.4.0
- Python:3.6-3.8
- cuDNN:8.0
- CUDA Toolkit:11.0
Visual Studio Runtimeインストール
プラットフォームに適した Visual Studio 2015、2017 および 2019 用 Microsoft Visual C++ 再頒布可能パッケージをダウンロードしてインストールします。
Visual Studio 2019インストール済みの場合、「C++によるデスクトップ開発」モジュールがあれば問題ありません。
cuDNNインストール
cuDNNをインストールします。ダウンロードサイトから、CUDA v11.0用のcuDNN 8.0.5を選択しました。
モジュールはzipで入手できるので、展開して任意のフォルダに配置します。下記フォルダを環境変数PATHに登録します。
- C:\toolsにcudaフォルダを配置した場合
C:\tools\cuda\binをPATH登録
CUDA Toolkitインストール
CUDA Toolkitをインストールします。ダウンロードサイトから、v11.0のモジュールを選択して入手し、インストールします。以下3フォルダの環境変数PATHを確認し、存在しない場合は登録が必要です。バージョン部分は選択により異なります。
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\CUPTI\lib64
- C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include
Anaconda環境
作成
Anacondaで仮想環境を構築します。下記の例では、環境名tf_with_gpuにpython3.8とtensorflow2.4.0をインストールしています。KerasはTensorflowパッケージに同梱されています。
AnacondaのPromptを起動して、下記コマンドを実行してください。
conda create -n tf_with_gpu python=3.8
conda activate tf_with_gpu
pip install tensorflow==2.4.0
動作確認します。インストール完了後、下記コマンドでエラーが無ければ問題ありません。TensorflowとKerasモジュールロード、GPUの確認をしています。
python -c "import tensorflow as tf;from tensorflow import keras;print(tf.test.is_built_with_cuda());"
この環境でjupyter notebookが必要であれば、下記もインストールします。
# run "pip uninstall pywin32" if you have it > 225. because error occurs not to import win32api.
pip install pywin32==225
pip install jupyter
numpyでエラー時の対処方法
動作確認コマンドで下記2条件を満たす場合、エラーを回避するためにnumpyのバージョンを変更する必要があります。
- インストールされているnumpyが1.19.4である
- エラー内容が、”fails to pass a sanity check due to a bug in the windows runtime.”
回避するためには、下記コマンドでnumpyのバージョンを変更します。
pip install numpy==1.19.3
これは、Windows側の問題で、2021/1月頃解消予定とされています。問題の詳細はこのサイトでやりとりが記載されています。
その他
anacondaを利用する際に使用するかもしれない、2つのコマンドを記載しておきます。仮想環境から抜けるのと、仮想環境を削除するコマンドです。環境を作成しなおす場合に重宝します。
conda deactivate
conda remove -n tf_with_gpu --all
まとめ
GPU対応の構築手順でハマりどころをシンプルにまとめて記載してみました。GPU対応で高速な機械学習を楽しんでいきましょう。
Tensorflow環境の再構築ということで、できればDocker Desktop上に作りたかったのですが、まだDocker DesktopがGPUに未対応の様です。あと少しでリリースされそうなニュースも届いていたので、楽しみです(参考:WSL 2 GPUをサポートした「Docker Desktop」が開発者向けにプレビュー)。
以上、GPU対応したTensorflowをWindowsのAnacondaに構築する手順の紹介でした。
コメント