Windows10 GPUマシンでGANをお試し1/2(1.インストール編)

Windows10のGPUマシンでGAN(Generative Adversarial Network; 敵対的生成ネットワーク)を実行してみます。

1.インストール編(本投稿)では、GANの実行に必要な様々なソフトウェアのインストール手順を記載します。
2.実行編は以下のリンクをクリックしてください。
[2.実行編](https://qiita.com/yuomori/items/23eda664db6d47e3b85e)

#GAN(Generative Adversarial Network; 敵対的生成ネットワーク)とは
様々な文献で解説があるのでここでは簡単にしか記載しませんが、
訓練データと似たような新しいデータを生成することができるモデルです。
GANを用いることで訓練データのN増しを容易に実施できます。

例えば以下の動画のように、馬の画像からシマウマの画像を作成することが可能です。
<blockquote class="twitter-tweet" data-cards="hidden" data-lang="ja"><p lang="en" dir="ltr">Turning a horse video into a zebra video (by CycleGAN) <a href="https://t.co/oF8W2Zexuq">https://t.co/oF8W2Zexuq</a> via <a href="https://twitter.com/YouTube?ref_src=twsrc%5Etfw">@YouTube</a></p>&mdash; Matt Chessen (@mattlesnake) <a href="https://twitter.com/mattlesnake/status/941931262259924993?ref_src=twsrc%5Etfw">2017年12月16日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

・GANの参考記事
[Generative Adversarial Network とは――トップ研究者が解説](https://blogs.nvidia.co.jp/2017/06/21/generative-adversarial-network/)

・GANの論文
Goodfellow et al. (2014)
[Generative Adversarial Nets](https://arxiv.org/pdf/1406.2661.pdf "Generative Adversarial Nets")

#インストール概要
以下の手順でインストールを行います。
1. Requirementの確認 
2. Anadondaのインストール
3. CUDAのインストール
4. cuDNNのインストール
5. Tensorflow GPU版のインストール

#1. Requirementの確認 
TensorFlowのRequirementを確認します。

TensorFlowのページに移動します。
[https://www.tensorflow.org/](https://www.tensorflow.org/)

「Install」をクリックし、環境に合わせたRequirementを確認します。
今回はWindows10を想定しているので、「Installing TensorFlow on Windows」をクリックします。
![1.png](https://qiita-image-store.s3.amazonaws.com/0/173913/33e3bf11-2515-384f-27ad-87bf62d0c22f.png)

Windows環境のRequirementと、GPUの場合のRequirementを確認します。
![2.png](https://qiita-image-store.s3.amazonaws.com/0/173913/562b745b-94b5-357b-2b42-ed4dd9b52261.png)

2018/05/03時点では、GPUを使用する場合、CUDA9.0とcuDNN7.0が必要みたいです。

#2. Anadondaのインストール
Anacondaインストーラのダウンロードページに移動します。
[https://www.anaconda.com/download/](https://www.anaconda.com/download/)

Python3.6バージョンのAnacondaインストーラをダウンロードしてください。
![3.png](https://qiita-image-store.s3.amazonaws.com/0/173913/8b7d524d-2fe5-a142-b8db-ad64e49d4187.png)

以下の記事を参考にインストールしてください。(手抜きw)
[Anaconda を利用した Python のインストール (Windows)](https://pythondatascience.plavox.info/python%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/python%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB-windows)

#3. CUDAのインストール
CUDAインストーラのアーカイブページに移動します。
[https://developer.nvidia.com/cuda-toolkit-archive](https://developer.nvidia.com/cuda-toolkit-archive)

TensorFlowのRequirementに記載の通り、CUDA9.0をインストールします。
「CUDA Toolkit 9.0」をクリックします。
![4.png](https://qiita-image-store.s3.amazonaws.com/0/173913/ca67c87b-ccec-abf6-015f-fb85f2f759c5.png)

ご自身の環境に合わせてTarget Platformを選択し、「Base Installer」とパッチを全てダウンロードします。
※15分程度かかります。
![5.png](https://qiita-image-store.s3.amazonaws.com/0/173913/8fef7f0f-3801-23b8-3f8a-c2bfa7f4857d.png)



ダウンロードが完了したら、「Base Installer」をダブルクリックして実行します。
![6.png](https://qiita-image-store.s3.amazonaws.com/0/173913/cb15d791-75b6-71f2-2a92-673e9e288be6.png)

インストーラが立ち上がったら、契約書を読み、「同意して続行する」をクリックします。
![7.png](https://qiita-image-store.s3.amazonaws.com/0/173913/de77a6e5-3156-602f-5cee-b8ecbff04c6d.png)

「高速(推奨)」を選択し、「次へ」をクリックします。
![8.png](https://qiita-image-store.s3.amazonaws.com/0/173913/2303c1e6-b087-537c-e492-aeda19ba98bd.png)

チェックして「Next」をクリックします。(なぜかここだけ「次へ」が英語ｗ)
![9.png](https://qiita-image-store.s3.amazonaws.com/0/173913/d0ed1b5c-fdd6-73d7-7036-3916e29f6843.png)

待ちます。(10分程度かかります)
![10.png](https://qiita-image-store.s3.amazonaws.com/0/173913/62083d57-8de1-5105-c77b-69e3f8ac8c66.png)

信頼します。
![11.png](https://qiita-image-store.s3.amazonaws.com/0/173913/7fffbb47-12cc-fa95-0717-3e5b4f00ab1e.png)

「次へ」をクリックします。
![12.png](https://qiita-image-store.s3.amazonaws.com/0/173913/89d988b2-ab56-5e1f-7042-052aa90dcea7.png)

インストールが正常に実行されたことを確認し、今すぐ再起動してよければ「今すぐ再起動する」をクリックします。
![13.png](https://qiita-image-store.s3.amazonaws.com/0/173913/baf27e62-e5c6-d901-eb3d-21e122c68a8e.png)

2つのパッチも同様にインストールします。(基本次へを押すだけです。)
![15.png](https://qiita-image-store.s3.amazonaws.com/0/173913/f97c9d2a-44a9-be7c-b1cd-7a4c7879cf46.png)

2つとも、以下の画面が表示され、正常に完了したことを確認してください。
![14.png](https://qiita-image-store.s3.amazonaws.com/0/173913/bfb5887d-270c-eced-185a-a939e64a6010.png)

以上でCUDAのインストールは完了です。

#4. cuDNNのインストール
cuDNNインストーラのアーカイブページに移動します。
[https://developer.nvidia.com/rdp/cudnn-archive](https://developer.nvidia.com/rdp/cudnn-archive)

TensorFlowのRequirementに記載の通り、cuDNN7.0をインストールします。
「for CUDA9.0」かつ、cuDNN7.0系の最新バージョンをダウンロードします。
![17.png](https://qiita-image-store.s3.amazonaws.com/0/173913/c9a632e8-b6f1-6ab5-3a82-deaabdd691b0.png)

ダウンロードが完了したらzipファイルを解凍します。
![16.png](https://qiita-image-store.s3.amazonaws.com/0/173913/65368d60-5ec0-0dee-88bf-56bfb70cd04e.png)

cudaフォルダが作成され、以下のようなディレクトリ構造になっていることを確認します。
![18.png](https://qiita-image-store.s3.amazonaws.com/0/173913/c2b13fb7-4dda-c30c-902a-552f0e12de44.png)

CUDAのインストールディレクトリ(私の場合は以下)を開きます。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0
![19.png](https://qiita-image-store.s3.amazonaws.com/0/173913/08ef1982-a6ee-1021-5c3c-18b1f948bbda.png)

zipファイルを解凍してできたcudaフォルダ内のファイルをCUDAのインストールディレクトリ内の同じディレクトリに移動します。
以下では、cuda\bin\cudnn64_7.dllを
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\binに移動しています。
![20.png](https://qiita-image-store.s3.amazonaws.com/0/173913/a1f76d35-9179-fbb6-c287-56da174e515c.png)

同様のことをincludeフォルダ、libフォルダに対しても実施します。
※includeフォルダ内のファイルはincludeフォルダ、libフォルダ内のファイルはlib\x64フォルダに移動します。
![21.png](https://qiita-image-store.s3.amazonaws.com/0/173913/bddfff07-b966-0829-df07-3de44bee6d49.png)

以上でcuDNNのインストールは完了です。

#5. Tensorflow GPU版のインストール
必須ではないですが、tensorflow用の環境を作成します。
GUIでの作成手順を記載しますが、もちろんコマンドでも作成可能です。

Anaconda Navigatorを開き、「Environment」タブ->「Create」をクリックします。
![22.png](https://qiita-image-store.s3.amazonaws.com/0/173913/0e0f89e0-ebbf-bc57-e176-cf79ab5166b3.png)

環境名を入力し、「Create」をクリックし、環境を作成します。
※Python3.5ではなくPython3.6で問題ありません
※数分かかります。
![23.png](https://qiita-image-store.s3.amazonaws.com/0/173913/a0456a62-e654-faee-f878-9d0450b9275f.png)

環境が作成出来たら、「Environment」タブからその環境名の矢印をクリックし、「Open Terminal」をクリックします。
![25.png](https://qiita-image-store.s3.amazonaws.com/0/173913/a18d9df2-ee26-3831-5eb9-f6cfe378d0c5.png)

「pip install tensorflow-gpu」と入力し、Enterを押します。
![26.png](https://qiita-image-store.s3.amazonaws.com/0/173913/16192448-2799-4eb1-413a-006d5503bb3d.png)

「Successfully installed～～」と出ていたらTensorflowのインストール成功です。
![27.png](https://qiita-image-store.s3.amazonaws.com/0/173913/2f820ced-2faf-5e32-fad4-79127a9a964d.png)

正常にインストールできているか確認します。
「python」と入力しEnterを押し、pythonで「import tensorflow」と入力し、Enterを押してください。
Errorが発生しなければインストールに成功しています。
![28.png](https://qiita-image-store.s3.amazonaws.com/0/173913/f94ff562-9c7f-d6c7-d765-54b18de5cbde.png)

以上で1.インストール編は完了です。
次は[2.実行編](https://qiita.com/yuomori/items/23eda664db6d47e3b85e)です。