Tutorial: Erste Schritte mit einem Python-Skript in Azure Machine Learning (SDK v1, Teil 1 von 3)
GILT FÜR: Python SDK azureml v1
In diesem Tutorial führen Sie Ihr erstes Python-Skript in der Cloud mit Azure Machine Learning aus. Dieses Tutorial ist der Teil 1 einer zweiteiligen Reihe.
In diesem Tutorial wird die Komplexität des Trainings eines Machine Learning-Modells vermieden. Sie führen das Python-Skript „Hallo Welt“ in der Cloud aus. Sie erfahren, wie ein Steuerskript verwendet wird, um eine Ausführung in Azure Machine Learning zu konfigurieren und zu erstellen.
In diesem Tutorial wird Folgendes vermittelt:
- Erstellen und Ausführen eines „Hallo Welt“-Python-Skripts
- Erstellen eines Python-Steuerungsskripts zum Übermitteln von „Hallo Welt“ an Azure Machine Learning
- Verstehen der Azure Machine Learning Konzepte im Steuerungsskript.
- Übermitteln und Ausführen des „Hallo Welt“-Skripts
- Anzeigen Ihrer Codeausgabe in der Cloud
Voraussetzungen
- Schließen Sie Erstellen Sie Ressourcen, die Sie für die ersten Schritte benötigen ab, um einen Arbeitsbereich und eine Compute-Instanz zur Verwendung in dieser Tutorialreihe zu erstellen.
-
- Erstellen eines cloudbasierten Computeclusters. Nennen Sie ihn „cpu-cluster“, um dem Code in diesem Tutorial zu entsprechen.
Erstellen und Ausführen eines Python-Skripts
In diesem Tutorial wird die Compute-Instanz als Entwicklungscomputer verwendet. Erstellen Sie zunächst einige Ordner und das Skript:
- Melden Sie sich bei Azure Machine Learning Studio an und wählen Sie dann nach Aufforderung den Arbeitsbereich aus.
- Wählen Sie links Notebooks aus.
- Wählen Sie auf der Symbolleiste Dateien die Option + aus und wählen Sie dann Neuen Ordner erstellen aus.
- Nennen Sie den Ordner get-started.
- Verwenden Sie rechts vom Ordnernamen ... , um unter get-started einen weiteren Ordner zu erstellen.
- Nennen Sie den neuen Ordner scr. Verwenden Sie den Link Speicherort bearbeiten, wenn der Speicherort der Datei nicht richtig ist.
- Verwenden Sie rechts neben dem src-Ordner ... , um eine neue Datei im src-Ordner zu erstellen.
- Geben Sie ihrer Datei den Namen hello.py. Ändern Sie den Dateityp in Python ( .py)*.
Kopieren Sie diesen Code in Ihre Datei:
# src/hello.py
print("Hello world!")
Ihre Ordnerverzeichnisstruktur sieht nun wie folgt aus:
Testen Sie Ihr Skript
Sie können Ihren Code lokal ausführen, in diesem Fall auf der Compute-Instanz. Das lokale Ausführen von Code hat den Vorteil, dass Sie Code interaktiv debuggen.
Wenn Sie Ihre Compute-Instanz zuvor beendet haben, starten Sie sie jetzt mit dem Computetool rechts von der Compute-Dropdownliste. Warten Sie etwa eine Minute, bis der Status Wird ausgeführt lautet.
Wählen Sie Skript speichern und im Terminal ausführen aus, um das Skript auszuführen.
Die Ausgabe des Skripts wird in dem Terminalfenster, das geöffnet wird, angezeigt. Schließen Sie die Registerkarte, und wählen Sie Beenden aus, um die Sitzung zu schließen.
Erstellen eines Steuerungsskripts
Mit einem Steuerskript können Sie Ihr hello.py
Skript auf verschiedenen Computeressourcen ausführen. Sie verwenden das Steuerungsskript, um zu steuern, wie und wo Ihr Machine Learning-Code ausgeführt wird.
Wählen Sie am Ende des Ordners get-started die Option ... aus, um eine neue Datei zu erstellen. Erstellen Sie eine neue Python-Datei mit dem Namen run-hello.py, kopieren Sie den folgenden Code, und fügen Sie ihn in diese Datei ein:
# get-started/run-hello.py
from azureml.core import Workspace, Experiment, Environment, ScriptRunConfig
ws = Workspace.from_config()
experiment = Experiment(workspace=ws, name='day1-experiment-hello')
config = ScriptRunConfig(source_directory='./src', script='hello.py', compute_target='cpu-cluster')
run = experiment.submit(config)
aml_url = run.get_portal_url()
print(aml_url)
Tipp
Wenn Sie beim Erstellen ihres Computeclusters einen anderen Namen verwendet haben, stellen Sie sicher, dass Sie auch den Namen im Code compute_target='cpu-cluster'
anpassen.
Grundlegendes zum Code
Eine kurze Beschreibung zur Funktionsweise des Steuerungsskripts:
ws = Workspace.from_config()
Workspace stellt eine Verbindung mit Ihrem Azure Machine Learning-Arbeitsbereich her, so dass Sie mit Ihren Azure Machine Learning-Ressourcen kommunizieren können.
experiment = Experiment( ... )
Experiment bietet eine einfache Möglichkeit, mehrere Jobs unter einem einzigen Namen zu organisieren. Später können Sie sehen, wie Experimente es einfach machen, Metriken zwischen Dutzenden von Jobs zu vergleichen.
config = ScriptRunConfig( ... )
ScriptRunConfig umschließt Ihren hello.py
-Code und übergibt ihn an Ihren Arbeitsbereich. Wie der Name schon nahelegt, können Sie diese Klasse verwenden, um die Ausführung Ihres Skripts in Azure Machine Learning zu konfigurieren. Außerdem wird angegeben, auf welchem Computeziel das Skript ausgeführt wird. In diesem Code ist das Ziel der Computecluster, den Sie im Setup-Tutorial erstellt haben.
run = experiment.submit(config)
Übermittelt Ihr Skript. Diese Übermittlung wird als Ausführung bezeichnet. In v2 wurde es in einen Auftrag umbenannt. Eine Ausführung/Auftrag kapselt eine einzelne Ausführung Ihres Codes. Verwenden Sie einen Auftrag, um den Status Ihres Skripts zu überwachen, die Ausgabe zu erfassen, die Ergebnisse zu analysieren, die Metriken zu visualisieren und mehr.
aml_url = run.get_portal_url()
Das run
-Objekt stellt ein Handle für die Ausführung Ihres Codes bereit. Überwachen Sie den Status in Azure Machine Learning Studio mit der URL, die vom Python-Skript ausgegeben wird.
Übermitteln und Ausführen Ihres Codes in der Cloud
Wählen Sie Speichern und Ausführen des Skripts im Terminal aus, um Ihr Steuerungsskript auszuführen, das seinerseits
hello.py
auf dem Computecluster ausführt, den Sie im Setup-Tutorial erstellt haben.Im Terminal werden Sie möglicherweise aufgefordert, sich anzumelden, um sich zu authentifizieren. Kopieren Sie den Code, und folgen Sie dem Link, um diesen Schritt abzuschließen.
Nachdem Sie authentifiziert wurden, wird im Terminal ein Link angezeigt. Wählen Sie den Link aus, um den Auftrag anzuzeigen.
Überwachen Ihres Codes in der Cloud in Studio
Die Ausgabe Ihres Skripts enthält einen Link zu Studio, der etwa wie folgt aussieht: https://ml.azure.com/experiments/hello-world/runs/<run-id>?wsid=/subscriptions/<subscription-id>/resourcegroups/<resource-group>/workspaces/<workspace-name>
.
Klicken Sie auf den Link. Zunächst sehen Sie den Status In der Warteschlange oder Wird vorbereitet. Die erste Ausführung dauert 5 bis 10 Minuten. Dies hat folgende Ursachen:
- Ein Docker-Image wird in der Cloud erstellt.
- Die Größe des Computeclusters wird von 0 in 1 Knoten geändert.
- Das Docker-Image wird in den Computecluster heruntergeladen.
Nachfolgende Aufträge sind viel schneller (etwa 15 Sekunden), weil das Docker-Image auf dem Computer zwischengespeichert wird. Sie können dies testen, indem Sie den folgenden Code erneut übermitteln, nachdem der erste Auftrag abgeschlossen wurde.
Warten Sie ca. 10 Minuten. Sie sehen eine Nachricht, dass der Auftrag abgeschlossen ist. Verwenden Sie dann Aktualisieren, um die Statusänderung in Abgeschlossenzu ändern. Navigieren Sie nach Abschluss des Auftrags zur Registerkarte Ausgaben und Protokolle. Dort finden Sie eine Datei std_log.txt
im Ordner user_logs
. Die Ausgabe Ihres Skripts befindet sich in dieser Datei.
Die Ordner azureml-logs
und system-logs
enthalten Dateien, die nützlich sein können, wenn Sie Remoteaufträge in der Cloud debuggen.
Nächster Schritt
In diesem Tutorial haben Sie ein einfaches „Hallo Welt“-Skript in Azure ausgeführt. Sie haben erfahren, wie Sie die Verbindung mit Ihrem Azure Machine Learning-Arbeitsbereich herstellen, ein Experiment erstellen und Ihren hello.py
-Code in die Cloud übermitteln.
Im nächsten Tutorial bauen Sie auf dem Gelernten auf, indem Sie etwas Interessanteres als print("Hello world!")
ausführen.
Hinweis
Wenn Sie die Tutorialreihe hier beenden und nicht mit dem nächsten Schritt fortfahren möchten, sollten Sie nicht vergessen, Ihre Ressourcen zu bereinigen.