GTX760のWin10にKerasを導入したのでメモ
ディープラーニングってやつでなんとかして!!!!
ってことで今の環境にニューラルネットワークライブラリであるKerasを導入したのでメモ
ちょっとしたバージョンの違いだけでも動かないので注意してください。
CUDA 9.0 の導入
NVIDIAから出してる並列処理プラットフォームのCUDAを落とします。
現在Ver10まで出ていますが、TensorflowがVer10に対応していないためVer9を導入。
Installer typeはnetoworkだとうまくいかなかったとの情報がありましたが、自分は大丈夫でした。
ちょっと時間がかかりますが、ぱぱっとインストール
cuDNN 7.3.1 の導入
CUDA専用のDNNライブラリのcuDNNを落とします。
これはNVIDIA Developerにあらかじめ登録してないと落とすことができません。また登録申請からアカウントが使えるまで1日待ったので気長にお待ちを
https://developer.nvidia.com/rdp/cudnn-download
バージョンはCUDAに必ず合わせます。CUDA 9.0を入れたので、「..., for CUDA 9.0」のを選択
これはインストーラーではなくフォルダがzipで送られます
cuDNNをCUDAに適用
cuDNNの中に入っているファイルをCUDAにディレクトリにコピーします。
CUDAは標準だと「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0」に入っているはずです。
cuDNNにはbin, include, libの3つのフォルダがありますが、その中身を上記のCUDAの同じフォルダ名の中にコピー
システム環境変数の確認
ここで一旦、Pathがちゃんと通っているか確認します。
過去にCUDAを入れたことがあったりすると「CUDA_PATH」が違うバージョンを示している場合があるので要注意
Pathにも以下が通っているか確認
Tensorflow 1.11.0 の導入
Pythonの実行するAnacodaとVisual Codeは予めインストールしておいてください。
ちなみにpythonのバージョンは3.5で(3.6でも問題ないはず)
Visual Codeのターミナル画面で仮想環境を立ち上げ「pip install tensorflow-gpu」と打てばインストールしてくれます
Keras 2.2.4 の導入
こちらもターミナル画面で「pip install keras」と打って実行すれば完了
Scipyのバージョン下げ
普通ならばここで簡単なテストを走らせれば動きますが、自分の場合AnacondaかTensorflowを入れる段階でバージョンが違うScipyが入れられたらしくエラーを吐きました。
いろいろ試したところバージョンを1つ下げたもので動いてくれました
- 「conda list」でScipyのバージョンを確認
- pipとcondaで重複していないか確認。重複していれば両方とも消す
- 「pip install scipy==1.0.1」でバージョン指定したのをインストール
パッケージバージョン一覧
とまぁなんだかんだ、以下のようなパッケージになりました。
恐らくもっとすっきりにできると思いますが...
MNISTの分類サンプルの実行
パスとバージョンを確認したうえで、DNN基本であるMINISTの分類を行います。
コードはkerasのサンプルから丸コピーしてください。
.pyコードを実行すると、うまくいけば以下のように現在のエポック、ロス等が表示されます。きちんと GTX 760で回していることも確認できたのでこれでOK!!
ちなみに1エポックで130秒ぐらいかかりました。そこまでdeepではないのでやっぱGTX 760ではこの先も結構時間がかかりそう
Tensorflowのビルド
Tensorflowを自前でビルドする際は別途手順が必要です。
バージョンの対応表は下記リンクの一番下のページにあります
Build from source on Windows | TensorFlow
コンパイルにBazelとMSYSが必要になります。こちらもちゃんとPATHが通っていることを確認してください。
Installing Bazel on Windows - Bazel
またこちらもtensorflowでバージョンが指定されています。なんでもかんでも最新のを選ぶと後々めんどくさいので要注意。
では!いいDNNライフを!