Bearbeiten

Freigeben über


Häufig gestellte Fragen (Häufig gestellte Fragen)

Diese Seite enthält Antworten auf die am häufigsten verwendeten Fragen aus der Community zu Windows ML.

Wie kann ich feststellen, ob das ONNX-Modell mit Windows ML ausgeführt wird?

Die einfachste Möglichkeit, zu überprüfen, ob Ihr Modell mit Windows ML ausgeführt wird, ist die Verwendung des WinML Model Runner-Tools. Alternativ können Sie ONNX-Versionen und Windows-Builds überprüfen, um weitere Informationen zu allen unterstützten ONNX-Versionen für eine bestimmte Windows-Version zu erhalten.

Wie konvertiere ich ein Modell eines anderen Formats in ONNX?

Sie können WinMLTools verwenden, um Modelle verschiedener Formate wie Apple CoreML und Scikit-Learn in ONNX zu konvertieren.

Ich erhalte Fehler beim Exportieren und/oder Konvertieren meines Modells in ONNX, die sagen, dass mein Modell "nicht unterstützte Operatoren" aufweist. Was soll ich tun?

Einige Operatoren im systemeigenen Schulungsframework werden möglicherweise von einer ONNX-Version derzeit nicht unterstützt. Zunächst empfehlen wir, unterstützte ONNX-Versionen für Den Windows-Zielbuildzu überprüfen und versuchen, Ihr Modell in die maximal unterstützte Version zu konvertieren. Spätere Versionen von ONNX umfassen die Unterstützung für eine größere Gruppe von Operatoren im Vergleich zu früheren Versionen.

Wenn weiterhin Probleme auftreten, empfehlen wir die Zusammenarbeit mit Ihrem Data Science-Team, um die nicht unterstützten Operatoren zu vermeiden. Eine der empfohlenen Ansätze besteht darin, die Architektur des Modells im Quellframework zu ändern und zu versuchen, das Modell in die ONNX-Zielversion zu konvertieren/zu exportieren. Beachten Sie, dass Sie das Modell noch nicht neu trainieren müssen – Sie können versuchen, die Architektur zu konvertieren, und wenn dies erfolgreich ist, können Sie mit der vollständigen Umschulung Ihres Modells fortfahren.

Warum kann ich ein Modell nicht laden?

Es gibt mehrere Gründe, warum Sie möglicherweise Probleme beim Laden eines Modells haben, aber einer der häufigsten beim Entwickeln auf UWP ist aufgrund von Dateizugriffseinschränkungen. Standardmäßig können UWP-Anwendungen nur auf bestimmte Teile des Dateisystems zugreifen und erfordern Benutzerberechtigungen oder zusätzliche Funktionen, um auf andere Speicherorte zuzugreifen. Weitere Informationen finden Sie unter Dateizugriffsberechtigungen.

Welche Version von WinMLTools sollte ich verwenden?

Es wird immer empfohlen, die neueste Version des winmltools-Pakets herunterzuladen und zu installieren. Dadurch wird sichergestellt, dass Sie ONNX-Modelle erstellen können, die auf die neuesten Versionen von Windows abzielen.

Kann ich onnxmltools anstelle von winmltools verwenden?

Ja, Sie können, aber Sie müssen sicherstellen, dass Sie die richtige Version von onnxmltools installieren, um ONNX v1.2.2 als Ziel zu verwenden. Dies ist die minimale ONNX-Version, die von Windows ML unterstützt wird. Wenn Sie nicht sicher sind, welche Version installiert werden soll, empfehlen wir stattdessen, die neueste Version von winmltools zu installieren. Dadurch wird sichergestellt, dass Sie die von Windows unterstützte ONNX-Version als Ziel verwenden können.

Welche Version von Visual Studio sollte ich verwenden, um die automatische Codegenerierung (mlgen) zu erhalten?

Die mindest empfohlene Version von Visual Studio mit Unterstützung für mlgen ist 15.8.7. In Windows 10, Version 1903 und höher, ist mlgen nicht mehr im SDK enthalten, daher müssen Sie die Erweiterung herunterladen und installieren. Es gibt eine für Visual Studio 2017- und eine für Visual Studio 2019.

Beim Ausführen von mlgen wird eine Fehlermeldung angezeigt, und es wird kein Code generiert. Was könnte möglicherweise passieren?

Die beiden häufigsten Fehler beim Ausführen von Mlgen sind:

  • Erforderliches Attribut "consumed_inputs" fehlt: Wenn diese Fehlermeldung auftritt, versuchen Sie wahrscheinlich, ein ONNX v1.2-Modell mit einer Version des Windows 10 SDK auszuführen, die älter als 17763 ist; es wird empfohlen, Ihre SDK-Version zu überprüfen und auf Version 17763 oder höher zu aktualisieren.
  • Typfehler: Typ (map(string,tensor(float))) der Ausgabeargumente (Verlust) des Knotens (ZipMap) stimmt nicht mit dem erwarteten Typ überein...: Wenn Dieser Fehler auftritt, ist Ihr ONNX-Modell wahrscheinlich eine ältere Version als die von WinML ab Build 17763 akzeptierte. Es wird empfohlen, das Konverterpaket auf die neueste verfügbare Version zu aktualisieren und ihr Modell auf die Version 1.2 von ONNX umzukonvertieren.

Worauf wird WinML standardmäßig ausgeführt?

Wenn Sie kein Gerät angeben, auf dem LearningModelDeviceKindausgeführt werden soll, oder wenn Sie LearningModelDeviceKind.Defaultverwenden, entscheidet das System, welches Gerät das Modell auswertet. Dies ist in der Regel die CPU. Um WinML auf der GPU auszuführen, geben Sie beim Erstellen des LearningModelDevice-einen der folgenden Werte an:

  • LearningModelDeviceKind.DirectX-
  • LearningModelDeviceKind.DirectXHighPerformance
  • LearningModelDeviceKind.DirectXMinPower

Anmerkung

Verwenden Sie die folgenden Ressourcen für Hilfe zu Windows ML:

  • Um technische Fragen zu Windows ML zu stellen oder zu beantworten, verwenden Sie bitte das Windows-Machine-Learning--Tag auf Stack Overflow-.
  • Um einen Fehler zu melden, senden Sie bitte ein Problem auf unserem GitHub-.