Ta strona zawiera odpowiedzi na najbardziej popularne pytania społeczności dotyczące uczenia maszynowego systemu Windows.
Jak sprawdzić, czy model ONNX został uruchomiony z systemem Windows ML?
Najprostszym sposobem sprawdzenia, czy model zostanie uruchomiony z usługą Windows ML, jest użycie narzędzia WinML Model Runner. Alternatywnie możesz sprawdzić wersje ONNX i kompilacje systemu Windows, aby uzyskać więcej informacji na temat wszystkich obsługiwanych wersji ONNX dla danej wersji systemu Windows.
Jak przekonwertować model innego formatu na ONNX?
Możesz użyć WinMLTools do konwertowania modeli kilku różnych formatów, takich jak Apple CoreML i scikit-learn, na ONNX.
Występują błędy podczas próby wyeksportowania i/lub przekonwertowania modelu na ONNX, które mówią, że mój model ma "nieobsługiwane operatory". Co należy zrobić?
Niektóre operatory w natywnej strukturze szkoleniowej mogą nie być obecnie obsługiwane przez wersję ONNX. Najpierw zalecamy sprawdzenie obsługiwanych wersji ONNX dla docelowej kompilacji systemu Windowsi spróbuj przekonwertować model na maksymalną obsługiwaną wersję. Nowsze wersje ONNX obejmują obsługę większego zestawu operatorów w porównaniu z poprzednimi wersjami.
Jeśli nadal występują problemy, zalecamy współpracę z zespołem ds. nauki o danych, aby spróbować uniknąć nieobsługiwanych operatorów. Jedną z zalecanych metod jest zmiana architektury modelu w strukturze źródłowej i próba przekonwertowania/wyeksportowania modelu do docelowej wersji ONNX. Pamiętaj, że nie musisz jeszcze ponownie trenować modelu — możesz spróbować przekonwertować architekturę i, jeśli to się powiedzie, możesz przejść do pełnego ponownego trenowania modelu.
Dlaczego nie mogę załadować modelu?
Istnieje kilka powodów, dla których może wystąpić problem z ładowaniem modelu, ale jednym z najczęstszych z nich podczas tworzenia aplikacji na platformie UWP jest spowodowane ograniczeniami dostępu do plików. Domyślnie aplikacje platformy UWP mogą uzyskiwać dostęp tylko do niektórych części systemu plików i wymagać uprawnień użytkownika lub dodatkowych możliwości w celu uzyskania dostępu do innych lokalizacji. Aby uzyskać więcej informacji, zobacz Uprawnienia dostępu do plików.
Której wersji narzędzia WinMLTools należy używać?
Zawsze zalecamy pobranie i zainstalowanie najnowszej wersji pakietu winmltools. Dzięki temu można tworzyć modele ONNX przeznaczone dla najnowszych wersji systemu Windows.
Czy mogę używać onnxmltools zamiast winmltools?
Tak, możesz, ale musisz upewnić się, że zainstalowano poprawną wersję onnxmltools, aby docelowa wersja ONNX w wersji 1.2.2, która jest minimalną wersją ONNX obsługiwaną przez usługę Windows ML. Jeśli nie masz pewności, która wersja ma zostać zainstalowana, zalecamy zainstalowanie najnowszej wersji winmltools. Dzięki temu będziesz mieć pewność, że będzie można kierować do wersji ONNX obsługiwanej przez system Windows.
Której wersji programu Visual Studio należy używać w celu uzyskania automatycznego generowania kodu (mlgen)?
Minimalna zalecana wersja programu Visual Studio z obsługą mlgen to 15.8.7. W systemie Windows 10 w wersji 1903 lub nowszej mlgen nie jest już uwzględniona w zestawie SDK, dlatego należy pobrać i zainstalować rozszerzenie. Istnieje jeden dla programu Visual Studio 2017 i jeden dla programu Visual Studio 2019.
Otrzymuję komunikat o błędzie podczas próby uruchomienia narzędzia mlgen i nie jest generowany żaden kod. Co może się wydarzyć?
Dwa najczęstsze błędy podczas próby wykonania narzędzia mlgen to:
- brak wymaganego atrybutu "consumed_inputs": jeśli wystąpi ten komunikat o błędzie, najprawdopodobniej próbujesz uruchomić model ONNX w wersji 1.2 z wersją zestawu Windows 10 SDK starszej niż 17763; Zalecamy sprawdzenie wersji zestawu SDK i zaktualizowanie jej do wersji 17763 lub nowszej.
- Typ błędu: Typ (map(string,tensor(float))) danych wyjściowych arg (utrata) węzła (ZipMap) nie jest zgodny z oczekiwanym typem...: Jeśli wystąpi ten błąd, najprawdopodobniej model ONNX jest starszą wersją niż ta zaakceptowana przez WinML, począwszy od kompilacji 17763. Zalecamy zaktualizowanie pakietu konwertera do najnowszej dostępnej wersji i przywrócenie modelu do wersji 1.2 ONNX.
Co domyślnie działa system WinML?
Jeśli nie określisz urządzenia do uruchomienia przy użyciu LearningModelDeviceKindlub jeśli używasz LearningModelDeviceKind.Default, system zdecyduje, które urządzenie oceni model. Jest to zwykle procesor CPU. Aby uruchomić winML na procesorze GPU, określ jedną z następujących wartości podczas tworzenia LearningModelDevice:
- LearningModelDeviceKind.DirectX
- LearningModelDeviceKind.DirectXHighPerformance
- LearningModelDeviceKind.DirectXMinPower
Nuta
Skorzystaj z następujących zasobów, aby uzyskać pomoc dotyczącą uczenia maszynowego z systemem Windows:
- Aby zadać lub odpowiedzieć na pytania techniczne dotyczące usługi Windows ML, użyj tagu windows-machine-learning w usłudze Stack Overflow.
- Aby zgłosić usterkę, zgłoś problem w witrynie GitHub.