Freigeben über


Trainieren eines Bildklassifizierungsmodells in Azure über Model Builder

Erfahren Sie, wie Sie ein Bildklassifizierungsmodell in Azure mithilfe von Model Builder trainieren, um die Nutzung von Flächen anhand von Satellitenbildern zu kategorisieren.

In diesem Tutorial erfahren Sie, wie Sie mithilfe von Model Builder eine C#-Klassenbibliothek erstellen, um die Nutzung von Flächen basierend auf Satellitenbildern zu kategorisieren.

In diesem Tutorial führen Sie Folgendes durch:

  • Vorbereiten und Verstehen der Daten
  • Erstellen einer Model Builder-Konfigurationsdatei
  • Auswählen eines Szenarios
  • Laden der Daten
  • Erstellen eines Experiments in Azure
  • Trainieren des Modells
  • Evaluieren des Modells
  • Nutzen des Modells

Voraussetzungen

Übersicht über die Bildklassifizierung in Model Builder

In diesem Beispiel wird eine C#-Klassenbibliothek erstellt, die die Flächennutzung anhand von Kartensatellitenbildern kategorisiert. Zu diesem Zweck wird ein Deep Learning-Modell in Azure mithilfe von Model Builder trainiert. Sie finden den Quellcode für dieses Tutorial im GitHub-Repository dotnet/machinelearning-samples.

Erstellen einer C#-Klassenbibliothek

Erstellen Sie eine C#-Klassenbibliothek namens „LandUse“.

Vorbereiten und Verstehen der Daten

Hinweis

Die für dieses Tutorial verwendeten Daten stammen aus folgenden Quellen:

  • Eurosat: A novel dataset and deep learning benchmark for land use and land cover classification (Eurosat: Ein neuer Maßstab für Datasets und Deep Learning zur Klassifizierung von Flächennutzung und Bodenbedeckung). Patrick Helber, Benjamin Bischke, Andreas Dengel, Damian Borth. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2019 (IEEE-Journal für ausgewählte Themen im Bereich „Angewandte Erdbeobachtung und Fernerkundung“).
  • Introducing Eurosat: A novel dataset and deep learning benchmark for land use and land cover classification (Vorstellung von Eurosat: Ein neuer Maßstab für Datasets und Deep Learning zur Klassifizierung von Flächennutzung und Bodenbedeckung). Patrick Helber, Benjamin Bischke, Andreas Dengel. 2018 IEEE International Geoscience and Remote Sensing Symposium, 2018 (Internationales IEEE-Symposium für Geowissenschaft und Fernerkundung).

Das EuroSAT-Dataset enthält eine Sammlung von Satellitenbildern, die in zehn Kategorien unterteilt sind (z. B. Landwirtschaft, Industrie oder Fluss). Das Originaldataset umfasst 27.000 Bilder. Der Einfachheit halber werden in diesem Tutorial nur 2.000 dieser Bilder verwendet.

Dataset

  1. Laden Sie die Teilmenge des EuroSAT-Datasets herunter, und speichern Sie sie auf Ihrem Computer.
  2. Entzippen Sie die Datei.

Erstellen einer Model Builder-Konfigurationsdatei

Wenn Sie der Projektmappe Model Builder hinzufügen, werden Sie aufgefordert, eine mbconfig-Datei zu erstellen. Die mbconfig-Datei verfolgt alles, was Sie in Model Builder tun, damit Sie die Sitzung erneut öffnen können.

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt LandUse, und wählen Sie Hinzufügen > Machine Learning-Modell aus.
  2. Geben Sie dem Model Builder-Projekt im Dialogfeld den Namen LandUse, und klicken Sie auf Hinzufügen.

Auswählen eines Szenarios

Model Builder: Szenariobildschirm

Um Ihr Modell zu trainieren, wählen Sie ein Szenario aus der Liste der vom Modell-Generator bereitgestellten verfügbaren Machine Learning-Szenarien aus.

Für dieses Beispiel besteht die Aufgabe in der Bildklassifizierung. Wählen Sie im Szenarioschritt des Model Builder-Tools das Szenario Bildklassifizierung aus.

Auswählen einer Umgebung

Model Builder kann das Training je nach ausgewähltem Szenario in verschiedenen Umgebungen ausführen.

Wählen Sie Azure als Ihre Umgebung aus, und klicken Sie auf die Schaltfläche Arbeitsbereich einrichten.

Erstellen eines Experiments in Azure

Ein Azure Machine Learning-Experiment ist eine Ressource, die vor der Ausführung des Modellgeneratortrainings in Azure erstellt werden muss.

Das Experiment kapselt die Konfiguration und die Ergebnisse für eine oder mehrere Ausführungen des Machine Learning-Trainings. Experimente sind einem bestimmten Arbeitsbereich zugeordnet. Wenn ein Experiment zum ersten Mal erstellt wird, wird dessen Name im Arbeitsbereich registriert. Alle darauffolgenden Ausführungen werden – sofern derselbe Experimentname verwendet wird – als Teil desselben Experiments protokolliert. Andernfalls wird ein neues Experiment erstellt.

