Jetson Nanoでディープラーニング
Jetson Nano TIPSまとめのページが大きくなってきたので、ディープラーニング関連の項目を切り出してまとめました。
TensorFlowのセットアップ方法
公式の方法は以下です。
Jetson NanoへのTensorFlowセットアップ方法(公式)
ただし、少し煩雑なのと現時点(2019/05/12)でいくつか問題点があるため、問題点を回避しつつ自動でセットアップするスクリプトを作成しました。以下コマンドで(比較的)楽々セットアップできます。
$ git clone https://github.com/karaage0703/jetson-nano-tools
$ cd jetson-nano-tools
$ ./install-tensorflow.sh
追記:JetPack V4.4の場合は、最後のinstall-tensorflow.sh
の代わりに以下スクリプトを実行してください。
$ ./install-tensorflow-v44.sh
その他、TensorFlow関係のセットアップでハマりやすいことを記載しておきます。
pip3 install -U pip してしまうとその後「cannot import name ‘main’ 」というエラーが出る
pip3 install -U pip
を実行してはいけないようです。もし、誤って実行してしまった場合は、以下コマンドでリカバーできます。
$ sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
詳しくは、このサイトなど参照下さい。
公式の方法でTensorFlowをインストールできない
以下でバージョン固定してTensorFlowをインストールして下さい。
$ pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu==1.13.1+nv19.4 --user
詳細は、以下のリンク先を参照下さい。
Official TensorFlow for Jetson Nano !!!
404 Client Error:でインストールできない
pip3に--no-cache-dir
をつけた以下コマンドでTensorFlowをインストールできました。
$ pip3 install --no-cache-dir --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v42 tensorflow-gpu==1.13.1+nv19.4 --user
以下のコミュニティーサイトの情報を参考にしました。
Unable to install TensorFlow on Jetson Nano because of "404" on NVidia server!
tf.__version__
でエラーが発生する
JetPack v4.4で発生しました。Twitterで教えてもらいましたが、tf.version.VERSION
でバージョンが確認できるようです。何故…
やっぱりそうなんですね。
— nb.o (@Nextremer_nb_o) May 30, 2020
jetpack 4.4のtensorflow2.xの挙動がよくわかりません...
わかったのは、
tf .__ version__ => NG
tf.version.VERSION => OK
でした。https://t.co/6jwSRl3Yzl pic.twitter.com/e6DqcEp3hg
とりあえず使いたいソフトにtf.__version__
がある場合は、コメントアウトするなりしましょう。自分のソフトに関しては、tryで囲んでます。
Kerasのセットアップ方法
TensorFlowのラッパープログラムKerasの使い方です。元々は単独のプログラムだったのですが、途中からTensorFlowに取り込まれたため、TensorFlow内蔵のKerasと単体のKerasがあります。それぞれ説明します。
TensorFlow内蔵のKerasを使用する方法
Jetson Nanoで使う最新のTensorFlowにはKerasが内蔵されているので、TensorFlow内蔵のKerasを使うのがオススメです。import文を書き換えるだけで基本的にそのまま動きます。
具体的には、例えば以下のようなimport文であれば
from keras.preprocessing.image import array_to_img, img_to_array, load_img
from keras.models import model_from_json
以下のように変更します。
from tensorflow.keras.preprocessing.image import array_to_img, img_to_array, load_img
from tensorflow.keras.models import model_from_json
単体のKerasをインストールする方法
単体のKerasは以下のコマンドを実行してインストールできます(TensorFlowはインストール済みの前提です)。単体のKerasを前提にしたプログラムを動かすときは、Kerasを入れた方が手っ取り早いと思います。
$ sudo apt install libatlas-base-dev gfortran
$ pip3 install -U cython
$ pip3 install keras
officialのKeras拡張keras-contrib
をインストールする場合は、追加で以下も実行下さい。
$ pip3 install git+https://www.github.com/keras-team/keras-contrib.git
以下のページを参考にしました。
【Jetson_nano】インストールからTensorflow,Chainer,そしてKeras環境構築出来たよ♬
PyTorchのインストール方法
TensorFlowを入れた後に以下コマンドを実行しましょう。
$ wget https://nvidia.box.com/shared/static/veo87trfaawj5pfwuqvhl6mzc5b55fbj.whl -O torch-1.1.0a0+b457266-cp36-cp36m-linux_aarch64.whl
$ pip3 install numpy torch-1.1.0a0+b457266-cp36-cp36m-linux_aarch64.whl
公式情報ままです。最新のバージョンや動作確認に関しては、公式情報参照下さい。
Jetson Nanoでディープラーニングを使った応用例
StayleGANを動かす
以下記事参照下さい。
Jetson Nano上でStyleGANを使って無限に人物画像生成するデモを行う方法
Jetson Nanoでリアルタイムに物体検出する
以下記事参照下さい。
Jetson Nanoで骨格検出「tf-pose-estimation」
Jetson Nanoで「tf-pose-estimation」をセットアップする方法
Jetson Nanoとディープラーニングを使って身体を楽器にする「Skeleton Sequencer」を作ってみた
スタイル変換
[ディープラーニングで自撮り画像をアニメ画像に画風変換する方法]
(https://qiita.com/karaage0703/items/221f96436c32f6f405c7)
関連記事
Jetson Nano関係のTIPSまとめ
Jetson Nano関係の情報はこちらにまとめています