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 でそれらの層を処理できます。