Windows ML を使った、TensorFlow + DirectML: ビデオからのリアルタイム物体検出
このチュートリアルでは、UWP アプリケーションでリアルタイムの物体検出モデルをローカルにトレーニングして評価する方法について説明します。 このモデルでは、DirectML API を介してマシン上でローカルに TensorFlow でトレーニングを行います。これにより、すべての Windows デバイスで GPU アクセラレーションによるトレーニングができます。 トレーニング済みのモデルは UWP アプリに統合され、ローカルに Windows ML API を使用して、Web カメラを使いフレーム内の物体をリアルタイムで検出します。
まず、お使いのマシンで、TensorFlow を有効にします。
TensorFlow を使用したモデルのトレーニング方法について参照したい場合は、モデルのトレーニングに進むことができます。
TensorFlow モデルがあり、WinML API での使用に適した ONNX 形式に変換する方法について知りたい場合は、モデルの変換に関するページを参照してください。
モデルがあり、ゼロから WinML アプリを作成する方法を知りたい場合は、モデルのデプロイに関するページに移動します。
DirectML を使った TensorFlow の GPU アクセラレーションを有効化する
お使いのマシンで TensorFlow を有効にするには、次の手順に従います。
Windows のバージョンを確認する
ネイティブ Windows 上の DirectML を使った TensorFlow パッケージは、Windows 10 バージョン 1709 (ビルド 16299) 以降のバージョンの Windows で動作します。 ビルド バージョン番号を確認するには、実行コマンド (Windows logo key + R
) を使用して winver
を実行します。
GPU ドライバーの更新プログラムを確認する
最新の GPU ドライバーがインストールされていることを確認します。 設定アプリの [Windows Update] セクションで [更新プログラムのチェック] を選択します。
DirectML プレビューを使った TensorFlow をセットアップする
TensorFlow を使用するには、Windows 内に仮想 Python 環境をセットアップすることをお勧めします。 仮想 Python 環境のセットアップに使用できるツールは多数あります。この手順では、Anaconda の miniconda を使用します。 このセットアップの残りの部分では、miniconda 環境を使用するものとします。
Python 環境をセットアップする
Note
以下のコマンドでは、Python 3.6 を使用します。 ただし、この tensorflow-directml
パッケージは Python 3.5、3.6、または 3.7 環境で動作します。
マシンに Miniconda Windows インストーラーをダウンロードしてインストールします。 必要であれば、Anaconda のサイトに セットアップに関する追加のガイダンス があります。 Miniconda がインストールされたら、Python を使用して directml という名前の環境を作成し、次のコマンドでアクティブ化します。
conda create --name directml python=3.6
conda activate directml
DirectML を使った TensorFlow パッケージをインストールする
Note
tensorflow-directml
パッケージの場合、TensorFlow 1.15 のみがサポートされています。
次のコマンドを実行して、DirectML を使った TensorFlow パッケージを pip でインストールします。
pip install tensorflow-directml
パッケージのインストールを確認する
tensorflow-directml
パッケージをインストールしたら、2 つのテンソルを追加することで、正常に実行されることを確認できます。 以下の行を対話型の Python セッションにコピーします。
import tensorflow.compat.v1 as tf
tf.enable_eager_execution(tf.ConfigProto(log_device_placement=True))
print(tf.add([1.0, 2.0], [3.0, 4.0]))
DML デバイスで add 演算子を使った場合、次のような出力が表示されます。
次のステップ
これで、前提条件が整えられたので、WinML モデルの作成に進むことができます。 次のパートでは、TensorFlow を使用して、リアルタイムの物体検出モデルを作成します。
重要
TensorFlow、TensorFlow ロゴ、関連するマークは Google Inc. の商標です。