Questa pagina contiene le risposte alle domande più popolari della community su Windows ML.
Come faccio a sapere se il modello ONNX che ho eseguito con Windows ML?
Il modo più semplice per verificare se il modello verrà eseguito con Windows ML consiste nell'usare lo strumento Strumento di esecuzione modelli WinML. In alternativa, è possibile controllare versioni ONNX e le build di Windows per altre informazioni su tutte le versioni ONNX supportate per una determinata versione di Windows.
Come si converte un modello di un formato diverso in ONNX?
Puoi usare WinMLTools per convertire modelli di diversi formati, ad esempio Apple CoreML e scikit-learn, in ONNX.
Si verificano errori durante il tentativo di esportazione e/o conversione del modello in ONNX, che dicono che il modello ha "operatori non supportati". Cosa dovrei fare?
Alcuni operatori nel framework di training nativo potrebbero non essere attualmente supportati da una versione ONNX. Prima di tutto, ti consigliamo di controllare versioni ONNX supportate per la build di Windows di destinazionee provare a convertire il modello nella versione massima supportata. Le versioni successive di ONNX includono il supporto per un set di operatori più ampio rispetto alle versioni precedenti.
Se si continuano a verificarsi problemi, è consigliabile collaborare con il team di data science per provare a evitare gli operatori non supportati. Uno degli approcci consigliati consiste nel modificare l'architettura del modello nel framework di origine e tentare di convertire/esportare il modello nella versione ONNX di destinazione. Si noti che non è ancora necessario ripetere il training del modello. È possibile tentare di convertire l'architettura e, in caso di esito positivo, è possibile passare alla ripetizione completa del training del modello.
Perché non è possibile caricare un modello?
Esistono diversi motivi per cui potresti avere problemi di caricamento di un modello, ma uno dei più comuni durante lo sviluppo in UWP è dovuto a restrizioni di accesso ai file. Per impostazione predefinita, le applicazioni UWP possono accedere solo a determinate parti del file system e richiedono autorizzazioni utente o funzionalità aggiuntive per accedere ad altre posizioni. Per altre informazioni, vedere Autorizzazioni di accesso ai file.
Quale versione di WinMLTools è consigliabile usare?
Ti consigliamo sempre di scaricare e installare la versione più recente del pacchetto winmltools. In questo modo è possibile creare modelli ONNX destinati alle versioni più recenti di Windows.
È possibile usare onnxmltools invece di winmltools?
Sì, è possibile, ma è necessario assicurarsi di installare la versione corretta di onnxmltools per usare ONNX v1.2.2, ovvero la versione minima di ONNX supportata da Windows ML. Se non si è certi della versione da installare, è consigliabile installare la versione più recente di winmltools. In questo modo sarà possibile specificare come destinazione la versione ONNX supportata da Windows.
Quale versione di Visual Studio è consigliabile usare per ottenere la generazione automatica del codice (mlgen)?
La versione minima consigliata di Visual Studio con supporto per mlgen è 15.8.7. In Windows 10, versione 1903 e successive, mlgen non è più incluso nell'SDK, quindi dovrai scaricare e installare l'estensione. È disponibile una per Visual Studio 2017 e una per Visual Studio 2019.
Viene visualizzato un messaggio di errore quando si tenta di eseguire mlgen e non viene generato alcun codice. Cosa potrebbe accadere?
I due errori più comuni quando si tenta di eseguire mlgen sono:
- attributo obbligatorio 'consumed_inputs' manca: se si verifica questo messaggio di errore, probabilmente si sta tentando di eseguire un modello ONNX v1.2 con una versione di Windows 10 SDK precedente alla 17763; è consigliabile controllare la versione dell'SDK e aggiornarla alla versione 17763 o successiva.
- Tipo errore: il tipo (map(string,tensor(float)) dell'arg di output (perdita) del nodo (ZipMap) non corrisponde al tipo previsto...: se si verifica questo errore, è probabile che il modello ONNX sia una versione precedente rispetto a quella accettata da WinML a partire dalla build 17763. È consigliabile aggiornare il pacchetto del convertitore alla versione più recente disponibile e riconvertire il modello alla versione 1.2 di ONNX.
Che cosa viene eseguito winML per impostazione predefinita?
Se non specifichi un dispositivo da eseguire con LearningModelDeviceKindo se usi LearningModelDeviceKind.Default, il sistema deciderà quale dispositivo valuterà il modello. Si tratta in genere della CPU. Per eseguire WinML nella GPU, specificare uno dei valori seguenti durante la creazione del LearningModelDevice:
- LearningModelDeviceKind.DirectX
- LearningModelDeviceKind.DirectXHighPerformance
- LearningModelDeviceKind.DirectXMinPower
Nota
Usare le risorse seguenti per assistenza con Windows ML:
- Per porre o rispondere a domande tecniche su Windows ML, usare il tag windows-machine learning in Stack Overflow.
- Per segnalare un bug, segnalare un problema nel GitHub.