初心者がGPU搭載Windows10にPython + Anaconda + TensorFlow + Kerasの環境を構築してみた[2018/4/28]

この記事はプログラミングを全くした事のない初心者の私が、
苦労した環境構築を丁寧に記録する事で誰かの参考になればと思い執筆するものです。

#参考記事
[[Python]Windows10にTensorflow-GPU+Kerasをインストールする[2017/10/5]](https://qiita.com/meznat/items/268ea929f12b113ef132)

#環境
Windows10 Pro
NVIDIA GeForce GTX 1080 Ti

Python 3.6.1
Anaconda 3-4.4.0
TensorFlow-GPU 1.3.0
Keras 2.1.6

Visual Studio Community 2015 with Update 3
CUDA v8.0
cuDNN 6

#大事なこと
- この分野は急成長中であり常に変わっていきます。環境構築の際は記事の日付がなるべく新しいものを参考にしてください。
- 出来る限り環境を合わせると良いでしょう。特にインストールするバージョンは記事と同じにすると上手くいくことが多いです。

私はこの2つをないがしろにして苦労したので、皆さんは是非意識してください（；＿；）

#手順
1. （PCを初期化する）
2. AnacondaでPythonをインストール
3. Visual Studioをインストール
4. CUDAをインストール
5. cuDNNをインストール
6. GPU実行環境確認
7. （仮想環境を構築する）
8. TensorFlow-GPU、Kerasをインストール

各インストール手順において「管理者権限で実行」をしておくと良いでしょう。

#PCを初期化する
これが出来る環境なら初期化するのをおすすめします。PCの奥深くまでいじる為、何が影響するか分かりません。
特にすでに他の方法で環境構築した方はそのデータが（削除したつもりでも）残っている可能性が高いです。

参考：
[Windows 10の初期化(リカバリー/OS再インストール/全データ削除)を実行して工場出荷時の状態に戻す手順](http://did2memo.net/2018/01/14/windows-10-os-recovery-thinkpad-x270/)

#AnacondaでPythonをインストール
これの基本的な手順は以下を参考にすれば出来ると思います。
[AnacondaをWindows10にインストールする](https://sekaiokaeru.com/tips/install-anaconda)

旧ver.のanacondaは以下のページからダウンロードしてください。
https://repo.continuum.io/archive/

ただし全てそのまま進めると、その時点での最新ver.のPythonがインストールされてしまうのでインストール後に以下を行なってください。

1. Anaconda Promptを開く
2. `python`と打ってバージョンを調べる
3. 3.6で無い場合、`exit()`を実行してから`conda install python=3.6`と打つ

#Visual Studioをインストール
ダウンロードページの更新が早いらしく、冒頭の参考記事では通常のダウンロードが出来ていましたが、私は違う手順を行う必要がありました。
今後も変わる可能性はありますが、参考までに手順を載せておきます。

1. Microsoftのユーザー登録を行う
2. https://www.visualstudio.com/downloads/ の最下部にある「以前のバージョン」をクリック
3. 「無料の Dev Essentials プログラム」をクリック
4. 「今すぐ参加またはアクセス」をクリック
5. 「ダウンロード」タブを選択
6. 「Visual Studio Community 2015 with Update 3」をクリック
7. 該当するソフトを、環境を選択してダウンロード


インストールは基本的にそのままで良いですが、途中でカスタムインストールを選択し赤枠部分にチェックを入れてください。
>![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3138343733372f66646330313963632d613863662d336633662d393938332d6239616562663031386663342e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/253818/3792ea83-c494-a2c4-5f5e-682a4df35cfa.png)

#CUDAをインストール
これは参考記事と同様の手順で出来ました。
>https://developer.nvidia.com/cuda-toolkit-archive
からCUDA Toolkit 8.0 GA2を選択し、ダウンロード画面へ。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3138343733372f66646532613238322d616464382d663333312d336238322d3437303638333931313631652e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/253818/341bd3d6-1c28-89b9-3827-8eab76ed7569.png)

>インストールタイプにnetworkとlocalを選択できるが、通常はnetwork版を使用。下の確認作業でうまくいかなければlocal版をインストールしてください。（私はlocal版でうまくいきました)
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3138343733372f64346431356233622d316134622d396136312d663636342d3063306434393438326565372e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/253818/0040a20c-b67b-582a-051d-6037aa1bd459.png)

