Windows ML は Windows アプリ SDK の一部として提供され、 フレームワーク依存 (推奨) と 自己完結型の 2 つの展開モードをサポートしています。 アプリのサイズ、更新、依存関係の要件に基づいて選択します。
Windows ML の詳細については、「 Windows ML とは」を参照してください。
簡単スタート
プロジェクトに Windows ML をインストールする方法の短いバージョンを次に示します。
フレームワークに依存する (推奨) 場合は、次をインストールします。
- Microsoft.WindowsAppSDK.ML
- Microsoft.WindowsAppSDK.Runtime
- 次に、ランタイム をデプロイする方法については、フレームワークに依存するアプリ の展開に関する説明を参照してください
自己完結型の場合 (アプリ のサイズを最大 41 MB 増やす):
- ビルド 18362 以降Windows 10対象のアプリの場合は、Microsoft.Windows をインストールします。Ai。MachineLearning
- または、ビルド 17763 以降Windows 10対象のアプリの場合は、Microsoftをインストールします。WindowsAppSDK.ML
-
Microsoft.WindowsAppSDK.RuntimeまたはメインMicrosoft.WindowsAppSDKパッケージをインストールしないでください
各オプションの詳細については、以下のセクションを参照してください。
Requirements
- .NET 8 以上
- ターゲット フレームワーク モニカー
net8.0-windows10.0.17763.0以上を使用する場合は Microsoft.WindowsAppSDK.ML、またはターゲット フレームワーク モニカーnet8.0-windows10.0.18362.0以上を使用する場合は Microsoft.Windows.AI.MachineLearning を利用してください。
Note
.NET 6 では、 Microsoft.Windows.AI.MachineLearning 名前空間を使用して実行プロバイダーをインストールできますが、 Microsoft.ML.OnnxRuntime API は使用できません。 完全な Windows ML API サーフェスにアクセスするには、.NET 8 にアップグレードします。
Windows ML の内容
Windows ML は、次のバイナリで構成されます。
| Binary | 説明 | おおよそのサイズ |
|---|---|---|
Microsoft.Windows.AI.MachineLearning.dll |
Windows ML API (ExecutionProviderCatalogなど) |
最大 1 MB |
onnxruntime.dll |
ONNX ランタイム エンジン | 約 20 MB |
DirectML.dll |
DirectML — 含まれている GPU 実行プロバイダー | 約 20 MB |
| 合計 | 約 41 MB |
ベンダー実行プロバイダー (QNN、VitisAI、OpenVINO、NvTensorRtRtx、MIGraphX) は、Windows ML 自体の一部ではありません。 これらは個別に取得されます。実行時に ExecutionProviderCatalog 経由で取得するか、自分でバンドルします。
AI モデルの高速化に関する説明を参照してください。
デプロイ モードの選択
Windows ML を使用する場合は、 フレームワーク依存 (推奨) と 自己完結型の 2 つの展開モードから選択できます。
| フレームワークに依存する (推奨) | 独立型 | |
|---|---|---|
| サポートされている言語 | C#、C++/WinRT、Python | C#、C++/WinRT、C/C++ |
| サポートされているパッケージの種類 | パッケージ化されていないものとパッケージ化されたもの (MSIX) | パッケージ化されていないものとパッケージ化されたもの (MSIX) |
| エンタープライズ展開 | サポートされている | サポートされている |
| アプリのサイズ | 小さい — Windows ML バイナリはシステム全体で共有されます | より大きい — Windows ML バイナリはアプリにバンドルされています (最大 41 MB) |
| Windows ML の更新プログラム | 自動 — ユーザーは Windows アプリ SDK サービスを使用して更新プログラムを取得します | 手動 - 選択すると新しいバージョンが出荷されます |
| インストールされているランタイムへの依存関係 | はい — Windows アプリ SDK ランタイムが存在する必要があります | いいえ - すべての依存関係がアプリ パッケージに含まれています |
| NuGet パッケージ (C#/C++) | Microsoft.WindowsAppSDK.ML + Microsoft.WindowsAppSDK.Runtime |
Microsoft.Windows.AI.MachineLearning または Microsoft.WindowsAppSDK.ML |
| 最適な用途 | 最小限のダウンロード/インストール サイズを必要とするアプリ。Microsoft Store を通じて出荷されるアプリ | 厳密なバージョン管理 |
フレームワークに依存するインストール (推奨)
フレームワークに依存するアプリは、ユーザーのコンピューターにインストールされている Windows アプリ SDK ランタイムに依存します。 詳細については、 フレームワークに依存するアプリのデプロイ アーキテクチャに関 するページを参照してください。
プロジェクトで、次の NuGet パッケージをインストールまたは更新します。
- Microsoft.WindowsAppSDK.ML(これにより Windows ML API が追加されます)
- Microsoft.WindowsAppSDK.Runtime(フレームワーク依存モードが有効になります)
Note
または、メイン の Microsoft.WindowsAppSDK NuGet パッケージをバージョン 1.8.1 以降にインストール/更新します。これには、Windows ML とその他のすべての Windows アプリ SDK API が含まれ、既定ではフレームワークに依存します。
また、 .csproj ファイルで、フレームワークに依存する展開を使用するように、 WindowsAppSDKSelfContained が指定されていない (存在しない) か、 falseであることを確認します。
最後に、 フレームワークに依存するアプリの展開アーキテクチャ を参照して、アプリと共にユーザーのデバイスに Windows アプリ SDK ランタイムをデプロイする方法について説明します。
単独インストール
自己完結型アプリは、すべての Windows ML バイナリをアプリに直接バンドルします。 外部ランタイムの依存関係は必要ありませんが、アプリは大きくなります。 これは、メインの Microsoft.Windows.AI.MachineLearning または Microsoft.WindowsAppSDK.ML パッケージを参照せずに Microsoft.WindowsAppSDK または Microsoft.WindowsAppSDK.Runtime を参照する場合の既定値です。 詳細については 、自己完結型アプリの展開ガイド を参照してください。
プロジェクトで、次の NuGet パッケージをインストールまたは更新します。
- ビルド 18362 以降Windows 10対象のアプリの場合:
- Microsoft.Windows をインストールします。Ai。MachineLearning(Windows ML API とバイナリが追加され、既定では自己完結型になります)
- または、ビルド 17763 以降Windows 10対象のアプリの場合:
- Microsoft.WindowsAppSDK.ML をインストールします(Windows ML API とバイナリが追加され、デフォルトで自己完結型になり、17763 に対する RegFree WinRT サポートが追加されます)
- Microsoft.WindowsAppSDK.Runtime をインストールしないでください (これによりフレームワーク依存モードが有効になります...現在インストールされている場合は削除してください)
- メインの Microsoft.WindowsAppSDK NuGet パッケージをインストールしないでください (これにより、フレームワーク依存モードが有効になります...現在インストールされている場合は削除してください)
- ランタイムまたはメイン パッケージをインストールしない限り、 Microsoft.WindowsAppSDK.AI などの他の Windows アプリ SDK コンポーネント パッケージを自由にインストールできます
Note
メイン の Microsoft.WindowsAppSDK NuGet パッケージを使用する必要がある場合は、バージョン 1.8.1 以降 (Windows ML とその他のすべての Windows アプリ SDK API を含む) に更新し、 .csprojで WindowsAppSDKSelfContained を true に設定して自己完結型モードを有効にします。