TensorFlow サポート - DigitalMediaProfessionals/dv-sdk GitHub Wiki
DMP はAI プロセッサをTensorFlow の一つのバックエンドとして登録して実装しました。Python で書かれた既存のTensorFlow アプリケーションは、そのままZIA C3 モジュールで実行できます。C/C++ アプリケーションもリビルド後に実行できます。
注: 最新のTensorFlow リリースは1.15.0ベースです。TensorFlow のサポートはZIA C3 モジュールでのみになります。ZIA C2モジュールでTensorFlow をサポートする予定はありません。
インストール
TensorFlow リリースパッケージ (C ライブラリとPython パッケージの両方があります) はDMP APTリポジトリに置かれます。DMP APT リポジトリを設定する手順については、このページを参照してください。
以前にtensorflow ALPHAパッケージをインストールした場合は、まず次のコマンドを実行して以前のパッケージをアンインストールしてください。
$ sudo python3 -m pip uninstall tensorflow
次に、以下のコマンドを使ってDMP APT サーバーから最新のリリースをインストールしてください。
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install zia-libtensorflow zia-python3-tensorflow
これらのコマンドはファームウェアとドライバをバージョン7.21.20191223(以降)に更新してから、tensorflow パッケージをインストールします。
実行
TensorFlow のインストール後に、ネットワークの推論をお試しいただけます。
YOLOv3-tiny をすぐに試すには、DV SDK をこのページ を参考にして更新してください。 その後、下記のコマンドでアプリケーションを実行してください。
$ cd dv-sdk/application/YOLOv3TF
$ ./YOLOv3TF.py --image-dir ../bin/images_yolo/XPT/
このコマンドにより、bin/images_yolo/XPT
以下にあるすべての画像が処理され、推論結果がoutput
ディレクトリ内に作成されます。(すべての画像を処理するには時間がかかります。)
環境変数
以下の環境変数によりZIA C3 モジュール上でのTensorFlow による推論を高速化できます。環境変数の設定は電源オフするまで有効になります。
TF_DMPDV_CONST_WEIGHTS
重みが定数であると仮定するか否かを切り替えられます。重みが定数であると仮定すると、TensorFlow が高速化されます。デフォルト値は0
です。
-1
重みが定数でないと仮定し、環境変数を二度と確認しません。0
重みが定数でないと仮定し、実行ごとに環境変数を確認します。1
重みが定数であると仮定し、実行ごとに環境変数を確認します。2
重みが定数であると仮定し、環境変数を二度と確認しません。
例えば、以下のコマンドでデモアプリケーションを高速化できます。
$ export TF_DMPDV_CONST_WEIGHTS=1
$ ./YOLOv3TF.py --image-dir ../bin/images_yolo/XPT/
最新リリースにおける制限
- 学習はサポートされていません
- 次元数が4 までのテンソルがサポートされています。それ以上の次元のテンソルは動作しないことがあります
- 深層学習にて一般的に使われている層のみがテスト済みです。線形代数などの数学に関する関数は動作しないことがあります。その際には
with tf.device("/CPU:0"):
ブロック内で非サポートの層を定義することで、AI プロセッサの代わりにCPU でそれらの層を処理できます。