Deep Learningの開発プラットフォームとしては、次のようなものがあります。
Caffe:現在Google Researchに所属するYangqing Jia氏がUniversity of California, Berkeleyの学生時代に開発したCNNの開発プラットフォーム。Git Hubにて開発されており、今も活発に更新が続いています。Model Zooでは、コンペで話題になったGoogleNetやVGGなどのCaffe用のネットワーク構造設定ファイルが公開されているので、最新のCNNを試したい場合はCaffeが最適です。
Theano:モントリオール大学のYoshua Bengio研究室で開発されています。TheanoはPythonの数値計算ライブラリで、Deep Learningに限らず任意の数値計算に適用が可能です。Pythonの数値計算の標準ライブラリであるNumpyと異なり、シンボルと呼ばれる変数を用いて数式と微分の計算を直感的にプログラミングできます。TheanoをDeep Learning向けに拡張したPylearn2があり、CNNに限らずDeep Belief Networkなどの生成モデルにも対応しています。
本ブログでは、Caffeを利用した場合について説明していきます。Caffeは、C++のcaffeライブラリに加え、PythonとMatlabのインタフェースが提供されており、対応OSは、LinuxとMacとなっています。
http://caffe.berkeleyvision.org/
CaffeをGPU上で動かすためには、NVIDIAから提供されているCUDAが必要です。今回はCUDAの最新バージョン7をインストールします。
まず、Linux上の基本的な開発環境パッケージであるbuild-essentialsをインストールします。
> sudo apt-get install build-essentials
次に、CUDAのページからCUDA7のUbuntu14.04用のレポジトリパッケージcuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.debをダウンロードし、dpkgを使ってCUDAレポジトリをインストールし、パッケージのupdate、upgradeをします。
> sudo dpkg -i cuda-repo-ubuntu1410-7-0-local_7.0-28_amd64.deb > sudo apt-get update > sudo apt-get upgrade
次に、nvidia-currentパッケージをインストールして、再起動します。
> sudo apt-get install nvidia-current > sudo reboot
デスクトップの起動後、Ctl+Alt+F1を押しコンソールモードに切り替えて、依存性の問題があるlibcheese関連のパッケージを削除します。
> sudo apt-get remove libcheese*
そして、CUDAをインストールし、壊れたUbuntuデスクトップを入れ直します。
> sudo apt-get install cuda > sudo apt-get install ubuntu-desktop > sudo reboot
これで無事にCUDAのインストールが完了し、Ubuntuデスクトップが起動できるようになります。
ちなみに、インストールされたCUDAパッケージの一覧は、次のコマンドで確認することができます。
> dpkg -l | grep cuda
また、nvidia-smi, lsmod、lspci及び/dev/nvidiaによりnvidiaドライバがロードされ、GPUデバイスが認識されていることを確認できます。
> nvidia-smi nvidia-smi Fri Mar 20 21:07:42 2015 +------------------------------------------------------+ | NVIDIA-SMI 346.46 Driver Version: 346.46 | |-------------------------------+----------------------+----------------------+ | 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 980 Off | 0000:01:00.0 N/A | N/A | | 0% 33C P8 N/A / N/A | 273MiB / 4095MiB | N/A Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 C+G Not Supported | +-----------------------------------------------------------------------------+
> lsmod | grep nvidia nvidia 8370774 44 drm 311018 3 nvidia
> lspcia | grep -i nvidia 01:00.0 VGA compatible controller: NVIDIA Corporation Device 13c0 (rev a1) 01:00.1 Audio device: NVIDIA Corporation Device 0fbb (rev a1)
> ls /dev/nvidia* /dev/nvidia0 /dev/nvidiactl