Deze pagina bevat antwoorden op de populairste vragen van de community over Windows ML.
Hoe weet ik of het ONNX-model dat ik heb uitgevoerd met Windows ML?
De eenvoudigste manier om te controleren of uw model wordt uitgevoerd met Windows ML, is met behulp van het hulpprogramma WinML Model Runner. U kunt ook ONNX-versies en Windows-builds controleren voor meer informatie over alle ondersteunde ONNX-versies voor een bepaalde Windows-release.
Hoe converteer ik een model van een andere indeling naar ONNX?
U kunt WinMLTools gebruiken om modellen van verschillende indelingen, zoals Apple CoreML en scikit-learn, te converteren naar ONNX.
Ik krijg fouten bij het exporteren en/of converteren van mijn model naar ONNX, met de tekst dat mijn model 'niet-ondersteunde operators' heeft. Wat moet ik doen?
Sommige operators in het systeemeigen trainingsframework worden momenteel niet ondersteund door een ONNX-versie. Eerst raden we u aan ondersteunde ONNX-versies voor uw doelversie van Windows buildte controleren en uw model te converteren naar de maximaal ondersteunde versie. Latere versies van ONNX bevatten ondersteuning voor een grotere set operators in vergelijking met eerdere versies.
Als u problemen blijft ondervinden, raden we u aan om samen te werken met uw data science-team om de niet-ondersteunde operators te voorkomen. Een van de benaderingen die we aanbevelen is om de architectuur van het model in het bronframework te wijzigen en het model te converteren/exporteren naar de onnx-doelversie. Houd er rekening mee dat u het model nog niet opnieuw hoeft te trainen. U kunt proberen om de architectuur te converteren. Als dit lukt, kunt u doorgaan met het volledig opnieuw trainen van uw model.
Waarom kan ik een model niet laden?
Er zijn verschillende redenen waarom u problemen ondervindt bij het laden van een model, maar een van de meest voorkomende redenen bij het ontwikkelen op UWP is vanwege beperkingen voor bestandstoegang. UWP-toepassingen hebben standaard alleen toegang tot bepaalde onderdelen van het bestandssysteem en vereisen gebruikersmachtigingen of extra mogelijkheden om toegang te krijgen tot andere locaties. Zie machtigingen voor bestandstoegang voor meer informatie.
Welke versie van WinMLTools moet ik gebruiken?
We raden u altijd aan om de nieuwste versie van het winmltools pakket te downloaden en te installeren. Dit zorgt ervoor dat u ONNX-modellen kunt maken die gericht zijn op de nieuwste versies van Windows.
Kan ik onnxmltools gebruiken in plaats van winmltools?
Ja, u kunt, maar u moet ervoor zorgen dat u de juiste versie van onnxmltools installeert om ONNX v1.2.2 te targeten. Dit is de minimale ONNX-versie die wordt ondersteund door Windows ML. Als u niet zeker weet welke versie u moet installeren, raden we u aan om in plaats daarvan de nieuwste versie van winmltools te installeren. Dit zorgt ervoor dat u zich kunt richten op de ONNX-versie die wordt ondersteund door Windows.
Welke versie van Visual Studio moet ik gebruiken om automatische codegeneratie (mlgen) op te halen?
De minimaal aanbevolen versie van Visual Studio met ondersteuning voor mlgen is 15.8.7. In Windows 10, versie 1903 en hoger, mlgen niet meer is opgenomen in de SDK, dus moet u de extensie downloaden en installeren. Er is een voor Visual Studio 2017- en één voor Visual Studio 2019-.
Er wordt een foutbericht weergegeven wanneer ik mlgen probeer uit te voeren en er geen code wordt gegenereerd. Wat zou er kunnen gebeuren?
De twee meest voorkomende fouten bij het uitvoeren van mlgen zijn:
- vereist kenmerk 'consumed_inputs' ontbreekt: als u dit foutbericht krijgt, probeert u waarschijnlijk een ONNX v1.2-model uit te voeren met een versie van de Windows 10 SDK ouder dan 17763; het is raadzaam om uw SDK-versie te controleren en bij te werken naar versie 17763 of hoger.
- Typefout: Type (map(tekenreeks,tensor(float)) van uitvoer arg (verlies) van knooppunt (ZipMap) komt niet overeen met het verwachte type...: Als u deze fout ondervindt, is uw ONNX-model waarschijnlijk een oudere versie dan die is geaccepteerd door WinML vanaf build 17763. U wordt aangeraden uw conversieprogrammapakket bij te werken naar de nieuwste beschikbare versie en uw model opnieuw te converteren naar de 1.2-versie van ONNX.
Waarop wordt WinML standaard uitgevoerd?
Als u geen apparaat opgeeft waarop moet worden uitgevoerd met LearningModelDeviceKind, of als u LearningModelDeviceKind.Defaultgebruikt, bepaalt het systeem welk apparaat het model evalueert. Dit is meestal de CPU. Als u WinML wilt uitvoeren op de GPU, geeft u een van de volgende waarden op bij het maken van de LearningModelDevice-:
- LearningModelDeviceKind.DirectX-
- LearningModelDeviceKind.DirectXHighPerformance
- LearningModelDeviceKind.DirectXMinPower
Notitie
Gebruik de volgende bronnen voor hulp bij Windows ML:
- Als u technische vragen over Windows ML wilt stellen of beantwoorden, gebruikt u de tag windows-machine learning- op Stack Overflow-.
- Als u een fout wilt melden, dient u een probleem in op onze GitHub-.