Condividi tramite


Eseguire il training di un modello di classificazione delle immagini in Azure con Model Builder

Informazioni su come eseguire il training di un modello di classificazione delle immagini in Azure usando Model Builder per classificare l'uso dei terreni dalle immagini satellite.

Questa esercitazione illustra come creare una libreria di classi C# per classificare l'uso dei terreni in base alle immagini satellite con Model Builder.

In questa esercitazione:

  • Preparare e identificare i dati
  • Creare un file di configurazione di Model Builder
  • Scegliere uno scenario
  • Caricare i dati
  • Creare un esperimento in Azure
  • Eseguire il training del modello
  • Valutare il modello
  • Usare il modello

Prerequisiti

Panoramica della classificazione delle immagini di Model Builder

Questo esempio crea una libreria di classi C# che classifica l'uso del suolo da immagini satellite mappa usando un modello di Deep Learning sottoposto a training in Azure con Model Builder. È possibile trovare il codice sorgente per questa esercitazione nel repository GitHub dotnet/machinelearning-samples

Creare una libreria di classi C#

Creare una libreria di classi C# denominata "LandUse".

Preparare e identificare i dati

Nota

I dati per questa esercitazione provengono da:

  • Eurosat: un nuovo set di dati e un benchmark di deep learning per l'uso della terra e la classificazione della copertura del territorio. Patrick Helber, Benjamin Bischke, Andreas Dengel, Damian Borth. Ieee Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2019.
  • Introduzione a EuroSAT: un nuovo set di dati e un benchmark di Deep Learning per l'uso del suolo e la classificazione della copertura del terreno. Patrick Helber, Benjamin Bischke, Andreas Dengel. 2018 IEEE International Geoscience e Remote Sensing Symposium, 2018.

Il set di dati EuroSAT contiene una raccolta di immagini satellite suddivise in dieci categorie (rurale, industriale, fiume e così via). Il set di dati originale contiene 27.000 immagini. Per praticità, questa esercitazione usa solo 2.000 di queste immagini.

Set di dati

  1. Scaricare il subset del set di dati EuroSAT e salvarlo ovunque nel computer.
  2. Decomprimerlo.

Creare un file di configurazione di Model Builder

Quando si aggiunge prima Model Builder alla soluzione, verrà richiesto di creare un mbconfig file. Il mbconfig file tiene traccia di tutto ciò che si esegue in Generatore modelli per consentire di riaprire la sessione.

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto LandUse e scegliere Aggiungi > modello di Machine Learning....
  2. Nella finestra di dialogo assegnare un nome al progetto Model Builder LandUse e fare clic su Aggiungi.

Scegliere uno scenario

Schermata dello scenario di Generatore modelli

Per eseguire il training del modello, è necessario scegliere uno scenario di Machine Learning disponibile nell'elenco del generatore di modelli.

Per questo esempio, l'attività è la classificazione delle immagini. Nel passaggio dello scenario dello strumento Generatore modelli selezionare lo scenario di classificazione delle immagini .

Selezionare un ambiente

Generatore modelli può eseguire il training in ambienti diversi a seconda dello scenario selezionato.

Selezionare Azure come ambiente e fare clic sul pulsante Configura area di lavoro .

Creare un esperimento in Azure

Un esperimento di Azure Machine Learning è una risorsa che deve essere creata prima di eseguire il training di Model Builder in Azure.

L'esperimento incapsula la configurazione e i risultati per una o più esecuzioni di training di Machine Learning. Gli esperimenti appartengono a un'area di lavoro specifica. La prima volta che viene creato un esperimento, il relativo nome viene registrato nell'area di lavoro. Tutte le esecuzioni successive, se viene usato lo stesso nome dell'esperimento, vengono registrate come parte dello stesso esperimento. In caso contrario, viene creato un nuovo esperimento.

Nella finestra di dialogo Crea nuovo esperimento scegliere la sottoscrizione dall'elenco a discesa Sottoscrizione .

Creare un'area di lavoro

