JetsonTX2にPython3を追加してJupyter notebookでChainer

前回*1は適当に環境構築したらPython2.xになってしまった。今回はTX2にPython3.xを入れてJupyter notebookから使う。もちろんPython3からもChainer、CuPyを使えるようにする。

Python3.x追加

いつの間にかpython3がインストール済みだったので足りないパッケージだけ追加する。

$ sudo apt-get install python3-dev
$ sudo apt-get install python3-venv

condaのgithubにpull requestのコメントでjetsoncondaってのがあったんだけど、condaはインストールできなかった。さらにインストールされたpyvenvを実行しようとしてもエラーでダメだった。
なので、condaはあきらめてPythonのvenvモジュール?で構築する。

venv環境の作成

$ python3 --version
Python 3.5.2
$ python3 -m venv py352env
$ source py352env/bin/activate
(py352env) $ python --version
Python 3.5.2
(py352env) $ pip install -U pip
(py352env) $ pip list --format=columns
Package       Version
------------- -------
pip           9.0.1
pkg-resources 0.0.0
setuptools    20.7.0

おk。パッケージが何もない。Anacondaは最初からいろいろ入ってるけどそのあたりは違うみたい。

venv環境にパッケージを追加

前回と同様に追加する。venv環境なので「--user」とか「sudo -H」とかはいらない。

(py352env) $ pip install matplotlib
(py352env) $ pip install chainer cupy
(py352env) $ pip install jupyter

インストール後のパッケージ一覧。numpyも依存パッケージで入ったみたい。

(py352env) $ pip list --format=columns
Package            Version
------------------ -------
bleach             2.1.2
chainer            3.3.0
cupy               2.3.0
cycler             0.10.0
decorator          4.2.1
entrypoints        0.2.3
fastrlock          0.3
filelock           3.0.4
html5lib           1.0.1
ipykernel          4.8.1
ipython            6.2.1
ipython-genutils   0.2.0
ipywidgets         7.1.1
jedi               0.11.1
Jinja2             2.10
jsonschema         2.6.0
jupyter            1.0.0
jupyter-client     5.2.2
jupyter-console    5.2.0
jupyter-core       4.4.0
MarkupSafe         1.0
matplotlib         2.1.2
mistune            0.8.3
nbconvert          5.3.1
nbformat           4.4.0
notebook           5.4.0
numpy              1.14.0
pandocfilters      1.4.2
parso              0.1.1
pexpect            4.3.1
pickleshare        0.7.4
pip                9.0.1
pkg-resources      0.0.0
prompt-toolkit     1.0.15
protobuf           3.5.1
ptyprocess         0.5.2
Pygments           2.2.0
pyparsing          2.2.0
python-dateutil    2.6.1
pytz               2018.3
pyzmq              16.0.4
qtconsole          4.3.1
Send2Trash         1.4.2
setuptools         20.7.0
simplegeneric      0.8.1
six                1.11.0
terminado          0.8.1
testpath           0.3.1
tornado            4.5.3
traitlets          4.3.2
wcwidth            0.1.7
webencodings       0.5.1
widgetsnbextension 3.1.3

以上

前回jupyterを入れた環境がそのまま使えるようで「--generate-config」とかやらずに単に「jupyter notebook」するだけで起動できた。
「ipython kernelspec」しなくてもPython3が選べた。

import chainer
print(chainer.cuda.available)
print(chainer.cuda.cudnn_enabled)

True
True

cuDNNとかもCuPyインストール時に自動で見つけてくれるらしくpip installだけで大丈夫だった。
CuPyのインストールはこちらを参照*2