50歳じじい初心者がGPU搭載windows10のマシンにtnesorflowのGPU版を環境設定するときに苦労したこと（2018/7/31更新）

おっさんpythonビギナーです。久しぶりの投稿ですが、なんとかやってます（生きてます）。今回は<b>tnesorflowのGPU版をwindows10に環境設定するときにとっても苦労しました</b>ので、方法論をまとめました。お役に立てばうれしいです。
【7/31更新】
※Visual Studio Community 2015 with Update 3が、さらに探しにくくなったので追記しました。
※なぜ追記したかというと、GPUが何らかの障害で動かなくなるという悲劇に見舞われ再インストールに迫られたからです。安定してほしい・・・。

##参考サイト
https://qiita.com/Joe_Takasuna/items/e5444c31fbd16f30725a
https://www.sejuku.net/blog/43784

##PC環境
参考サイト（上）Joe Takasunaさんに倣って書きました。現時点での最新バージョンです。


Windows10 Home
NVIDIA GeForce GTX 1080 Ti

Python 3.6.6
Anaconda 3-5.2.0
TensorFlow-GPU 1.8.0
Keras 2.2.0

Visual Studio Community 2015 with Update 3
CUDA v9.0
cuDNN 7.14
※@intenseGさんにご指摘いただき[cuDNN 6→7]に修正しました。ありがとうございました！


##Anacondaのインストール
GPU搭載win10なら注意点は1点だけ。あとはなすがままインストール「されて」ください。
<b>【注意】Python 3.6 version の「64-Bit Graphical Installer (631 MB)」を選択！

[Anacondaをwin10にインストール](https://www.anaconda.com/download/)

##Visual Studio 2015のインストール
<b>一番大事です！私はココで失敗してpythonが動かないエラーが出まくりました。
ポイントは3つです。</b>

①[Visual Studio Community 2015 with Update 3](https://visualstudio.microsoft.com/ja/downloads/)を選ぶこと
　（最新バージョン（現時点で2017）はNGです）
②どこにあるかよくわからない→実はTOPの最下部にあるのでひたすらスクロールダウンしてください。
【以下、更新部分です】
　最下段の「以前のバージョン」→「Visual Studio 2015およびその他の製品　ダウンロード」
　→「Visual Studio 2015 Updata3」→「Visual Studio Community 2015 with Update 3」
　まで遷移します。ここで言語（japaneseもあります）を選んでexeをダウンロードしてください。
　画面にデフォで「Visual C++」「Python Tools for Visual Studio(2017)」がチェックされいます。
　無関係かもしれないですが、私はその下の「Windowsアプリ開発」もチェックを入れました。
　ただココにチェックを入れると時間がめちゃくちゃかかります。
③会員登録が必要。これが結構面倒くさい（耐えてください）

##CUDA Toolkit 9.0をインストール
ここの注意は3点です。
<b>【注意】</b>
①CUDA Toolkit 8.0はNGです。GPUが動きません。
（あっちゃこっちゃサイトを読みまくり8.0をインストールしてドツボにはまりました。バージョンが合わないようです）
②「Windows」→「10」→「exe (network)」を選択。（私はやってませんがlocalでも大丈夫かも）
③Base InstallerとPatch1の2つをインストール

##cuDNNをインストール
[インストール](https://developer.nvidia.com/cuDNN)での注意すべきことはないと思います。
しっかりバージョンを合わせてください（私はCUDA v9.0なのでcuDNN 7.14です）。
ただし、インストール後は下記②の注意が必要です。

①解凍後3つのファイルを確認（bin/include/lib\x64）
<b>②上でインストールしたNVIDIA GPU Computing Toolkit\CUDA\v9.0に次のようにコピーしてください。</b>
　－cuda\bin\cudnn64_7.dll　＝＞　C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin\
　－cuda\include\cudnn.h　＝＞　C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\include\
　－cuda\lib\x64\cudnn.lib　＝＞　C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64\



##TensorFlow（GPU版）のインストールと仮想環境の構築
anacondaから設定する場合は[コチラ](https://www.sejuku.net/blog/43784)がわかりやすいですが、
jupyter lab=>terminal　で
```pip install --upgrade tensorflow-gpu```
を実行すると私は恐ろしいほど赤字が出てきたので、Anaconda promptから次のようにしました。
※@khskさんからご指摘を受けて[jupyter]へ修正しました。ありがとうございました！
※@minaraiさんからご指摘を受けて　--upgrade へ修正しました。ありがとうございました！


####まず仮想環境の構築
```conda create -n tfgpu python=3.6```
```activate tfgpu```
<b>★tfgpuは好きなネーミングで構いません。-nはnameの略のようです。</b>

####次にTensorFlow（GPU版）をインストール
```pip install tensorflow-gpu```
ついでにkerasも。
```pip install keras```

##本当にGPUが動いているかの確認
これで終了、と言いたいのですが、やっぱり確認したいですよね。
確認の方法は諸先輩方のサイトで色々紹介されていたのですが、私が最も確実だと思うのは<b>[MNISTのサンプルコード](http://ossyaritoori.hatenablog.com/entry/2018/03/27/Keras_%26_Tensorflow_%28GPU%E6%9C%89%29%E3%81%AE%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89_on_Windows_with_Anaconda)で処理速度の違いや挙動を見ること</b>かと。


【確認方法】2つあります。1がオススメです。
<b>1.CPUと実行時間を比較する</b>
　mnistは12epochあります。私の場合、おおよそ16.7倍という驚異的な数値でした！
　－GPU：約3秒/epoch＝＞約36秒
　－CPU：約50秒/epoch＝＞約10分
<b>2.タスクマネージャーからGPU負荷を見る</b>
　①画面下の黒い部分（どこでもOK！）を右クリック
　②下から3番目のタスクマネージャをクリック
　③パフォーマンスタブをクリック
　⓸最下部のGPUをクリック
　⓹GPUが挙動しているか確認

##お疲れさまでした！
ここまでクリアした方、本当に、本当にお疲れさまでした。初心者はめっちゃ苦労しますね。私の場合、20時間は楽勝でかかっています。それでもこの程度で達成できたのは多くの方のサイト、特に上記参考サイトに助けられたからです。
[Joe Takasunaさん](https://qiita.com/Joe_Takasuna/items/e5444c31fbd16f30725a)と[samuraiさん](https://www.sejuku.net/blog/43784)には心からお礼を申し上げます。
ありがとうございました！

これから同じ環境で設定を考えている方に少しでも参考になると嬉しいです。

では！