Tutorial: Trainieren eines TensorFlow-Modells für die Bildklassifizierung mit der Azure Machine Learning-Erweiterung für Visual Studio Code (Vorschau)

GILT FÜRAzure CLI-ML-Erweiterung v2 (aktuell)

Hier erfahren Sie, wie Sie mit TensorFlow und der Azure Machine Learning-Erweiterung für Visual Studio Code ein Bildklassifizierungsmodell für die Erkennung handgeschriebener Ziffern trainieren.

Wichtig

Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar.

Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

In diesem Tutorial lernen Sie Folgendes:

  • Grundlegendes zum Code
  • Erstellen eines Arbeitsbereichs
  • Trainieren eines Modells

Voraussetzungen

Grundlegendes zum Code

Der Code für dieses Tutorial verwendet TensorFlow zum Trainieren eines Machine Learning-Modells für die Bildklassifizierung, das handgeschriebene Ziffern von 0 bis 9 kategorisiert. Dazu wird ein neuronales Netzwerk erstellt, das die Pixelwerte eines Bilds mit 28 px × 28 px als Eingabe verwendet und eine Liste mit zehn Wahrscheinlichkeiten ausgibt, eine für jede der zu klassifizierenden Ziffern. Dies ist ein Beispiel dafür, wie die Daten aussehen.

MNIST Digits

Erstellen eines Arbeitsbereichs

Als Erstes müssen Sie einen Arbeitsbereich erstellen, damit Sie eine Anwendung in Azure Machine Learning erstellen können. Ein Arbeitsbereich enthält die Ressourcen zum Trainieren von Modellen sowie die trainierten Modelle selbst. Weitere Informationen finden Sie unter Was ist ein Arbeitsbereich?.

  1. Öffnen Sie das Verzeichnis azureml-examples/cli/jobs/single-step/tensorflow/mnist im Communityrepository in Visual Studio Code.

  2. Wählen Sie auf der Aktivitätsleiste von Visual Studio Code das Azure-Symbol aus, um die Azure Machine Learning-Ansicht zu öffnen.

  3. Klicken Sie in der Azure Machine Learning-Ansicht mit der rechten Maustaste auf Ihren Abonnementknoten, und wählen Sie Arbeitsbereich erstellen aus.

    Create workspace

  4. Eine Spezifikationsdatei wird angezeigt. Konfigurieren Sie die Spezifikationsdatei mit den folgenden Optionen.

    $schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
    name: TeamWorkspace
    location: WestUS2
    display_name: team-ml-workspace
    description: A workspace for training machine learning models
    tags:
      purpose: training
      team: ml-team
    

    Die Spezifikationsdatei erstellt einen Arbeitsbereich namens TeamWorkspace in der Region WestUS2. Mit den restlichen Optionen, die in der Spezifikationsdatei definiert sind, werden benutzerfreundliche Namen, Beschreibungen und Tags für den Arbeitsbereich angegeben.

  5. Klicken Sie mit der rechten Maustaste auf die Spezifikationsdatei, und wählen Sie AzureML: YAML ausführen aus. Beim Erstellen einer Ressource werden die Konfigurationsoptionen verwendet, die in der YAML-Spezifikationsdatei definiert sind, und über die CLI (v2) wird ein Auftrag übermittelt. An diesem Punkt wird eine Anforderung zum Erstellen eines neuen Arbeitsbereichs und der abhängigen Ressourcen in Ihrem Konto an Azure gesendet. Nach einigen Minuten wird der neue Arbeitsbereich in Ihrem Abonnementknoten angezeigt.

  6. Wählen Sie TeamWorkspace als Standardarbeitsbereich aus. Die von Ihnen erstellten Ressourcen und Aufträge werden dann standardmäßig im Arbeitsbereich platziert. Wählen Sie in der Visual Studio Code-Statusleiste die Schaltfläche Azure Machine Learning-Arbeitsbereich festlegen aus, und befolgen Sie die Anweisungen zum Festlegen von TeamWorkspace als Standardarbeitsbereich.

Weitere Informationen zu Arbeitsbereichen finden Sie im Artikel zum Verwalten von Ressourcen in VS Code.

Trainieren des Modells

Während des Trainingsprozesses wird ein TensorFlow-Modell trainiert, indem die darin eingebetteten Trainingsdaten und Lernmuster für die einzelnen zu klassifizierenden Ziffern verarbeitet werden.

Trainingsaufträge werden mit Ressourcenvorlagen definiert, wie dies auch bei Arbeitsbereichen und Computezielen der Fall ist. Bei diesem Beispiel wird die Spezifikation in der Datei job.yml definiert, die wie folgt aussieht:

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >
    python train.py
environment: azureml:AzureML-tensorflow-2.4-ubuntu18.04-py37-cuda11-gpu:48
resources:
   instance_type: Standard_NC12
   instance_count: 3
experiment_name: tensorflow-mnist-example
description: Train a basic neural network with TensorFlow on the MNIST dataset.

Mit dieser Spezifikationsdatei wird ein Trainingsauftrag mit dem Namen tensorflow-mnist-example an das vor Kurzem erstellte Computeziel gpu-cluster übermittelt, das den Code im Python-Skript train.py ausführt. Hierbei wird eine der zusammengestellten Umgebungen verwendet, die von Azure Machine Learning bereitgestellt werden. Sie enthält TensorFlow und andere Softwareabhängigkeiten, die zum Ausführen des Trainingsskripts erforderlich sind. Weitere Informationen zu zusammengestellten Umgebungen finden Sie unter Azure Machine Learning – Zusammengestellte Umgebungen.

Übermitteln Sie den Trainingsauftrag wie folgt:

  1. Öffnen Sie die Datei job.yml.
  2. Klicken Sie im Text-Editor mit der rechten Maustaste auf die Datei, und wählen Sie AzureML: YAML ausführen aus.

Jetzt wird eine Anforderung zum Ausführen Ihres Experiments auf dem ausgewählten Computeziel in Ihrem Arbeitsbereich an Azure gesendet. Dieser Vorgang dauert einige Minuten. Die Zeitspanne für die Ausführung des Trainingsauftrags ist von mehreren Faktoren abhängig, wie z. B. dem Computetyp und der Größe der Trainingsdaten. Wenn Sie den Status des Experiments nachverfolgen möchten, klicken Sie mit der rechten Maustaste auf den aktuellen Ausführungsknoten, und wählen Sie Auftrag im Azure-Portal anzeigen aus.

Wenn das Dialogfeld mit der Anforderung zum Öffnen einer externen Website angezeigt wird, wählen Sie Öffnen aus.

Track experiment progress

Wenn das Modell mit dem Training fertig ist, wird die Statusbezeichnung neben dem Ausführungsknoten in „Abgeschlossen“ geändert.

Nächste Schritte