Ubuntu14.04にGPU使ったDeepLearning環境(TensorFlow)を整えるまで

#python関係
##pyenv
- 必要パッケージのインストール

```
sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
```

- pyenvをgit clone

```
sudo git clone git://github.com/yyuu/pyenv.git ./pyenv
```

- PATH設定  
 `.bash_profile` の編集

```
cd
vim .bash_profile
```

```
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
```

```
source .bash_profile
```

- install可能なバージョン

```
pyenv install --list
```

##virtualenv
- pyenv-vertualenv

```
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
```

- virtualenv

```
sudo apt-get install python-vietualenv
```

##他必要パッケージ
- pip,dev

```
sudo apt-get install python-pip, python-dev
```

#GPU周り
##NVIDIA GPUドライバ
[サイト](http://www.nvidia.co.jp/Download/index.aspx?lang=jp)から選択
##CUDA
[サイト](https://developer.nvidia.com/cuda-downloads)からダウンロード
「Linux」-> 「x86_64」->「Ubuntu」->「14.04」->「deb[local]」

##cuDNN
[サイト](https://developer.nvidia.com/rdp/form/cudnn-download-survey)からダウンロード
適当にチェックして「Proceed to Downloads」クリック
Agreeにチェックいれて「Download cuDNN v5 (May 27, 2016), for CUDA 8.0」->「cuDNN v5 Library for Linux」
※別にこれじゃなくてもいいと思う。

##インストール
※フォルダとファイルは適宜自分の環境に読み替える
###NVIDIA GPUドライバ
- 「ctr」 + 「alt」 + 「F1」でGUI画面に移行
- 各種設定および実行

```
sudo apt-get purge nvidia*
sudo service lightdm stop
sudo chmod 755 ~/download/NVIDIA-XXXX
cd download
sudo ./NVIDIA-XXXX
```
※注意：もしフォルダ名が「ダウンロード」「デスクトップ」など日本語になっていたら「downloads」「desktop」など英語に変えておくことをおススメします。GUI画面では `cd ダウンロード` など日本語が使えません。（方法あるのかもしれませんけど、私はさっさとフォルダ名変えました。）

最後に`sudo reboot`などで再起動
###CUDA
```
sudo dpkg -i download/cuda-repo-ubuntu1404-8-0-local_8.0.44-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
```
###cuDNN
```
cd download
tar xvzf cudnn-8.0-linux-x64-v5.0-ga.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
```

###PATH
```
cd
vim .bashrc
```

```
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export CUDA_HOME=/usr/local/cuda
```
反映
```
. ~/.bashrc
```
または`.bash_profile`に`source .bashrc`が記述してあれば
```
source .bash_profile
```

#TensorFlow
[ココ](https://www.tensorflow.org/versions/r0.11/get_started/os_setup.html)でインストールするもの確認
`virtualenv test`などで環境作ってあると仮定
(pyenvせっかく入れたのに使わず)

インストール　※2系GPU版

```
(test)pip install --upgrade https://www.tensorflow.org/versions/r0.11/get_started/os_setup.html
```

##動作確認
```
(test)f@f:~$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcublas.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcudnn.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcufft.so locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:111] successfully opened CUDA library libcurand.so locally
>>> sess=tf.Session()
I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:925] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
I tensorflow/core/common_runtime/gpu/gpu_device.cc:951] Found device 0 with properties: 
name: GeForce GTX 960
major: 5 minor: 2 memoryClockRate (GHz) 1.1775
pciBusID 0000:01:00.0
Total memory: 3.94GiB
Free memory: 3.16GiB
I tensorflow/core/common_runtime/gpu/gpu_device.cc:972] DMA: 0 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] 0:   Y 
I tensorflow/core/common_runtime/gpu/gpu_device.cc:1041] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 960, pci bus id: 0000:01:00.0)

```

参考：[Ubuntu14.04 + GPU + TensorFlow 環境構築](http://qiita.com/qooa/items/c516001c07a768c6b51b)

そのうちjupyterとか追記します。