Condividi tramite


Addestrare il modello con ML.NET

Nella fase precedente di questa esercitazione sono stati illustrati i prerequisiti per la creazione di un modello e un'app di Windows Machine Learning e un set di immagini da usare. In questa fase si apprenderà come usare il generatore di modelli ML.NET per trasformare il set di immagini in un modello di classificazione delle immagini.

Creare il progetto

  1. Aprire Visual Studio e scegliere "Crea un nuovo progetto".

Creare un nuovo progetto per Il generatore di modelli

  1. Nella barra di ricerca digitare .NET, selezionare C# come linguaggio e console come piattaforma e quindi scegliere il modello di progetto App console C# (.NET Core).

Creare un nuovo progetto .NET

  1. Nella finestra di configurazione:
  • Assegnare un nome al progetto. In questo caso, è stato chiamato MLNETTraining.
  • Scegli la posizione per il tuo progetto.
  • Verificare che Place solution and project in the same directory sia deselezionata.
  • Premere create per creare il progetto.

Configurare il nuovo progetto

Configurare Model Builder

Ora aggiungerai Model Builder al nostro progetto.

  1. Fare clic con il pulsante destro del mouse sul progetto MLNETTraining in Esplora soluzioni e scegliere Add > Machine Learning.

Aggiungere Machine Learning al progetto

In questo modo, si apre ML.NET Model Builder in una nuova finestra degli strumenti ancorata in Visual Studio. Model Builder guiderà l'utente nel processo di creazione di un modello di Machine Learning.

Elenco degli scenari del generatore di modelli

Il primo passaggio consiste nel scegliere lo scenario pertinente. Non tutti gli scenari supportano il formato ONNX.

Se l'ambiente di training è cloud di Azure, i modelli generati sono in formato ONNX e possono essere usati facilmente dall'app Windows ML senza conversione. Tuttavia, se si decide di eseguire il training del modello di Machine Learning in locale nel computer, il modello generato sarà in formato ML.NET.

  • Il training della CPU locale è supportato per tutti gli scenari, ad eccezione del rilevamento degli oggetti.
  • Il training locale della GPU è supportato per la classificazione delle immagini.
  • Il training di Azure è supportato per la classificazione delle immagini e il rilevamento degli oggetti.

In questa esercitazione si eseguirà il training del modello di classificazione delle immagini nell'ambiente di training di Azure. Il modello di output sarà in formato ONNX. Per completare il training, è necessario un account Azure.

  1. Scegliere lo scenario di classificazione delle immagini.

  2. Selezionare Configura area di lavoro per configurare l'ambiente di training di Azure.

Configurare l'area di lavoro di Azure

Nell'angolo in alto a destra accedere all'account associato alla sottoscrizione di Azure. Nel menu seguente:

  • Scegliere la sottoscrizione pertinente.
  • Selezionare e creare una nuova area di lavoro di Machine Learning.
  • Selezionare o creare una nuova risorsa di calcolo.
  • Assegnare il nome all'area di lavoro: ImageClassificationMLNET.

Configurare l'area di lavoro di Azure

Importante

Se non è possibile creare l'area di lavoro di Machine Learning da Model Builder, seguire questa procedura per creare manualmente un'area di lavoro dal portale di Azure. In caso contrario, è possibile passare al passaggio 4.

Nell'account Azure selezionare Crea una risorsa:

Risorse di Azure disponibili

Nella barra di ricerca cercare un Machine Learning.

Cercare Machine Learning nell'elenco delle risorse di Azure

Premere Crea per creare una nuova area di lavoro di Machine Learning.

Risorsa di Azure Machine Learning

Per creare una nuova area di lavoro, è necessario specificare il nome della sottoscrizione, selezionare o creare un nuovo gruppo di risorse, assegnare un nome all'area di lavoro e definire tutti i parametri necessari, ad esempio area, account di archiviazione e così via.

Configurare l'area di lavoro di Azure ML

Dopo aver stabilito l'area di lavoro e creato un nuovo ambiente di training in ML.NET, è possibile passare al passaggio successivo.

Ambiente di training ML.NET

Attendere il completamento della distribuzione di Machine Learning Services.

Il passaggio successivo consiste nell'aggiungere i dati a Model Builder.

  1. Passare alla posizione del set di dati immagine e selezionare la cartella di training con le categorie di cibo pertinenti. In questa esercitazione si eseguirà il training del modello per riconoscere deserto, zuppa e frutta, quindi sono necessarie solo queste categorie nella cartella del set di dati.

Aggiungere dati al modello di Machine Learning

Ora si è pronti per passare alla parte di training.

Addestra il tuo modello

Model Builder valuta molti modelli con algoritmi e impostazioni diversi per offrire il modello con prestazioni ottimali.

  1. Selezionare successivo e quindi Avvia Formazione per avviare il processo di formazione. Il generatore di modelli ML.Net inizierà caricando i dati in Azure, preparando l'area di lavoro e quindi avviando il processo di training.

Eseguire il training del modello di Machine Learning

Al termine del training, verrà visualizzato un riepilogo dei risultati del training.

Addestramento del modello riuscito

Accuratezza ottimale: mostra l'accuratezza del modello migliore trovato da Model Builder. Maggiore accuratezza indica che il modello ha stimato più correttamente i dati di test. In questo caso, il modello può stimare il risultato corretto con 95,42% di attendibilità.

Valutare i risultati

  1. Spostare il passaggio successivo per valutare i risultati del training.

  2. Selezionare l'immagine nella cartella di valutazione del set di dati ed esplorare la stima.

Risultati della valutazione del modello

Aggiungere il modello alla soluzione

ML.NET Generatore modelli può aggiungere automaticamente sia il modello di Machine Learning che i progetti per il training e l'utilizzo del modello alla soluzione.

  1. Passare alla parte di consumo del processo di formazione e aggiungere alla soluzione per la vendita. Verrà aggiunto il modello generato alla cartella della soluzione.

Aggiungere il modello alla soluzione

In Esplora soluzioni dovrebbero essere visualizzati i file di codice generati da Generatore modelli, incluso il modello bestModel.onnx in formato ONNX.

Modello visualizzato in Esplora soluzioni

Il modello sottoposto a training nell'ambiente cloud di Azure, quindi il modello generato è in formato ONNX.

Esplora il tuo modello

  1. Fare clic con il pulsante destro del mouse su bestModel.onnx e scegliere Apri cartella contenitore.

  2. Aprire il file del modello con il programma Netron.

  3. Premere sul nodo input1 per aprire le proprietà del modello.

Esplorazione delle proprietà del modello

Come si può notare, il modello richiede un oggetto tensore float a 32 bit (matrice multidimensionale) come input e restituisce Tensor float come output. La modalità di compilazione del modello non restituisce il valore stringa di un'etichetta stimata, ma una matrice di tre numeri, ognuno rappresenta l'etichetta pertinente del tipo di cibo. È necessario estrarre questi valori per visualizzare la stima corretta con l'app Windows ML.

Etichetta 1 Etichetta 2 Etichetta 3
0 1 2
dessert minestra Vegetable-Fruit

Passaggi successivi

Dopo aver eseguito il training del modello di Machine Learning, è possibile distribuirlo in un'app UWP con Windows Machine Learning