Domande frequenti (domande frequenti)

Questa pagina contiene le risposte alle domande più popolari della community.

Ricerca per categorie 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 WinML Model Runner. In alternativa, è possibile controllare le versioni ONNX e le build di Windows per altre informazioni su tutte le versioni ONNX supportate per una determinata versione di Windows.

Ricerca per categorie convertire un modello di un formato diverso in ONNX?

È possibile usare WinMLTools per convertire i 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 indica che il modello ha "operatori non supportati". Cosa devo fare?

Alcuni operatori nel framework di training nativo potrebbero non essere attualmente supportati da una versione ONNX. Prima di tutto, è consigliabile controllare le versioni ONNX supportate per la build di Windows di destinazione e 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 ed 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 durante il caricamento di un modello, ma uno dei più comuni durante lo sviluppo in UWP è dovuto alle 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 sarà 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 avere come destinazione ONNX v1.2.2, ovvero la versione MINIMA ONNX supportata da Windows ML. Se non si è certi della versione da installare, è consigliabile installare invece la versione più recente di winmltools . In questo modo sarà possibile scegliere 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 è necessario 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' mancante: se si verifica questo messaggio di errore, è probabile che si stia 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.
  • Errore di tipo: il tipo (map(string,tensor(float)) dell'arg di output (perdita) del nodo (ZipMap) non corrisponde al tipo previsto...: se si verifica questo errore, probabilmente il modello ONNX è 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 LearningModelDeviceKind o 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 di LearningModelDevice:

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

Nota

Per informazioni su Windows Machine Learning, usa le risorse seguenti:

  • Per porre domande tecniche o rispondere a domande tecniche su Windows Machine Learning, usa il tag windows-machine-learning in Stack Overflow.
  • Per segnalare un bug, registra il problema in GitHub.