Eseguire il training del 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".

Create a new project for the Model Builder

  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).

Create a new .NET project

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

Configure your new project

Configurare Model Builder

A questo momento, si aggiungerà Generatore modelli al progetto.

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

Add machine learning to your project

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.

List of model builder scenarios

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 oggetti.
  • Il training della GPU locale è 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.

Set up your Azure workspace

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.

Configure your Azure workspace

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:

Available Azure resources

Nella barra di ricerca cercare un Machine Learning.

Search for Machine Learning in the Azure resource list

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

The Azure Machine Learning resource

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.

Set up your Azure ML workspace

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

The ML.NET training environment

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.

Add data to your ML model

Ora si è pronti per passare alla parte di training.

Eseguire il training del modello

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

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

Train your Machine Learning model

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

Successful model training

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

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.

Model evaluation results

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 utilizzo del processo di training e vendere Aggiungi alla soluzione. Verrà aggiunto il modello generato alla cartella della soluzione.

Add your model to your solution

Nella Esplora soluzioni dovrebbero essere visualizzati i file di codice generati da Model Builder, incluso il modello bestModel.onnx in formato ONNX.

Your model displayed in the solution explorer

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

Esplorare il 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.

Exploring the properties of your model

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 soup Frutta vegetale

Passaggi successivi

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