Windows Machine Learning の使用を開始する

ご自身のアプリで Windows Machine Learning を使用するさまざまな方法があります。 中核として必要なのは、いくつかの簡単な手順だけです。

  1. トレーニング済みの Open Neural Network Exchange (ONNX) モデルを取得するか、別の ML フレームワークでトレーニングされたモデルを ONNXMLTools を使用して ONNX に変換します。

  2. ONNX モデル ファイルをアプリケーションに追加します。または他の何らかの方法でターゲット デバイス上で使用できるようにします。

  3. モデルをアプリケーション コードに統合し、アプリケーションをビルドして展開します。

Training environment, add model reference, application, Windows ML

インボックスと NuGet WinML ソリューションの比較

次の表は、Windows ML のインボックスおよび NuGet パッケージの可用性、配布、言語サポート、サービス、および上位互換性の側面を示しています。

プロパティ インボックス NuGet
可用性 Windows 10 バージョン 1809 以降 Windows 8.1 以上
Distribution Windows SDK に組み込み アプリケーションの一部としてパッケージ化して配布
サービス Microsoft 主導 (お客様は自動的にメリットを享受) 開発者主導
上位互換性 新機能により自動的にロール フォワード 開発者がパッケージを手動で更新する必要がある

アプリケーションがインボックス ソリューションを使用して実行されている場合、Windows ML ランタイム (ONNX モデル推論エンジンを含む) は Windows 10 デバイス (またはサーバー展開を対象とする場合は Windows Server 2019) 上のトレーニング済みモデルを評価します。 Windows ML がハードウェア アブストラクションを処理するため、開発者は CPU や GPU、さらに将来は AI アクセラレータなどを含む広い範囲のシリコンを対象にすることができます。 Windows ML ハードウェア アクセラレータは DirectML 上に構築されます。これは ML 推論を実行するための高パフォーマンスで低レベルの API で、DirectX ファミリの一部です。

windows ml layers

windows ml nuget package

NuGet パッケージでは、次の図に示すように、これらのレイヤーはバイナリとして現れます。 Windows ML は、Microsoft.ai.machinelearning.dll に組み込まれています。 これには埋め込みの ONNX ランタイムが含まれていません。代わりに、ONNX ランタイムが onnxruntime.dll ファイルに組み込まれています。 WindowsAI NuGet パッケージに含まれるバージョンには、DirectML EP が埋め込まれています。 最後のバイナリである DirectML.dll は、DirectML としての実際のプラットフォーム コードであり、Windows に組み込まれている Direct 3D およびコンピューティングのドライバーの上に構築されています。 これら 3 つのバイナリはすべて NuGet リリースに含まれており、アプリケーションと共に配布することができます。

また、onnxruntime.dll に直接アクセスすると、クロスプラットフォームのシナリオを対象にすることができ、すべての Windows デバイスでスケーリングされるハードウェアに依存しないアクセラレータを一律に利用できます。

Microsoft の他の機械学習ソリューション

Microsoft では、お客様のニーズに応じてさまざまな機械学習ソリューションを提供しています。 ソリューションはクラウド内で運用するものもあれば、オンプレミスやローカル デバイスで運用するものもあります。 詳細については、「Microsoft の機械学習製品とは」を参照してください。

詳細情報

Windows ML NuGet パッケージを使用する場合は、「チュートリアル:既存の WinML アプリを NuGet パッケージに移植する」を参照してください。

Windows ML の最新の機能と修正プログラムについては、「リリース ノート」を参照してください。

Note

Windows ML に関するヘルプについては、次のリソースを参照してください。

  • Windows ML に関する技術的な質問をしたり、質問に回答したりするには、Stack Overflowwindows-machine-learning タグを使用してください。
  • バグを報告するには、GitHub で問題を提出してください。