Wählen Sie im Dialogfeld „Neues Experiment erstellen“ in der Dropdownliste Abonnement Ihr Abonnement aus.

Arbeitsbereich erstellen

Ein Arbeitsbereich ist eine Azure Machine Learning-Ressource, die einen zentralen Ort für alle Azure Machine Learning-Ressourcen und Artefakte bietet, die im Rahmen einer Trainingsausführung erstellt werden.

  1. Wählen Sie im Dialogfeld „Neues Experiment erstellen“ neben der Dropdownliste Name des Machine Learning-Arbeitsbereichs den Link Neu aus.

  2. Geben Sie im Dialogfeld „Neuen Arbeitsbereich erstellen“ den Text „landuse-wkspc“ in das Textfeld Name des Machine Learning-Arbeitsbereichs ein.

  3. Wählen Sie in der Dropdownliste Regionen die Option USA, Osten aus. Eine Region ist der geografische Standort des Rechenzentrums, in dem Ihr Arbeitsbereich und Ihre Ressourcen bereitgestellt werden. Es wird empfohlen, einen Standort in Ihrer Nähe und nahe bei Ihren Kunden zu wählen.

  4. Wählen Sie neben der Dropdownliste Ressourcengruppen den Link Neu aus.

    1. Geben Sie im Dialogfeld „Neue Ressourcengruppe erstellen“ im Textfeld Name der Ressourcengruppe den Namen „landuse-rg“ ein.
    2. Klicken Sie auf OK.
  5. Wählen Sie Ihre neu erstellte Ressourcengruppe aus der Dropdownliste Ressourcengruppen aus.

  6. Klicken Sie auf Erstellen.

    Der Bereitstellungsprozess dauert einige Minuten. An Azure wird eine Anforderung zur Bereitstellung der folgenden Cloudressourcen gestellt:

    • Azure Machine Learning-Arbeitsbereich
    • Azure Storage-Konto
    • Azure Application Insights
    • Azure Container Registry
    • Azure Key Vault
  7. Nachdem der Bereitstellungsvorgang abgeschlossen ist, wählen Sie im Dialogfeld „Neues Experiment erstellen“ in der Dropdownliste Name des Machine Learning-Arbeitsbereichs Ihren neu erstellten Arbeitsbereich aus.

Erstellen von Computeressourcen

Eine Azure Machine Learning-Compute-Instanz ist eine cloudbasierte Linux-VM für das Training.

  1. Wählen Sie im Dialogfeld „Neues Experiment erstellen“ neben der Dropdownliste Name der Computeressource den Link Neu aus.
  2. Geben Sie im Dialogfeld „Neue Computeressource erstellen“ im Textfeld Name der Computeressource den Namen „landuse-cpt“ ein.
  3. Wählen Sie in der Dropdownliste Computegröße den Eintrag Standard_NC24 aus. Model Builder verwendet GPU-optimierte Computetypen. Weitere Details zu GPU-optimierten Computetypen finden Sie in der Linux-VM-Dokumentation zur NC-Serie.
  4. Klicken Sie auf Erstellen. Die Bereitstellung der Computeressourcen kann einige Minuten dauern.
  5. Nachdem der Bereitstellungsvorgang abgeschlossen ist, wählen Sie im Dialogfeld „Neues Experiment erstellen“ in der Dropdownliste Name der Computeressource Ihren neu erstellten Arbeitsbereich aus.
  6. Wählen Sie die Schaltfläche Nächster Schritt aus, um die Daten zu laden.

Laden der Daten

  1. Wählen Sie im Datenschritt des Model Builder-Tools die Schaltfläche neben dem Textfeld Ordner auswählen aus.
  2. Verwenden Sie den Datei-Explorer, um das entzippte Verzeichnis mit den Bildern zu suchen und auszuwählen.
  3. Klicken Sie auf die Schaltfläche Nächster Schritt, um im Model Builder-Tool zum nächsten Schritt zu gelangen.

Trainieren des Modells

Das Training in Azure ist nur für das Bildklassifizierungsszenario für den Modellgenerator verfügbar. Der zum Trainieren dieses Modells verwendete Algorithmus ist ein Deep Neural Network und basiert auf der ResNet50-Architektur. Während des Modelltrainings trainiert Model Builder einzelne Modelle mithilfe des ResNet50-Algorithmus und der zugehörigen Einstellungen, um das leistungsfähigste Modell für Ihr Dataset zu finden.

Starten des Trainings

