Chainer セットアップ

Takami Torao Ubuntu 16.04 Chariner 3.2 CuPy 2.2 #chainer
  • このエントリーをはてなブックマークに追加

概要

Chainer はニューラルネットワークを記述するためのフレームワーク。既存の命令型フレームワークよりも "Define and Run" で柔軟性を重視しており宣言的にネットワークを記述することができる。

Ubuntu 16.04 セットアップ

Python 3 をセットアップして virtualenv を使える状態にする。最新の Install Guide を参照。現在の CuPy 2.2.0 では Ubuntu 16.04 / 14.04 または CentOS 7 (いずれも 64bit)、Python 2.7, 3.4, 3.5, 3.6 で利用できる。

CPU のみを利用する (演算に GPU を利用しない)

GPU を使用しない Chainer は pip3 を使用して Chainer をインストールするだけである。

$ pip3 install chainer

Chainer は機械学習の演算に CPU と GPU を選択することができる。CPU での演算は低速な代わりに様々な環境で実行することができるため、小規模な機械学習の実行テストや CUDA が対応していない環境構成 (例えば Bash on Windows など) での実行に適している。

GPU を利用する

CUDA (Compute Unified Device Architecture) は NVIDIA が開発している並列コンピューティングのための API とフレームワークである。Chainer は CUDA を使用して NVIDIA 製の GPU を搭載したコンピュータで高速なベクトル演算を利用することができる。CUDA に対応した GPU 製品は CUDA GPUs を参照。

CUDA のインストール

NVIDIA 開発者サイトの CUDA Toolkit を開き [Download Now] で適切な OS、アーキテクチャやディストリビューションを選択して cuda-repo-platform_arch.deb ファイルをダウンロードする。例えば Ubuntu 16.04 (x86) では以下のようにインストールする (リンク先のページにプラットフォームごとの手順が記載されている)。

$ sudo dpkg -i cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
$ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get install cuda
...

インストールが完了したら /usr/local/cuda/ ディレクトリが作成されていることを確認する。


$ ls -l /usr/local/cuda/
total 60
drwxr-xr-x  3 root root 4096 11月 27 19:37 bin
drwxr-xr-x  5 root root 4096 11月 27 19:37 doc
drwxr-xr-x  5 root root 4096 11月 27 19:37 extras
...

cuDNN のインストール

続いて cuDNN をインストールする。cuDNN も NVIDIA が提供しており CUDA を使用してディープラーニングに最適化した行列演算を行うためのフレームワークである。

NVIDIA cuDNN のページから [Download] へ移動する (ユーザ登録とアンケート、利用規約への同意が必要)。利用する CuPy (ベクトル演算ライブラリ) が対応している最新バージョンを選択する。Chainer の CuPy が対応している cuDNN のバージョンは Install Guide を参照。

$ sudo ldconfig -p | grep libcuda
libcudart.so.8.0 (libc6,x86-64) => /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudart.so.8.0
libcudart.so (libc6,x86-64) => /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudart.so
libcuda.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so.1
libcuda.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcuda.so

$ sudo ldconfig -p | grep libcudnn
libcudnn.so.6 (libc6,x86-64) => /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so.6
libcudnn.so (libc6,x86-64) => /usr/local/cuda-8.0/targets/x86_64-linux/lib/libcudnn.so

Chainer のインストール

Chainer のインストールも pip3 を使用するが環境変数で CUDA のパスを指定する部分が異なる。

$ CUDA_PATH=/usr/local/cuda pip3 install chainer --no-cache-dir

Chainer の動作確認

Python を起動して Chainer のバージョンを確認する。

$ python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import chainer
>>> print (chainer.__version__)
3.2.0
>>>