COLUMN
【Vol.6】はじめよう!エッジAI~NVIDIA® Transfer Learning Toolkit~環境構築編(その2)
★そもそも「エッジAIってなに?」という方にはこちらのコラムをおすすめします。
Vol.1は以下です。
※【Vol.1】はじめよう!エッジAI~エッジである必要性と最適な環境構築~
Vol.2は以下です。
※【Vol.2】はじめよう!エッジAI~NVIDIA® 開発者キットのインストール~
Vol3は以下です。
※【Vol.3】はじめよう!エッジAI~JetsonでNVIDIA®DeepStream SDK~
Vo4は以下です。
※【Vol.4】はじめよう!エッジAI~NVIDIA® Transfer Learning Toolkit~
Vol5は以下です。
※【Vol.5】はじめよう!エッジAI~NVIDIA® Transfer Learning Toolkit~ 環境構築編(その1)
今回は、前回に引き続き、NVIDIA® Transfer Learning Toolkit(以下、TLT)の環境構築をおこなってまいります。
TLTを始めるため、NVIDIA GPU Cloud accont and API Keyの取得、docker-ceのインストール、Nvidia docker等のインストール手順をご紹介します。
前回(Vol5)ではGPUドライバをインストールしました。
再起動後、XWindowが起動しない場合は、以下のコマンドでxorg.confを作って再起動してください。
$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.back
$ sudo nvidia-xconfig -a
$ sudo reboot
念のため、古いバージョンのDockerのアンインストールをします。
$ sudo apt-get remove docker docker-engine docker.io containerd runc
リポジトリを構成します。
$ sudo apt-get update
$ sudo apt-get install ¥
apt-transport-https ¥
ca-certificates ¥
curl ¥
gnupg-agent ¥
software-properties-commo ¥
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –
$ sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
$ sudo add-apt-repository ¥
“deb [arch=amd64] https://download.docker.com/linux/ubuntu ¥
$(lsb_release -cs) ¥
stable”
Dockerをインストールします。
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
Docer-ceのバージョン一覧を確認します。
$ apt-cache madison docker-ce
docker-ce | 5:19.03.13~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
docker-ce | 5:19.03.12~3-0~ubuntu-bionic | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
~~~
~~~
docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages
今回は、5:19.03.13~3-0~ubuntu-bionicを対象とします。
$ sudo apt-get install docker-ce=5:19.03.13~3-0~ubuntu-bionic docker-ce-cli=5:19.03.13~3-0~ubuntu-bionic containerd.io
hello worldでDockerのインストールを確認します。
$ sudo docker run hello-world
NVIDIA ContainerToolkitのセットアップ
Dockerのサービスを有効にします。
$ sudo systemctl start docker ¥
&& sudo systemctl enable docker
NVIDIA ContainerToolkitのstableリポジトリとGPGキーを設定します。
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) ¥
&& curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add – ¥&& curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
リポジトリ更新後、パッケージ(および依存関係)をインストールします。
$ sudo apt-get update
$ sudo apt-get install -y nvidia-docker2
Dockerデーモンを再起動して、CUDAコンテナーを実行することにより、動作セットアップをテストします。nvidia-smiコマンド実行時と同等の表示がされれば成功です。
$ sudo systemctl restart docker
$ sudo docker run ‐‐rm ‐‐gpus all nvidia/cuda:11.0-base nvidia-smi
$ Unable to find image ‘nvidia/cuda:11.0-base’ locally
11.0-base: Pulling from nvidia/cuda
~~~
~~~
NVIDIA GPU Cloud accont and API Keyの取得
「https://www.nvidia.com/ja-jp/gpu-cloud/containers/」のサイトから「コンテナーの取得」ボタンをクリックします。
NGCにログインします。
NGCのアカウントが無い場合もNGCに登録するEmailアドレスを入力します。
NGCアカウントを取得済みの場合は、passwordを入力してログインします。
アカウントを生成する場合は、Create accountからアカウントを生成します。
その他、FacebookやGoogleのアカウントでも利用可能なようです。
ログイン後、画面右上のユーザ名の右側をクリックして、メニューよりSetupを選択します。その後、Get API Keyをクリックします。
API Key画面に遷移するので、Generate API Keyをクリックします。
API Keyが生成されます。後ほど使用するためPasswordをテキストファイルにコピーしておきます。
取得したAPI Keyを利用してログインします。
Usernameは、「$oauhtoken」を入力します。Login Succeededが表示されれば成功です。
$ sudo docker login nvcr.io
Username: $oauthtoken
Password:
WARNING! Your password will be stored unencrypted in /home/dnndev/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
$
Transfer Learning Toolkit(TLT)のセットアップ
Transfer Learning Toolkitのイメージの取得を行います。
$ sudo docker pull nvcr.io/nvidia/tlt-streamanalytics:v2.0_py3
ローカルフォルダとDockerのフォルダの共有を行い、起動します。
<user name>の部分は、各環境に合わせてください。
$ cd ~
$ mkdir tlt-experiments
$ sudo docker run ‐‐runtime=nvidia -it ¥
-v /home/<user name>/tlt-experiments:/workspace/tlt-experiments -p 8888:8888 ¥
nvcr.io/nvidia/tlt-streamanalytics:v2.0_py3 /bin/bash
取得したAPI Key を利用してNGCレジストリへログインします。
# ngc config set
jupyter notebookを立ち上げます。インストールしたホストマシンのウェブブラウザから、下記のWEBページへアクセスすると、jupyter notebookの利用が可能です。
# jupyter notebook ‐‐ip 0.0.0.0 ‐‐port 8888 ‐‐allow-root
[I 00:59:41.755 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[I 00:59:41.949 NotebookApp] Serving notebooks from local directory: /workspace
[I 00:59:41.949 NotebookApp] Jupyter Notebook 6.1.0 is running at:
[I 00:59:41.949 NotebookApp] http://a163a82462ad:8888/?token=dc2abe009566c9060cd18bfce7621c5d9b36de025fd86c76
[I 00:59:41.949 NotebookApp] or http://127.0.0.1:8888/?token=dc2abe009566c9060cd18bfce7621c5d9b36de025fd86c76
[I 00:59:41.949 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 00:59:41.953 NotebookApp] No web browser found: could not locate runnable browser.
[C 00:59:41.953 NotebookApp]
To access the notebook, open this file in a browser:
file:///root/.local/share/jupyter/runtime/nbserver-16-open.html
Or copy and paste one of these URLs:
http://a163a82462ad:8888/?token=xxxxxxx
or http://127.0.0.1:8888/?token= xxxxxxx
次回以降は、TLTのPre-trained Modelsを利用して動かして行きたいと考えています。
※本コラムに記載されている社名および製品名などの固有名詞は、各社の商標または登録商標です。
※各ツールのライセンスや購入に関しては、代理店・メーカにお問い合わせください。
※本コラムは、弊社が実際に開発をした中での経験より構成しております。本内容に準じて実施した結果については、本内容に準じて実施した結果に生じるいかなる影響、損害に関して、責任の無いものといたします。本コラムで紹介しておりますツールについては、合法性、正確性、道徳性、最新性、適切性、著作権の許諾や有無など、その内容については、何らの責任を負うものではありません。また、当社は通知することなく当サイトに掲載した情報の訂正、修正、追加、中断、削除等をいつでも行うことができるものとします。コンテンツのご利用により、万一、ご利用者様に何らかの不都合や損害が発生したとしても、当社は何らの責任を負うものではありません。
富士ソフトがおすすめ!!
エッジAI導入ソリューションはこちら>>
個別相談も承っております。下記よりお申し込みください。