コンテンツ自動生成AIの本を読み進める話(第2.0話)

第2.0話:Chainer環境構築


この記事は「Chainerで作るコンテンツ自動生成AIプログラミング入門」の読書メモです。1章1話くらいで進めたいけど、一回でまとまらなかったらX.5話でロスタイム回が増えるかもです。

2章はChainerの環境構築と基礎的なChainerのプログラムに慣れ親しむ章です。今回は環境構築までやってみます。


お勉強用マシンの環境について

FFか何かの推奨ゲーミングノートPCだったものです。デュアルブートでWindows10と同居しています。
  • Ubuntu 16.04 LTS
  • Intel Core i7-4710MQ 2.50GHz x 8
  • 256GB SSD
  • 15.6GB SODIMM DDR3
  • GeForce GTX850M


CUDAのインストール

実は終わってました。 /usr/local/cuda/ があるかどうかが目安みたい。


cuDNNのインストール

まだだったのでやります。

cuDNNのページへ行って、ログイン。アンケートとかを適当に入力して、自分とこのCUDAに合ったものをダウンロードします。Runtime LibraryとDeveloper Libraryどっちもです。インストールは依存関係があるので無印→devの順です。
sudo dpkg -i libcudnn7_7.1.4.18-1+cuda8.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.1.4.18-1+cuda8.0_amd64.deb

/usr/include/cudnn.h が出来上がってればOKみたい。
mahirun@xivo:~$ ll /usr/include/cudnn.h 
lrwxrwxrwx 1 root root 26  7月 22 16:59 /usr/include/cudnn.h -> /etc/alternatives/libcudnn


Chainerのインストール

virtualenvで環境作って、そこにインストール。cupyのとこめっちゃ時間かかってちょっと不安になった。
# 適当なディレクトリに移動してvirtualenvします
mahirun@xivo:~$ cd work/
mahirun@xivo:~/work$ virtualenv -p python3 conts-01
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/mahirun/work/conts-01/bin/python3
Also creating executable in /home/mahirun/work/conts-01/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.

# activateする
mahirun@xivo:~/work$ cd conts-01/
mahirun@xivo:~/work/conts-01$ la
bin  include  lib  pip-selfcheck.json  share
mahirun@xivo:~/work/conts-01$ source bin/activate
(conts-01) mahirun@xivo:~/work/conts-01$

# pillow, h5py をインストール
(conts-01) mahirun@xivo:~/work/conts-01$ pip install pillow
Collecting pillow
  Downloading https://files.pythonhosted.org/packages/3d/9e/b8a10bec874d2f6f2668b0d71ddf0d0a69ed9307d2ef111607adf81fdc1c/Pillow-5.2.0-cp35-cp35m-manylinux1_x86_64.whl (2.0MB)
    100% |████████████████████████████████| 2.0MB 14.8MB/s 
Installing collected packages: pillow
Successfully installed pillow-5.2.0
(conts-01) mahirun@xivo:~/work/conts-01$ pip install h5py
Collecting h5py
  Downloading https://files.pythonhosted.org/packages/d9/0a/f0dd6d533d6b5bd4c1ca186af2792186885a90b84df41f3e6867466761fc/h5py-2.8.0-cp35-cp35m-manylinux1_x86_64.whl (2.8MB)
    100% |████████████████████████████████| 2.8MB 8.2MB/s 
Collecting six (from h5py)
  Downloading https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Collecting numpy>=1.7 (from h5py)
  Downloading https://files.pythonhosted.org/packages/43/17/cd9fa14492dbef2aaf22622db79dba087c10f125473e730cda2f2019c40b/numpy-1.14.5-cp35-cp35m-manylinux1_x86_64.whl (12.1MB)
    100% |████████████████████████████████| 12.1MB 4.0MB/s 
Installing collected packages: six, numpy, h5py
Successfully installed h5py-2.8.0 numpy-1.14.5 six-1.11.0

# GPU使えるようにCUDA_PATHを指定してchainer, cupyをインストール
(conts-01) mahirun@xivo:~/work/conts-01$ CUDA_PATH=/usr/local/cuda pip install chainer cupy --no-cache-dir
Collecting chainer
  Downloading https://files.pythonhosted.org/packages/c5/c4/bee7969ca2877567a815ee5879222c04c39c7d7d956cf1d9a2cd94941104/chainer-4.3.0.tar.gz (402kB)
    100% |████████████████████████████████| 409kB 16.6MB/s 
Collecting cupy
  Downloading https://files.pythonhosted.org/packages/7c/6e/d8713723cce104b2c5328d49431febb9082bb8d2dee4da23ba3a81e811e2/cupy-4.3.0.tar.gz (2.0MB)
    100% |████████████████████████████████| 2.0MB 6.1MB/s 
Collecting filelock (from chainer)
  Downloading https://files.pythonhosted.org/packages/2d/ba/db7e0717368958827fa97af0b8acafd983ac3a6ecd679f60f3ccd6e5b16e/filelock-3.0.4.tar.gz
Requirement already satisfied: numpy>=1.9.0 in ./lib/python3.5/site-packages (from chainer) (1.14.5)
Collecting protobuf>=3.0.0 (from chainer)
  Downloading https://files.pythonhosted.org/packages/11/c4/8a35f5af5f26040ae7f3d521875e43429d2955d598fa3f2d0b6b88133bb1/protobuf-3.6.0-cp35-cp35m-manylinux1_x86_64.whl (7.1MB)
    100% |████████████████████████████████| 7.1MB 21.1MB/s 
Requirement already satisfied: six>=1.9.0 in ./lib/python3.5/site-packages (from chainer) (1.11.0)
Collecting fastrlock>=0.3 (from cupy)
  Downloading https://files.pythonhosted.org/packages/b0/44/1ab03348900e2e281b3b1e28b2bbdf44cd6e697c46b8aa78459f1b634a1b/fastrlock-0.3-cp35-cp35m-manylinux1_x86_64.whl (76kB)
    100% |████████████████████████████████| 81kB 8.0MB/s 
Requirement already satisfied: setuptools in ./lib/python3.5/site-packages (from protobuf>=3.0.0->chainer) (40.0.0)
Installing collected packages: filelock, protobuf, chainer, fastrlock, cupy
  Running setup.py install for filelock ... done
  Running setup.py install for chainer ... done
  Running setup.py install for cupy ... done
Successfully installed chainer-4.3.0 cupy-4.3.0 fastrlock-0.3 filelock-3.0.4 protobuf-3.6.0

importにも成功したし、GPU番号も取れてる?っぽいのでOKなのかな。
(conts-01) mahirun@xivo:~/work/conts-01$ python
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
>>> chainer.cuda.cupy.cuda.device.get_device_id()
0


今日はここまで。次回は機械学習やってみるよ!

コメント