このガイドでは、Windows ML API を使用してモデルを Windows アプリに統合する方法について説明します。 または、Windows ML の自動コード ジェネレーターを使用する場合は、 mlgen を確認してください。
重要な API: Windows.AI.MachineLearning
次のような Windows ML の基本的な構成要素について説明します。
- モデル
- セッション
- デバイス
- バインド
これらを使用して、Windows ML を使用してモデルの読み込み、バインド、評価を行います。
また、 GitHub のサンプル アプリ を見て、エンド ツー エンドの Windows ML コード例を確認することをお勧めします。
次のビデオでは、これらの API が短いデモで動作している様子を示しています。
C++ での WinML API の使用
WinML API は C++/CX と C++/WinRT の両方で利用できますが、C++/WinRT バージョンを使用することをお勧めします。C++/WinRT バージョンを使用すると、より自然な C++ コーディングが可能になり、今後ほとんどの開発作業に重点が置かれているためです。 特定の状況に関連する以下の手順に従って、C++/WinRT API を使用できます。
- Windows 1803 以前を対象としている場合は、「 チュートリアル: 既存の WinML アプリを NuGet パッケージに移植する」を参照してください。
- 新しい C++ アプリケーションを作成する場合は、「 チュートリアル: Windows Machine Learning Desktop アプリケーション (C++) を作成する」を 参照し、手順に従って モデルを読み込みます。
- 既存の C++ アプリケーション (C++/WinRT 用にまだ設定されていない) がある場合は、次の手順に従って C++/WinRT 用にアプリケーションを設定します。
- Visual Studio 2019 の最新バージョン (任意のエディション) がインストールされていることを確認します。
- Windows 10 バージョン 1803 以降の SDK があることを確認します。
- Visual Studio Marketplace から C++/WinRT Visual Studio 拡張機能 (VSIX) をダウンロードしてインストールします。
<CppWinRTEnabled>true</CppWinRTEnabled>
プロパティをプロジェクトの.vcxproj ファイルに追加します。<Project ...> <PropertyGroup Label="Globals"> <CppWinRTEnabled>true</CppWinRTEnabled> ...
- C++/WinRT には C++17 標準の機能が必要であるため、プロジェクトのプロパティで 、C/C++ > 言語 > C++ 言語標準 > ISO C++17 Standard (/std:c++17) を設定します。
- 準拠モードを設定する: プロジェクトのプロパティでははい (/permissive-) です。
- 注意すべきもう 1 つのプロジェクト プロパティは、 C/C++ > 一般的な > 警告をエラーとして扱うことです。 これを [はい] (/WX) または [いいえ] (/WX-) に設定します。 cppwinrt.exe ツールによって生成されたソース ファイルでは、実装を追加するまで警告が生成されることがあります。
- VSIX では、C++/WinRT 投影型の Visual Studio ネイティブ デバッグ視覚化 (natvis) も提供され、C# デバッグと同様のエクスペリエンスが提供されます。 Natvis はデバッグ ビルドに対して自動です。 シンボルWINRT_NATVISを定義することで、リリース ビルドをオプトインできます。
- これで、プロジェクトが C++/WinRT 用にセットアップされます。 詳細については、 C++/WinRT を参照してください。
関連トピック
注
Windows ML のヘルプについては、次のリソースを使用してください。
- Windows ML に関する技術的な質問や回答を行うには、Stack Overflowの windows-machine-learning タグを使用してください。
- バグを報告するには、GitHubで問題を報告してください。