2021年6月10日木曜日

Windows 10におけるKeras開発環境構築手順

はじめに

 2021/01/07、Anacondaを最新版にアップデート後、Python3.7.9環境を作りtensorflowとkerasをインストールしたところ、CUDAToolkit v11用のDLLが読めず、GPU支援は受けられないとのエラーが出たので、之に伴い環境変更。

環境 2021/04/23

  • Windows 10 64bit
  • Visual Studio 2017
  • Anaconda 3
  • Python 3.7
  • CUDA Toolkit v11.0.3
  • cudnn-11.0-windows-x64-v8.0.5.39
  • tensorflow-2.4.1
  • Keras 2.4.3

手順

  1. Visual Studio 2017をインストール。Python環境とC++環境にチェック。
  2. Anacondaをインストール。インストール先URIをC:\直下に作成したディレクトリ内にする。URIが長すぎるとAnacondaでTensorflowパッケージをインストールする場合失敗する(condaコマンドを使う場合等)。
  3. CUDA Toolkit v11.0をインストール。その後、予めダウンロードしておいたcudnnの内容(bin, include, lib/x64)をCUDA Toolkit v11.0のインストール先URIにコピー(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0、のはず)。
  4. 以下のURIを環境変数Pathに追加。
    • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin
    • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include
    • C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\lib\x64
  5. スタートメニュー等からAnaconda Promptを起動し、以下のコマンドをbase環境で実行。
    • conda update conda
    • conda update anaconda
  6. Anaconda Navigatorから任意名で新規Conda環境を作成(kerasなど)。
    • Pythonのバージョンを指定してコマンドからも作られるが、Navigatorから作成したほうが無難な気がする。
    • conda infoで確認するとPython3.7.9.final.0、などと表示されるが、作成した環境でpython -vとするとPython 3.7.10となっている。
  7. 作成した環境をAnaconda Navigatorから起動し、下記コマンドを実行。
    • pip install tensorflow-gpu
    • pip install tensorflow
    • pip install keras
      • conda install keras-gpu、も試したが、うまくインストールできなかったのでスルー。うまくいく場合はTensorFlowGPU版も一緒にインストールされるようだが・・・
      • StackOverflowのポストによると、keras-gpuパッケージはKerasとGPU版TensorFlowをワンパックにしたものなので、KerasとGPU版Tensorflowをpipでインストールしても結果は同じとのこと。
  8. インストールがエラー無しで終了したら、Anaconda Prompt上でpythonを起動して下記スクリプトを実行。エラー無しで動いたらtensorflowとkerasが使えるAnaconda仮想環境の構築成功。
    • import tensorflow
    • import keras
  9. Visual Studio 2017で新規Pythonアプリケーションプロジェクトを作ると、Python環境として、上の手順で作成した環境が追加できるようになっているので、プロジェクトツリー内にあるPython環境右クリック→Python環境の追加/削除から使用する環境として選択する。
  10. プロジェクトのPython環境設定が済んだら、適当にKerasを使用したスクリプトを動かして動作確認しようう。

追記

下記エラー回避用コマンドは現時点(2020/11/18)においては必要なくなっていた。
 anacondaターミナルからパッケージのアップデートを行う場合、~

  • pip install --upgrade tensorflow-gpu --use-feature=2020-resolver
  • pip install --upgrade keras --use-feature=2020-resolver

などとする。
 use-feature=2020-resolverオプションを付けないと新しいpipの依存関係解決法を使ってくれず失敗するようになっていたようなので、使おう。

任意バージョンのPythonでのConda環境作成方法

  • conda create -n envname anaconda python=3.7.10、などとしてもよい。対応するバージョンのPythonがインストールされていない場合自動でインストールされる。
    • 上記コマンドでインストールしてパッケージ依存関係に問題が出たらNavigatorから環境を再作成するとうまくいったりする。

依存関係メモ

  • python 3.7.10が前提。Visusal Studio 2017ではPython 3.7までしか使えないから。
    • statsmodels 0.12.1。バージョンを指定せずにpipからインストールするとモジュールがないというエラーに遭遇するかも。
    • 下記パッケージ群はバージョン指定なしで今のところ(2021/04/22)問題なし。
    • tensorflow-gpu tensorflow keras joblib scikit-learn pandas matplotlib pydot graphviz

  • VS2017からanaconda環境を設定して使用する場合、condaターミナルで、一度pip uninstall numpyを実行し、再度numpyをインストールしないと実行時エラーが出るという環境のバグが未だに消えていないようだ。

Python 3.8とVisual Studio 2019

Visual Studio 2017ではPython 3.8環境が使用できない。方法はあるのかもしれないが知らない。Python 3.8を使う場合はVisual Studio 2019を選択することになる。

0 件のコメント:

コメントを投稿

Google Cloud SDKにおけるAPIキーとOAuthキーの使い所の違い

  Google Cloud SDKを使っていると、APIキーのみで済むものとOAuthキーを求められるものとの使い分けを要求される。認証方式の堅牢性によって使い分けが必然的に要求されるのだろうが、用途は以下のようにわけられているらしい。 アプリケーションに求められる内容と実行さ...