TensorFlow/Keras+ubuntu16.04の環境構築


ubuntu16.04にてTensorFlow/KerasをGPUにて動かすための環境構築.
個人用のメモ活用なため一部省略して書きますが、質問があれば対応します.

[ 環境 ]
　・Linuxmint( ubuntu16.04ベース )
　・GPU RTX1060(6GB)
　・CUDA 10.0 ※最新は10.1だがTensorFlowが対応していない.
　・cuDNN 
　・Python 3.5.2

1.Linuxのグラフィックドライバ停止
　Linuxでは、通常"nouveau"が動作しているのためこのサービスを停止しないと失敗します.

```:nouveauの停止
①vi /etc/modprobe.d/blacklist-nouveau.conf　※無いと思うので基本新規作成
②上記のファイルに以下を記載し保存.
  blacklist nouveau
  options nouveau modeset=0
③設定変更の反映
　sudo update-initramfs -u
④nouveauが停止していることの確認.
 "lsmod | grep -i nouveau"にてなにも表示されなければOK.
```

2.NVIDIAのグラフィックドライバのインストール
　最新のドライバをダウンロード(https://www.nvidia.co.jp/Download/index.aspx?lang=jp)
　ダウンロード後は、実行権限がないので実行権限を付与する必要がある.

```:グラフィックドライバインストール
①アクセス権の付与
　chmod 755 "グラフィックドライバ"
②インストール
　./"グラフィックドライバ" --no-x-check
　※--no-x-checkを付けないと"Xserver〜"というエラーが出ます.
②にて実行後、基本的に"accept/yes/ok"ですが、以下が4回目くらいにあるのでそこだけ"No"にする.
　"X Window Systemを起動するたびにnvidia-xconfigを実行するかどうか"
③再起動後に、画面表示がNVIDIAドライバにて最適化されていると思います.
```

3.CUDAのインストール
　CUDA10.0を"deb[local]"形式にてダウンロード(https://developer.nvidia.com/cuda-10.0-download-archive)

```:CUDAインストール
①レポジトリの登録
　・sudo dpkg -i cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64.deb
　・sudo apt-key add /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub
　・sudo apt-get update
②インストール
　・sudo apt-get install cuda
　※この時に、インストール対象が10.0になっていることを確認して下さい.
③PATHの設定
　"~/.bashrc"に以下を追記する.
　export PATH=/usr/local/cuda-10.0/bin:${PATH}
④設定の反映
　source ~/.bashrc
⑤動作確認
　"nvidia-smi"にて以下が表示されること.
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.78       Driver Version: 410.78       CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 106...  Off  | 00000000:01:00.0  On |                  N/A |
| 27%   32C    P8     6W / 120W |    245MiB /  6078MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
```

4.cuDNNのインストール
 公式から以下の3つをダウンロードしますが(https://developer.nvidia.com/cudnn)
 ※CUDAのバージョンごとに分かれてるので注意
　・libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb
　・libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb
　・libcudnn7-doc_7.4.2.24-1+cuda10.0_amd64.deb
 
```:cuDNNインストール
①sudo dpkg -i libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb
②sudo dpkg -i libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb
③sudo dpkg -i libcudnn7-doc_7.4.2.24-1+cuda10.0_amd64.deb
④動作確認
　"nvcc -V"にて以下が表示されること.
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130
```

5.TensorFlowのインスストール
　Tensorflowは、python3のライブラリとして提供されているため、pip3にてインストールします.
　TendorFlowの公式にも記載があります(https://www.tensorflow.org/install/gpu)
　また、CPU版とGPU版の2種類があるためCPU版を選ばないように注意ください.

```:TensorFlowインストール
①sudo pip3 install tensorflow-gpu
②動作確認
　Python3にて以下が実行できること.
　import tensorflow as tf　
```

6.Kerasのインストール
　Kerasは、TensorFlowの簡略版であり、backendではTensorFlowが動いています.
　インストール方法は、同じくpip3です(https://keras.io/ja/#_2)
　backendでTensorFlowが動いているためKerasインストール時は、CPU/GPUを意識する必要はありません.

```:Kerasインストール
①sudo pip3 install keras
②動作確認
　Python3にて以下が実行できること.
　import keras
```

以上にて環境構築は完了です.
次回は、簡単なオープンソースなどの使用方法を記載しようと思います.