Un'area di lavoro è una risorsa di Azure Machine Learning che fornisce una posizione centrale per tutte le risorse e gli artefatti di Azure Machine Learning creati come parte di un'esecuzione di training.

  1. Nella finestra di dialogo Crea nuovo esperimento selezionare il collegamento Nuovo accanto all'elenco a discesa Nome area di lavoro di Machine Learning .

  2. Nella finestra di dialogo Crea una nuova area di lavoro digitare "landuse-wkspc" nella casella di testo Nome area di lavoro di Machine Learning .

  3. Scegliere Stati Uniti orientali dall'elenco a discesa Aree . Un'area è la posizione geografica del data center in cui vengono distribuite le risorse e l'area di lavoro. È consigliabile scegliere una posizione vicina alla posizione in cui si trovano o i clienti.

  4. Selezionare il collegamento Nuovo accanto all'elenco a discesa Gruppi di risorse .

    1. Nella finestra di dialogo Crea nuovo gruppo di risorse digitare "landuse-rg" nella casella di testo Nome gruppo di risorse .
    2. Selezionare OK.
  5. Scegliere il gruppo di risorse appena creato dall'elenco a discesa Gruppi di risorse .

  6. Selezionare Crea.

    Il processo di provisioning richiede alcuni minuti. Viene effettuata una richiesta ad Azure per effettuare il provisioning delle risorse cloud seguenti:

    • Area di lavoro di Azure Machine Learning
    • Account di archiviazione di Azure
    • Azure Application Insights
    • Registro Azure Container
    • Insieme di credenziali chiave di Azure
  7. Al termine del processo di provisioning, scegliere l'area di lavoro appena creata dall'elenco a discesa Nome area di lavoro di Machine Learning nella finestra di dialogo Crea nuovo esperimento.

Creare l'ambiente di calcolo

Un calcolo di Azure Machine Learning è una macchina virtuale Linux basata sul cloud usata per il training.

  1. Nella finestra di dialogo Crea nuovo esperimento selezionare il collegamento Nuovo accanto all'elenco a discesa Nome calcolo .
  2. Nella finestra di dialogo Crea nuovo calcolo digitare "landuse-cpt" nella casella di testo Nome calcolo .
  3. Scegliere Standard_NC24 dall'elenco a discesa Dimensioni di calcolo . Model Builder usa tipi di calcolo ottimizzati per LA GPU. Per altre informazioni sui tipi di calcolo ottimizzati per GPU, visitare la documentazione della macchina virtuale Linux serie NC .
  4. Selezionare Crea. Le risorse di calcolo possono richiedere alcuni minuti per eseguire il provisioning.
  5. Al termine del processo di provisioning, scegliere l'area di lavoro appena creata dall'elenco a discesa Nome calcolo nella finestra di dialogo Crea nuovo esperimento.
  6. Selezionare il pulsante Passaggio successivo da caricare nei dati.

Caricare i dati

  1. Nel passaggio dati dello strumento Generatore modelli selezionare il pulsante accanto alla casella di testo Seleziona una cartella .
  2. Usare Esplora file per esplorare e selezionare la directory non compressa contenente le immagini.
  3. Selezionare il pulsante Passaggio successivo per passare al passaggio successivo nello strumento Generatore modelli.

Eseguire il training del modello

Il training in Azure è disponibile solo per lo scenario di classificazione delle immagini di Model Builder. L'algoritmo usato per eseguire il training di questi modelli è una rete neurale profonda basata sull'architettura ResNet50. Durante il processo di training del modello, Model Builder esegue il training di modelli separati usando l'algoritmo ResNet50 e le impostazioni per trovare il modello più efficace per il set di dati.

Avviare il training