Nachdem Sie Ihren Arbeitsbereich und Computetyp konfiguriert haben, können Sie die Erstellung des Experiments abschließen und mit dem Training beginnen.

  1. Klicken Sie auf die Schaltfläche Training starten.

    Der Trainingsprozess nimmt einige Zeit in Anspruch. Diese Zeitspanne kann je nach Computegröße und Datenmenge variieren. Wenn ein Modell zum ersten Mal trainiert wird, können Sie eine etwas längere Trainingszeit erwarten, da erst Ressourcen bereitgestellt werden müssen. Sie können den Fortschritt Ihrer Ausführungen verfolgen, indem Sie in Visual Studio den Link Aktuelle Ausführung im Azure-Portal überwachen auswählen.

    Während des gesamten Trainingsprozesses werden die Fortschrittsdaten im Abschnitt „Fortschritt“ des Trainingsschritts angezeigt.

    • „Status“ zeigt den Abschlussstatus des Trainingsprozesses an.
    • „Beste Genauigkeit“ zeigt die Genauigkeit des leistungsfähigsten Modells, das bisher von Model Builder gefunden wurde. Eine höhere Genauigkeit bedeutet, dass die Vorhersage des Modells anhand der Testdaten präziser ist.
    • „Algorithmus“ zeigt den Namen des leistungsfähigsten Algorithmus an, der bisher von Model Builder gefunden wurde.
  2. Wählen Sie nach Abschluss des Trainings die Schaltfläche Nächster Schritt aus, um mit der Auswertung des Modells fortzufahren.

Auswerten des Modells

Das Ergebnis des Trainingsschritts ist das Modell mit der besten Leistung. Im Auswertungsschritt des Model Builder-Tools enthält die Registerkarte Details im Ausgabebereich im Eintrag Algorithmus den Algorithmus, der von dem Modell mit der besten Leistung verwendet wird. In den Details zu Bestes Modell sind im Eintrag Genauigkeit zudem Metriken aufgeführt.

Wenn Sie mit den Genauigkeitsmetriken nicht zufrieden sind, gibt es einige einfache Möglichkeiten, die Modellgenauigkeit zu verbessern, indem Sie beispielsweise die Datenmenge erhöhen oder die vorhandenen Daten verbessern. Wählen Sie andernfalls die Schaltfläche Nächster Schritt aus, um zum letzten Schritt im Model Builder-Tool zu gelangen.

(Optional) Nutzen des Modells

Dieser Schritt enthält Projektvorlagen, mit denen Sie das Modell nutzen können. Dieser Schritt ist optional, und Sie können die Methode auswählen, die Ihren Anforderungen, das Modell zu bedienen, am besten entspricht.

  • Konsolen-App
  • Web-API

Konsolen-App

Wenn Sie Ihrer Projektmappe eine Konsolen-App hinzufügen, werden Sie aufgefordert, das Projekt zu benennen.

  1. Nennen Sie das Konsolenprojekt LandUse_Console.

  2. Klicken Sie auf Zu Projektmappe hinzufügen, um das Projekt Ihrer aktuellen Projektmappe hinzuzufügen.

  3. Führen Sie die Anwendung aus.

    Die vom Programm generierte Ausgabe sollte wie der folgende Ausschnitt aussehen:

    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]
    

Web-API

Wenn Sie Ihrer Projektmappe eine Web-App hinzufügen, werden Sie aufgefordert, das Projekt zu benennen.

  1. Nennen Sie das Web-API-Projekt LandUse_API.

  2. Klicken Sie auf Zu Projektmappe hinzufügen, um das Projekt Ihrer aktuellen Projektmappe hinzuzufügen.

  3. Führen Sie die Anwendung aus.

  4. Öffnen Sie PowerShell, und geben Sie den folgenden Code ein, wobei PORT der Port ist, auf dem Ihre Anwendung lauscht.

    $body = @{
         ImageSource = <Image location on your local machine>
    }
    
     Invoke-RestMethod "https://localhost:<PORT>/predict" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
    
  5. Bei erfolgreicher Ausführung sollte die Ausgabe dem folgenden Text ähneln.

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

Bereinigen von Ressourcen

Wenn Sie die von Ihnen erstellten Azure-Ressourcen nicht mehr verwenden möchten, löschen Sie sie. Dadurch wird verhindert, dass Ihnen nicht genutzte Ressourcen, die noch aktiv sind, in Rechnung gestellt werden.

  1. Navigieren Sie zum Azure-Portal,, und wählen Sie Ressourcengruppen im Portalmenü aus.
  2. Wählen Sie aus der Liste der Ressourcengruppen die Ressourcengruppe aus, die Sie erstellt haben. In diesem Fall heißt sie „landuse-rg“.
  3. Klicken Sie auf Ressourcengruppe löschen.
  4. Geben Sie den Ressourcengruppennamen „landuse-rg“ in das Textfeld ein, und drücken Sie dann EINGABE.

Nächste Schritte

In diesem Tutorial haben Sie Folgendes gelernt:

  • Vorbereiten und Verstehen der Daten
  • Erstellen einer Model Builder-Konfigurationsdatei
  • Auswählen eines Szenarios
  • Laden der Daten
  • Erstellen eines Experiments in Azure
  • Trainieren des Modells
  • Evaluieren des Modells
  • Nutzen des Modells

Probieren Sie eines der anderen Model Builder-Szenarien aus: