Jetson Nano (Jetpack4.6) にJupyter Notebook や基本ライブラリをインストールしてPython(3.6.9) を使ったベーシックな機械学習環境を構築してみます。
主要なライブラリは以下のとおり
Numpy
Pandas
Scikit-Learn
Jupyter Notebook
データ・セットの内容を確認したり、結果を可視化
Seaborn(可視化ライブラリ、matplotlib単体より簡単できれい)
Bokeh(可視化ライブラリ、Webブラウザ用のグラフを表示する)
これらをネイティブとDockerコンテナの2つに入れてみます。
ネイティブ
Jetpack4.6 のOSイメージには以下のバージョンのライブラリがデフォルトで実装されています。
Numpy 1.13.3
Pandas 0.22.0
matplotlib 2.1.1
が、最新のSeaborn を使う場合インストールできません。Seaborn を使えるようにするにはバージョンを合わせる必要があります。
Python(3.6.9)の場合
Numpy 1.18.5
Pandas 1.0.4
matplotlib 3.2.1
seaborn 0.10.1
まず、pip3をインストール・アップグレード
Scikit-Learnをインストール
Jupyter Notebook をインストール
cythonを入れておきます。
Numpyをアップグレード
Pandasをアップグレード
Matplotlibをアップグレード
Seaborn をインストール
Bokeh をインストール
ブラウザーを起動しておいて、Jupyter Notebook を起動
$jupyter notebook
コンテナ
Docker イメージはNVIDIA 提供のnvcr.io/nvidia/l4t-ml:r32.6.1-py3を使います。
jupyterのファイルやいろいろなデータセットなどをホストと共有するフォルダーを作っておきます。
ユーザー名は各自で変更
my_ml という名前でコンテナを作成
sudo docker create -it --name my_ml --gpus all --network host -v /home/jetson/jupyternb:/work nvcr.io/nvidia/l4t-ml:r32.6.1-py3
コンテナ起動
アップデート、アップグレード、ライブラリインストール
seabornインストール
bokeh インストール
scikit-learnインストール
Jupyter Notebook インストール
Jupyter起動
「No web browser found: could not locate runnable browser.」と表示されたら
ホスト側でブラウザーを起動して以下にアクセス
localhost:8888
パスワードを聞いてきた場合 : nvidia
機械学習の入門などでよく使われるirisデータセットの散布図を描いてみました。
上がSearborn、下がMatpoltlib
Bokeh を使った散布図
irisのデータはPandas を使って外部から読み込んでいます(iris.csvは探せばネット上ですぐ見つかります)。
フロッピーのアイコンでグラフを保存できます。
Appendix
機械学習を前提にしたPython 入門
(Colab のjupyterを使うようになっていますがローカルのJupyter でもいけます)
入門でぼんやり分かった気になったことをより突っ込んで教えてくれます
現場に近いとこではこうやってるみたいです
Appendix2
より網羅的なPython 入門
Appendix3
NVIDIA のl4t-mlのr35.3.1以降のイメージ
Leave a Reply