空飛ぶロボットのつくりかた

ロボットをつくるために必要な技術をまとめます。ロボットの未来についても考えたりします。

Deep Learningの環境構築(Ubuntu14.04+GTX 950M+CUDA+cuDNN)

これから過酷な戦いが始まる…

ノートパソコンにDeep Learningの環境をつくってみる.

PC環境

目標

  1. Nvidia driver
  2. CUDA
  3. cuDNN
  4. chainer のインストー

Nvidia Driver

悪名高き?ドライバnouveau

nouveauをブラックリストに入れないとNvidiaのドライバが正しくインストールできない可能性がある

参考: UbuntuにCUDAを入れようとしたらハマった - Qiita

Nvidia Driverのインストー

  1. GPUにあったDriverをインストー
  2. 以下の参考の方法でインストー
sudo ./NVIDIA-Linux-x86_64-367.44.run --no-opengl-files

参考: NVIDIAドライバダウンロード  Ubuntu14.04にNVIDIAドライバーをインストールしたらGUIログインできなくなったときの話 - Qiita  https://devtalk.nvidia.com/default/topic/878117/-solved-titan-x-for-cuda-7-5-login-loop-error-ubuntu-14-04-/

nvidia-smiについて

GPUの設定等が見れる

参考:nvidia-smiコマンドの詳細ついて - Qiita nvidia-smi: Control Your GPUs | Microway

CUDA

CUDA対応GPU

CUDA GPUs | NVIDIA Developer

CUDAのドライバ

CUDA Toolkit Archive | NVIDIA Developer

CUDAのインストール方法

  1. CUDA driverのrunファイルをダウンロード
  2. 以下の参考の方法でインストー
sudo ./cuda_7.5.18_linux.run --silent --no-opengl-libs --toolkit

参考: Ubuntu14.04にNVIDIAドライバーをインストールしたらGUIログインできなくなったときの話 - Qiita  https://devtalk.nvidia.com/default/topic/878117/-solved-titan-x-for-cuda-7-5-login-loop-error-ubuntu-14-04-/

CUDA環境変数設定

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_ PATH' >> ~/.bashrc
echo 'export CUDA_PATH=/usr/local/cuda' >> ~/.bashrc
source ~/.bashrc

CUDAのバージョン確認方法

nvcc -V
Tips1: wgetとは
wget (URL)

URLはリンクを右クリックしてコピーしたもの

参考:wget コマンド | コマンドの使い方(Linux) | hydroculのメモ  NVIDIA Driverおよび CUDA のインストール - Qiita

Tips2: PPAとは

参考:Proprietary GPU Drivers : “Graphics Drivers” team  UbuntuのPPAて何? [Linuxの使い方] All About  Personal Package Archives : Ubuntu

CUDAインストール参考資料

http://developer.download.nvidia.com/compute/cuda/7_0/Prod/doc/CUDA_Getting_Started_Linux.pdf

Installation Guide Linux :: CUDA Toolkit Documentation

UbuntuにNvidia GPUのDriver + CUDAをInstallする(GTX1080対応版) - Qiita

Pascal世代GPUでのUbuntu14.04へのCUDAインストール - はぐれ大学院生つれづれ

098.wgetコマンド URLでファイルをダウンロードする LinuxコマンドLinuxコマンドU-Zネットワーク管理コマンド:UNIX/Linuxコマンド Topics Linux初心者のためのサイト

NVIDIA Driverおよび CUDA のインストール - Qiita

cuDNN

cuDNNのダウンロード

ダウンロードするには登録が必要

https://developer.nvidia.com/rdp/cudnn-download

ファイルをコピー

tar xvfz cudnn-<version>.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/* /usr/local/cuda/lib64

Chainer

Chainerのインストール方法

pip install chainer

うまく行かない時は

Releases · chainer/chainer · GitHub

から落としてきて

python setup.py install

アップグレードの方法

pip install -U chainer

ChainerでGPUを使う方法

  1. Variableオブジェクトをcupyから作る
  2. モデル設定後以下の2つを追加
xp = cuda.cupy
cuda.get_device(0).use()
model.to_gpu()

Chainerのサンプルダウンロード

$ git clone [https://github.com/pfnet/chainer:title]

GPUのパフォーマンス確認

上記サンプルの実行

CPU only (core i7)

$ time python train_mnist.py

real 16m27.166s

user 16m26.425s

sys 0m0.168s

GPU (GeForce 950M)

$ time python train_mnist.py -g 0

real 3m12.369s

user 2m50.749s

sys 0m5.305s

GPUを使用すると5倍くらいの速度が出る

chainerのバージョン確認方法

【Chainer】バージョンの確認

chainerの参考資料

Chainer: A flexible framework for neural networks

Ohmsha 書籍連動/ダウンロードサービス『Chainerによる実践深層学習』 これのiris0.py , iris1.py , iris3.py が概要をつかむのに良いかも。

DeepLearningライブラリのChainerがすごい、らしい - cvl-robot's diary

Qiita_Contents/chainer-MNIST_forPubs.ipynb at master · matsuken92/Qiita_Contents · GitHub

Chainerで3層パーセプトロンの誤差逆伝播を実装してみた - TadaoYamaokaの日記

DeepLearning系ライブラリ、Kerasがあまりにも便利だったので使い方メモ - プロクラシスト

chainerで点が円に内包されているか判定してみた ~~入門~~ - gasin’s blog

Chainerでニューラルネットワーク及び畳み込みニューラルネットワークを実装してみた – データ分析エンジニアが気まぐれに更新するブログ

Deep Learningを使っていろいろ試してみたい♪