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