このページには、Windows ML に関するコミュニティからの最も一般的な質問に対する回答が含まれています。
自分が持っている ONNX モデルが Windows ML で実行されるかどうかを確認するにはどうすればよいですか?
モデルが Windows ML で実行されるかどうかを確認する最も簡単な方法は、WinML モデル ランナー ツールを使用することです。 または、特定の Windows リリース サポートされているすべての ONNX バージョンの詳細については、ONNX のバージョンと Windows ビルドの を確認することもできます。
別の形式のモデルを ONNX に変換するにはどうすればよいですか?
WinMLTools を使用して、Apple CoreML や scikit-learn などのさまざまな形式のモデルを ONNX に変換できます。
モデルを "サポートされていない演算子" と言う ONNX にエクスポートまたは変換しようとすると、エラーが発生します。 どうしたらいいでしょう。
ネイティブ トレーニング フレームワークの一部の演算子は、現在 ONNX バージョンではサポートされていない可能性があります。 まず、ターゲットの Windows ビルド でサポートされているONNX バージョンを確認し、モデルをサポートされている最大バージョンに変換することをお勧めします。 新しいバージョンの ONNX には、以前のバージョンと比較した大規模な演算子セットのサポートが含まれています。
問題が引き続き発生する場合は、データ サイエンス チームと協力して、サポートされていないオペレーターを回避することをお勧めします。 推奨されるアプローチの 1 つは、ソース フレームワークでモデルのアーキテクチャを変更し、モデルをターゲットの ONNX バージョンに変換またはエクスポートすることです。 モデルを再トレーニングする必要はありません。アーキテクチャの変換を試みることができ、成功した場合は、モデルの完全な再トレーニングに進むことができます。
モデルを読み込めないのはなぜですか?
モデルの読み込みに問題が発生する理由はいくつかありますが、UWP で開発するときに最も一般的なものの 1 つは、ファイル アクセス制限によるものです。 既定では、UWP アプリケーションはファイル システムの特定の部分にのみアクセスでき、他の場所にアクセスするためにユーザーのアクセス許可または追加の機能が必要です。 詳細については、「ファイル アクセス許可の」を参照してください。
どのバージョンの WinMLTools を使用する必要がありますか?
winmltools パッケージの最新バージョンをダウンロードしてインストールすることをお勧めします。 これにより、最新バージョンの Windows を対象とする ONNX モデルを作成できるようになります。
winmltools の代わりに onnxmltools を使用できますか?
はい。ただし、Windows ML でサポートされている最小 ONNX バージョンである ONNX v1.2.2 をターゲットにするには、onnxmltools の正しいバージョンをインストールする必要があります。 インストールするバージョンがわからない場合は、代わりに最新バージョンの winmltools をインストールすることをお勧めします。 これにより、Windows でサポートされている ONNX バージョンをターゲットにすることができます。
コードの自動生成 (mlgen) を取得するには、どのバージョンの Visual Studio を使用する必要がありますか?
mlgen をサポートする Visual Studio の最小推奨バージョンは 15.8.7 です。 Windows 10 バージョン 1903 以降では、mlgen は SDK に含まれていないため、拡張機能をダウンロードしてインストールする必要があります。 Visual Studio 2017 用と Visual Studio 2019用があります。
mlgen を実行しようとしたときにエラー メッセージが表示され、コードが生成されません。 何が起こる可能性がありますか?
mlgen を実行しようとしたときに最も一般的な 2 つのエラーは次のとおりです。
- 必須属性 'consumed_inputs' がありません: このエラー メッセージが表示された場合は、17763 より前のバージョンの Windows 10 SDK で ONNX v1.2 モデルを実行しようとしている可能性が最も高くなります。SDK のバージョンを確認し、バージョン 17763 以降に更新することをお勧めします。
- 型エラー: ノード (ZipMap) の出力引数 (損失) の型 (map(string,tensor(float))) が想定される型と一致しません。: このエラーが発生した場合、ほとんどの場合、ONNX モデルはビルド 17763 以降の WinML で受け入れられたバージョンよりも古いバージョンです。 コンバーター パッケージを利用可能な最新バージョンに更新し、モデルを 1.2 バージョンの ONNX に再変換することをお勧めします。
WinML は既定で何で実行されますか?
LearningModelDeviceKindで実行するデバイスを指定しない場合、または LearningModelDeviceKind.Default 使用する場合、システムはモデルを評価するデバイスを決定します。 これは通常、CPU です。 GPU で WinML を実行するには、LearningModelDeviceを作成するときに、次のいずれかの値を指定します。
- LearningModelDeviceKind.DirectX
- LearningModelDeviceKind.DirectXHighPerformance
- LearningModelDeviceKind.DirectXMinPower
手記
Windows ML のヘルプについては、次のリソースを使用してください。
- Windows ML に関する技術的な質問や回答を行うには、Stack Overflowの windows-machine-learning タグを使用してください。
- バグを報告するには、GitHubで問題を報告してください。