LoginSignup
11
8

More than 3 years have passed since last update.

Jetson NanoでDockerを動かす(実践編)

Last updated at Posted at 2019-06-12

はじめに

この記事は「Jetson NanoでDockerを動かす(後編)」でJetson Nanoにデフォルトで含まれているdockerでGPUにアクセスできることを確認できたので実際に何か動かしてみる。ここではResNet50を使って画像を識別する。

準備

Dockerfile等はgithubに置いた。
https://github.com/yamamo-to/jetson_nano/tree/master/docker_example

使い方は下記の通り。

ターミナル
git clone https://github.com/yamamo-to/jetson_nano.git
cd jetson_nano/docker_example
./build.sh
./run.sh

build.shの実行でイメージを作成する。1時間程度掛かる。
またrun.shでコンテナを作成する。

サンプルの実行

コンテナが実行された後、必要なライブラリをインストールしてサンプルを実行する。

コンテナ内
pip3 install pillow
python3 scripts/resnet50_keras.py data/boss.jpg

結果

以下に実行結果を貼る。ResNet50がコンテナ内から正しく実行されていることが分かる1

docker_result.png

問題点


以下に記載されている問題点は「Jetson NanoでDockerを動かす(解決編)」で解決済み。

前の画像では分かりにくいが、CUDAが利用可能なデバイスが見つからないと表示されている。TensorFlowは動いたけれどもCUDAは使われていないのだろうか。

failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected

GPUの使用状況を確認すると確かにGPUは動作している。
GPU_log.png

考えられることの一つは/procを参照していないことだろうか。追って調査する予定だが、そろそろ環境を手間なく分けるためのDockerの導入が、Docker+GPUに関する環境構築そのものが面倒になってきた。

まとめ

Jetson NanoでDockerを立ち上げ、TensorFlowを使ってResNet50による画像識別を行った。GPUは使われていたようだが、CUDAデバイスが見つからないなど課題点が残る。


  1. Jetson NanoでDockerを動かす(解決編)」でも触れているが、これは正しく実行されていない。 

11
8
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8