>インストールには何もいじらず推奨設定のまま実行してください。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3138343733372f37333665313731372d313438332d363235312d386564652d6330313161313165383962302e6a706567.jpeg](https://qiita-image-store.s3.amazonaws.com/0/253818/b3af8d3b-4791-034b-2321-f1a1dcf30208.jpeg)

#cuDNNをインストール
こちらも参考記事とほぼ同様の手順で出来ました。
最後はPATHでは無く、上書きコピーをおすすめします。

ただしCUDAディレクトリは環境によって変わってくるので探してください。
「NVIDIA GPU Computing Toolkit」でフォルダ名検索をすれば必ず見つかります。
>https://developer.nvidia.com/rdp/cudnn-download
でユーザー登録を行い、Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0を選択し、zipファイルをダウンロードする。
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3138343733372f64356437646231382d383837302d643331622d383332362d6232613438346138363439322e706e67.png](https://qiita-image-store.s3.amazonaws.com/0/253818/f5a9f4a2-0fc1-c6c1-2eda-cf5bf3e089ee.png)

>zipファイルを解凍すると、cuda/bin,include,libフォルダが展開されるため、任意のディレクトリに設置しPATHを通すか、先にインストールしたCUDAディレクトリC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0の同名フォルダへそれぞれ上書きコピーする。

#GPU実行環境確認
参考記事の手順通り行なってください。
>これまでで、GPU実行環境が正常にインストールされたか調べるため、コマンドプロンプトを起動し
`nvcc`
コマンドを実行する。
`nvcc fatal : No input files specified; use option --help for more information`
が表示されれば正常にインストールが完了している。
`nvcc`を認識できなければどこかでインストールが失敗しているため、はじめから環境構築をやりなおして下さい。

#仮想環境を構築する
私は最初、参考記事通りにこれを行おうと思いましたが、Jupyter Notebookとの接続が上手くいかず諦めて基本環境に後述のインストールを行いました。

メリット
- いつでも環境をリセットできる
- 環境の使い分けが出来る

デメリット
- 拡張機能との接続が難しい

出来たら仮想環境は使った方が良いですが、無理そうな方は以下の手順は飛ばしても構いません。
>Anacondaのコマンドプロンプトを起動し
`conda create -n tensorflow python=3.6.2`
で仮想環境[tensorflow]を作成。
`activate tensorflow`
で仮想環境に入る。

#TensorFlow-GPU、Kerasをインストール
いよいよ最後です！
こちらも基本的には参考記事の手順で出来ますが、それぞれその時点の最新ver.でインストールされてしまうのでこのように改変してください。
`pip install (パッケージ名)==(バージョン)`

>`pip install tensorflow-gpu`
`conda install scipy`
`pip install keras`
を順次実行。ここまででエラーがでなければうまくいくはず。

>最後にpythonの対話モードに入り、`import keras`で
`Using TensorFlow backend.`と表示されればインストール成功。

#結言
お疲れ様でした。上手くいったでしょうか。

正直、上手くいかない事の方が多いかと思います（笑）
私は1ヶ月近く悪戦苦闘しました。

しかしながらこれが上手くいった時の感動、そしてこれから始まるディープラーニングへのワクワクは何ものにも代えがたいです。
どうかこれを参考に最後まで走り抜けて欲しいと考えています。

もし途中でつまづいたらお気軽にコメントをください。
その頃には私ももう少し詳しくなっているはずですので、精一杯の対策を考えます。

一緒にディープラーニングを楽しみましょう！

*参考記事の@meznat様と、研究室仲間のIさんに感謝を込めて。
Joe Takasuna*