Dopo aver configurato l'area di lavoro e il tipo di calcolo, è possibile completare la creazione dell'esperimento e avviare il training.

  1. Fare clic sul pulsante Avvia training .

    Il processo di training richiede tempo e la quantità di tempo può variare a seconda delle dimensioni di calcolo selezionate e della quantità di dati. La prima volta che viene eseguito il training di un modello, è possibile prevedere un tempo di training leggermente più lungo perché è necessario effettuare il provisioning delle risorse. È possibile tenere traccia dello stato di avanzamento delle esecuzioni selezionando il collegamento Monitoraggio corrente in portale di Azure in Visual Studio.

    Durante il processo di training, i dati di avanzamento vengono visualizzati nella sezione Progress del passaggio di training.

    • Stato visualizza lo stato di completamento del processo di training.
    • La migliore accuratezza visualizza l'accuratezza del modello con prestazioni migliori trovate finora da Model Builder. Precisione maggiore indica il modello stimato più correttamente con i dati di test.
    • L'algoritmo visualizza il nome dell'algoritmo con prestazioni migliori eseguite finora da Model Builder.
  2. Al termine del training, selezionare il pulsante Passaggio successivo per spostare per valutare il modello.

Valutare il modello

Il risultato del passaggio di training è un modello con prestazioni ottimali. Nel passaggio di valutazione dello strumento Generatore modelli, la scheda Dettagli nella sezione output conterrà l'algoritmo utilizzato dal modello con prestazioni ottimali nella voce Algoritmo insieme alle metriche nella voce Accuratezza nei dettagli del modello migliore .

Se non si è soddisfatti delle metriche di accuratezza, alcuni modi semplici per provare e migliorare l'accuratezza del modello sono usare più dati o aumentare i dati esistenti. In caso contrario, selezionare il pulsante Passaggio successivo per passare al passaggio finale nello strumento Generatore modelli.

(Facoltativo) Usare il modello

Questo passaggio avrà modelli di progetto che è possibile usare per utilizzare il modello. Questo passaggio è facoltativo e è possibile scegliere il metodo più adatto alle proprie esigenze su come servire il modello.

  • App console
  • API Web

App console

Quando si aggiunge un'app console alla soluzione, verrà richiesto di assegnare un nome al progetto.

  1. Assegnare un nome al progetto console LandUse_Console.

  2. Fare clic su Aggiungi alla soluzione per aggiungere il progetto alla soluzione corrente.

  3. Eseguire l'applicazione.

    L'output generato dal programma dovrebbe essere simile al frammento di codice seguente:

    Predicted Label value: AnnualCrop
    
    Predicted Label scores: [0.9941197,3.3146807E-06,4.4344174E-06,0.000101028825,7.763133E-06,0.0015898133,0.0040994748,1.6308518E-06,6.265567E-05,1.0236401E-05]
    

API Web

Quando si aggiunge un'API Web alla soluzione, verrà richiesto di assegnare un nome al progetto.

  1. Assegnare un nome al progetto API Web LandUse_API.

  2. Fare clic su Aggiungi alla soluzione per aggiungere il progetto alla soluzione corrente.

  3. Eseguire l'applicazione.

  4. Aprire PowerShell e immettere il codice seguente in cui PORT è la porta in ascolto dell'applicazione.

    $body = @{
         ImageSource = <Image location on your local machine>
    }
    
     Invoke-RestMethod "https://localhost:<PORT>/predict" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
    
  5. Se ha esito positivo, l'output dovrebbe essere simile al testo seguente.

    output1                                           prediction score
    -------                                           ---------- -----
    {9.508701, -3.1025503, -2.8115153, 0.31449434...} AnnualCrop {0.9941197, 3.3146807E-06, 4.4344174E-06, 0.00010102882...
    

Pulire le risorse

Se non si prevede più di usare le risorse di Azure create, eliminarle. In questo modo si evita di dover pagare per risorse inutilizzate ancora in esecuzione.

  1. Passare alla portale di Azure e selezionare Gruppi di risorse nel menu del portale.
  2. Nell'elenco dei gruppi di risorse selezionare il gruppo di risorse creato. In questo caso, è "landuse-rg".
  3. Selezionare Elimina gruppo di risorse.
  4. Digitare il nome del gruppo di risorse, "landuse-rg", nella casella di testo e quindi selezionare Invio.

Passaggi successivi

In questa esercitazione si è appreso come:

  • Preparare e identificare i dati
  • Creare un file di configurazione di Model Builder
  • Scegliere uno scenario
  • Caricare i dati
  • Creare un esperimento in Azure
  • Eseguire il training del modello
  • Valutare il modello
  • Usare il modello

Provare uno degli altri scenari di Generatore modelli: