編輯

共用方式為


常見問題(常見問題)

此頁面包含社群中有關 Windows ML 最熱門問題的解答。

如何知道我是否將使用 Windows ML 執行的 ONNX 模型?

使用 WinML 模型執行器工具,來檢查您的模型是否會使用 Windows ML 執行的最簡單方式,。 或者,您可以檢查 ONNX 版本和 Windows 組建,以取得指定 Windows 版本所有支援的 ONNX 版本詳細資訊。

如何將不同格式的模型轉換成 ONNX?

您可以使用 WinMLTools,將數種不同格式的模型,例如 Apple CoreML 和 scikit-learn 轉換為 ONNX。

我在嘗試匯出和/或將模型轉換成 ONNX 時發生錯誤,指出我的模型具有「不支持的運算符」。 我該怎麼做?

ONNX 版本目前可能不支援原生定型架構中的某些運算符。 首先,建議您檢查目標 Windows 組建 支援的ONNX 版本,並嘗試將您的模型轉換為支援的最大版本。 較舊版本相比,較舊版的 ONNX 包含對一組較大運算符的支援。

如果您繼續遇到問題,建議您與數據科學小組合作,嘗試避免不支援的運算符。 我們建議的其中一種方法是變更來源架構中的模型架構,並嘗試將模型轉換成目標 ONNX 版本。 請注意,您還不需要重新定型模型,您可以嘗試轉換架構,如果成功,您可以繼續完整重新定型模型。

為什麼我無法載入模型?

載入模型時可能會有數個原因,但在UWP上進行開發時,最常見的原因之一是因為檔案存取限制。 根據預設,UWP 應用程式只能存取檔案系統的某些部分,而且需要用戶權力或額外功能才能存取其他位置。 如需詳細資訊,請參閱 檔案訪問許可權

我應該使用哪個版本的 WinMLTools?

我們一律建議您下載並安裝最新版的 winmltools 套件。 這可確保您可以建立以最新版本 Windows 為目標的 ONNX 模型。

我可以使用 onnxmltools 而不是 winmltools 嗎?

是的,您可以,但您必須確定您安裝正確的版本 onnxmltools,才能將 ONNX v1.2.2 設為目標,這是 Windows ML 所支援的最低 ONNX 版本。 如果您不確定要安裝的版本,建議您改為安裝最新版本的 winmltools。 這可確保您將能夠以 Windows 支援的 ONNX 版本為目標。

我應該使用哪個版本的 Visual Studio 來取得自動產生程式代碼(mlgen)?

支援 mlgen 的最低建議 visual Studio 版本為 15.8.7。 在 Windows 10 版本 1903 和更新版本中,mlgen 已不再包含在 SDK 中,因此您必須下載並安裝擴充功能。 Visual Studio 2017 有一個適用於 visual Studio 2019

我在嘗試執行 mlgen 時收到錯誤訊息,而且不會產生任何程式代碼。 可能發生什麼事?

試著執行 mlgen 時最常見的錯誤如下:

  • 遺漏必要的屬性 'consumed_inputs':如果您遇到此錯誤訊息,則最有可能嘗試使用 17763 之前的 Windows 10 SDK 版本執行 ONNX v1.2 模型:建議您檢查 SDK 版本,並將其更新為 17763 版或更新版本。
  • 類型錯誤:輸出自變數 (ZipMap) 的類型(map(string,tensor(float))不符合預期的類型...:如果您遇到此錯誤,則您的 ONNX 模型很可能是比 WinML 從組建 17763 開始接受的舊版本。 我們建議您將轉換器套件更新為最新的可用版本,並將模型重新對應至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 提出問題。