Den här sidan innehåller svar på de mest populära frågorna från communityn om Windows ML.
Hur vet jag om ONNX-modellen jag har kommer att köras med Windows ML?
Det enklaste sättet att kontrollera om din modell kommer att köras med Windows ML är att använda verktyget WinML Model Runner. Du kan också kontrollera ONNX-versioner och Windows-versioner för mer information om alla ONNX-versioner som stöds för en viss Windows-version.
Hur konverterar jag en modell med ett annat format till ONNX?
Du kan använda WinMLTools för att konvertera modeller med flera olika format, till exempel Apple CoreML och scikit-learn, till ONNX.
Jag får fel när jag försöker exportera och/eller konvertera min modell till ONNX som säger att min modell har "operatorer som inte stöds". Vad ska jag göra?
Vissa operatorer i det interna träningsramverket kanske för närvarande inte stöds av en ONNX-version. Först rekommenderar vi att du kontrollerar vilka ONNX-versioner som stöds för din Windows-målversionoch försöker konvertera din modell till den version som stöds maximalt. Senare versioner av ONNX innehåller stöd för en större uppsättning operatorer jämfört med tidigare versioner.
Om du fortsätter att stöta på problem rekommenderar vi att du arbetar med ditt datavetenskapsteam för att försöka undvika operatorer som inte stöds. En av de metoder vi rekommenderar är att ändra modellens arkitektur i källramverket och försöka konvertera/exportera modellen till mål-ONNX-versionen. Observera att du inte behöver träna om modellen ännu – du kan försöka konvertera arkitekturen och om den lyckas kan du gå vidare till fullständig omträning av din modell.
Varför kan jag inte läsa in en modell?
Det finns flera orsaker till att du kan ha problem med att läsa in en modell, men en av de vanligaste när du utvecklar på UWP beror på filåtkomstbegränsningar. Som standard kan UWP-program bara komma åt vissa delar av filsystemet och kräva användarbehörighet eller extra funktioner för att få åtkomst till andra platser. Mer information finns i Behörigheter för filåtkomst.
Vilken version av WinMLTools ska jag använda?
Vi rekommenderar alltid att du laddar ned och installerar den senaste versionen av winmltools-paketet. På så sätt kan du skapa ONNX-modeller som är avsedda för de senaste versionerna av Windows.
Kan jag använda onnxmltools i stället för winmltools?
Ja, det kan du, men du måste se till att du installerar rätt version av onnxmltools för att kunna rikta in dig på ONNX v1.2.2, vilket är den minsta ONNX-version som stöds av Windows ML. Om du är osäker på vilken version som ska installeras rekommenderar vi att du installerar den senaste versionen av winmltools i stället. Detta säkerställer att du kommer att kunna rikta in dig på DEN ONNX-version som stöds av Windows.
Vilken version av Visual Studio ska jag använda för att hämta automatisk kodgenerering (mlgen)?
Den lägsta rekommenderade versionen av Visual Studio med stöd för mlgen är 15.8.7. I Windows 10 version 1903 och senare ingår mlgen- inte längre i SDK:n, så du måste ladda ned och installera tillägget. Det finns en för Visual Studio 2017 och en för Visual Studio 2019.
Jag får ett felmeddelande när jag försöker köra mlgen och ingen kod genereras. Vad kan hända?
De två vanligaste felen vid försök att köra mlgen är:
- Attributet "consumed_inputs" saknas: Om du stöter på det här felmeddelandet försöker du förmodligen köra en ONNX v1.2-modell med en version av Windows 10 SDK som är äldre än 17763. Vi rekommenderar att du kontrollerar din SDK-version och uppdaterar den till version 17763 eller senare.
- Type Error: Type (map(string,tensor(float))) of output arg (loss) of node (ZipMap) matchar inte den förväntade typen...: Om du stöter på det här felet är din ONNX-modell förmodligen en äldre version än den som accepteras av WinML från och med version 17763. Vi rekommenderar att du uppdaterar konverterarpaketet till den senaste tillgängliga versionen och konverterar om din modell till 1.2-versionen av ONNX.
Vad körs WinML på som standard?
Om du inte anger en enhet som ska köras med LearningModelDeviceKind, eller om du använder LearningModelDeviceKind.Default, avgör systemet vilken enhet som ska utvärdera modellen. Det här är vanligtvis processorn. Om du vill att WinML ska köras på GPU anger du något av följande värden när du skapar LearningModelDevice:
- LearningModelDeviceKind.DirectX
- LearningModelDeviceKind.DirectXHighPerformance
- LearningModelDeviceKind.DirectXMinPower
Not
Använd följande resurser för hjälp med Windows ML:
- Om du vill ställa eller besvara tekniska frågor om Windows ML använder du taggen windows-machine-learning på Stack Overflow-.
- Om du vill rapportera en bugg skickar du ett problem på vår GitHub-.