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をインストール・アップグレード
1 2 3 |
sudo apt-get install python3-pip python3 -m pip install --upgrade pip |
Scikit-Learnをインストール
1 2 3 4 5 |
sudo apt-get install liblapack-dev libatlas-base-dev gfortran sudo pip3 install scipy sudo apt-get install python3-numpy python3-pandas python3-sklearn |
Jupyter Notebook をインストール
1 2 3 4 5 |
sudo apt install nodejs npm sudo apt-get install libffi-dev sudo pip3 install notebook |
cythonを入れておきます。
1 |
pip3 install cython |
Numpyをアップグレード
1 2 3 |
sudo apt-get remove python-numpy python3-numpy -y pip3 install numpy==1.18.5 |
Pandasをアップグレード
1 |
pip3 install -U pandas==1.0.4 |
Matplotlibをアップグレード
1 2 3 4 5 |
sudo apt-get remove python3-matplotlib sudo apt-get install libfreetype6-dev -y pip3 install matplotlib==3.2.1 |
Seaborn をインストール
1 2 3 4 5 6 7 |
sudo apt-get install liblapack-dev -y sudo apt install libjpeg-dev zlib1g-dev -y sudo apt install gfortran -y pip3 install seaborn==0.10.1 |
Bokeh をインストール
1 |
pip3 install bokeh |
ブラウザーを起動しておいて、Jupyter Notebook を起動
$jupyter notebook
コンテナ
Docker イメージはNVIDIA 提供のnvcr.io/nvidia/l4t-ml:r32.6.1-py3を使います。
1 |
sudo docker pull nvcr.io/nvidia/l4t-ml:r32.6.1-py3 |
jupyterのファイルやいろいろなデータセットなどをホストと共有するフォルダーを作っておきます。
ユーザー名は各自で変更
1 |
mkdir /home/jetson/work |
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
コンテナ起動
1 |
sudo docker start -i my_ml |
アップデート、アップグレード、ライブラリインストール
1 2 3 4 |
apt update apt upgrade -y apt install python3-pip |
seabornインストール
1 2 3 4 5 6 7 |
apt-get install python3-pandas -y apt-get install python3-tk -y apt-get install python3-matplotlib pip3 install seaborn |
bokeh インストール
1 |
pip3 install bokeh |
scikit-learnインストール
1 2 3 4 5 |
apt-get install liblapack-dev libatlas-base-dev gfortran -y pip3 install scipy apt-get install python3-numpy python3-sklearn -y |
Jupyter Notebook インストール
1 2 3 4 5 6 7 |
apt-get install nodejs apt install aptitude aptitude install npm apt-get install libffi-dev pip3 install jupyter jupyterlab |
Jupyter起動
1 2 3 |
cd /work jupyter notebook --ip=0.0.0.0 --allow-root |
「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以降のイメージ
1 2 3 |
sudo docker pull dustynv/l4t-ml:r35.3.1 sudo docker pull dustynv/l4t-ml:r35.4.1 sudo docker pull dustynv/l4t-ml:r36.2.0 |
Leave a Reply