Ausführen von Python-Skripts

Wichtig

Der Support für Machine Learning Studio (klassisch) endet am 31. August 2024. Es wird empfohlen, bis zu diesem Datum auf Azure Machine Learning umzustellen.

Ab dem 1. Dezember 2021 können Sie keine neuen Ressourcen in Machine Learning Studio (klassisch) mehr erstellen. Bis zum 31. August 2024 können Sie die vorhandenen Ressourcen in Machine Learning Studio (klassisch) weiterhin verwenden.

Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.

Führt ein Python-Skript aus einem Machine Learning Experiment aus.

Kategorie: Python-Sprachmodule

Hinweis

Giltnur für: Machine Learning Studio (klassisch)

Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.

Modulübersicht

In diesem Artikel wird beschrieben, wie Sie das Execute Python Script-Modul in Machine Learning Studio (klassisch) verwenden, um Python-Code auszuführen. Weitere Informationen zu den Architektur- und Designprinzipien von Python in Studio (klassisch) finden Sie im folgenden Artikel.

Mit Python können Sie Aufgaben ausführen, die derzeit nicht von vorhandenen (klassischen) Studio-Modulen unterstützt werden, z. B.:

  • Visualisieren von Daten mit matplotlib
  • Verwenden von Python-Bibliotheken zum Auflisten von Datasets und Modellen in Ihrem Arbeitsbereich
  • Lesen, Laden und Bearbeiten von Daten aus Quellen, die vom Modul Daten importieren nicht unterstützt werden

Machine Learning Studio (klassisch) verwendet die Anaconda-Verteilung von Python, die viele gängige Dienstprogramme für die Datenverarbeitung enthält.

Verwenden des Execute Python-Skripts

Das Modul Execute Python Script enthält Python-Beispielcode, den Sie als Ausgangspunkt verwenden können. Um das Modul Python-Skript ausführen zu konfigurieren, geben Sie einen Satz von Eingaben und auszuführenden Python-Code im Textfeld Pytho-Skript ein.

  1. Fügen Sie Ihrem Experiment das Modul Python-Skript ausführen hinzu.

  2. Scrollen Sie nach unten im Eigenschaftenbereich , und wählen Sie für Python-Version die Version der Python-Bibliotheken und -Laufzeit aus, die im Skript verwendet werden soll.

    • Anaconda 2.0-Verteilung für Python 2.7.7
    • Anaconda 4.0-Verteilung für Python 2.7.11
    • Anaconda 4.0-Verteilung für Python 3.5 (Standard)

    Es wird empfohlen, die Version vor der Eingabe eines neuen Codes festzulegen. Wenn Sie die Version später ändern, fordert Sie eine Aufforderung auf, die Änderung zu bestätigen.

    Wichtig

    Wenn Sie mehrere Instanzen des Execute Python Script-Moduls in Ihrem Experiment verwenden, müssen Sie eine einzelne Version von Python für alle Module im Experiment auswählen.

  3. Fügen Sie dataset1 beliebige Datasets aus Studio (klassisch) hinzu, die Sie für die Eingabe verwenden möchten, und verbinden Sie sie. Verweisen Sie auf dieses Dataset in Ihrem Python-Skript als DataFrame1.

    Die Verwendung eines Datasets ist optional, wenn Sie Daten mithilfe von Python generieren oder Python-Code zum direkten Importieren der Daten in das Modul verwenden möchten.

    Dieses Modul unterstützt das Hinzufügen eines zweiten Studio-Datasets (klassisches) Dataset2. Verweisen Sie auf das zweite Dataset in ihrem Python-Skript als „DataFrame2“.

    Datasets, die in Studio (klassisch) gespeichert sind, werden automatisch in Pandas data.frames konvertiert, wenn sie mit diesem Modul geladen werden.

    Execute Python input map

  4. Um neue Python-Pakete oder Code einzuschließen, fügen Sie die ZIP-Datei, die diese benutzerdefinierten Ressourcen enthält, in Script bundle (Skriptbundle) hinzu. Die Eingabe in Script bundle muss eine ZIP-Datei sein, die bereits in Ihren Arbeitsbereich hochgeladen wurde. Weitere Informationen zum Vorbereiten und Hochladen dieser Ressourcen finden Sie unter "Zipped Data".

    Während der Ausführung des Experiments kann jede Datei verwendet werden, die im hochgeladenen ZIP-Archiv enthalten ist. Wenn das Archiv eine Verzeichnisstruktur enthält, bleibt die Struktur erhalten, Sie müssen dem Pfad aber ein Verzeichnis mit dem Namen src voranstellen.

  5. Geben oder fügen Sie in das Textfeld Python script (Python-Skript) ein gültiges Python-Skript ein.

    Das Textfeld Python script (Python-Skript) ist mit einigen Anweisungen in Kommentaren und Beispielcode für den Datenzugriff und die Datenausgabe voraufgefüllt. Sie müssen diesen Code bearbeiten oder ersetzen. Achten Sie darauf, die Python-Konventionen zu Einzug und Schreibweise zu beachten.

    • Das Skript muss eine Funktion mit dem Namen azureml_main als Einstiegspunkt für dieses Modul enthalten.
    • Die Einstiegspunktfunktion kann bis zu zwei Eingabeargumente enthalten: Param<dataframe1> und Param<dataframe2>
    • ZIP-Dateien, die mit dem dritten Eingabeport verbunden sind, werden entzippt und im Verzeichnis .\Script Bundle gespeichert, das dem Python-sys.path ebenfalls hinzugefügt wird.

    Wenn Ihre ZIP-Datei mymodule.py enthält, importieren Sie sie daher mit import mymodule.

    • Ein einzelnes Dataset kann in Studio (klassisch) zurückgegeben werden, was eine Abfolge des Typs pandas.DataFramesein muss. Sie können andere Ausgaben in Ihrem Python-Code erstellen und direkt in Azure-Speicher schreiben oder Visualisierungen mithilfe des Python-Geräts erstellen.
  6. Führen Sie das Experiment aus, oder wählen Sie das Modul aus, und klicken Sie auf Run selected (Auswahl ausführen), um nur das Python-Skript auszuführen.

    Alle Daten und der gesamte Code werden in einen virtuellen Computer geladen und unter Verwendung der angegebenen Python-Umgebung ausgeführt.

Ergebnisse

Das Modul gibt die folgenden Ausgaben zurück:

  • Results-Dataset. Die Ergebnisse aller vom eingebetteten Python-Code ausgeführten Berechnungen müssen als Pandas data.frame bereitgestellt werden, der automatisch in das Machine Learning Datasetformat konvertiert wird, damit Sie die Ergebnisse mit anderen Modulen im Experiment verwenden können. Das Modul ist auf ein einzelnes Dataset als Ausgabe beschränkt. Weitere Informationen finden Sie in der Datentabelle.

  • Python Device.    Diese Ausgabe unterstützt die Ausgabe in der Konsole und die Anzeige von PNG-Grafiken mit dem Python-Interpreter.

So fügen Sie Skriptressourcen an

Das Execute Python Script-Modul unterstützt beliebige Python-Skriptdateien als Eingaben, sofern sie im Voraus vorbereitet und im Rahmen einer .ZIP-Datei in Ihren Arbeitsbereich hochgeladen werden.

Hochladen eine ZIP-Datei mit Python-Code in Ihrem Arbeitsbereich

  1. Klicken Sie im Experimentbereich von Machine Learning Studio (klassisch) auf Datasets, und klicken Sie dann auf "Neu".

  2. Wählen Sie die Option "Aus lokaler Datei" aus.

  3. Klicken Sie im Dialogfeld Hochladen eines neuen Datasets auf die Dropdownliste, um einen Typ für das neue Dataset auszuwählen, und wählen Sie die Zip-Datei (.zip) aus.

  4. Klicken Sie auf "Durchsuchen ", um die ZIP-Datei zu suchen.

  5. Geben Sie einen neuen Namen für die Verwendung im Arbeitsbereich ein. Der Name, den Sie dem Dataset zuweisen, wird zum Namen des Ordners in Ihrem Arbeitsbereich, in dem die enthaltenen Dateien extrahiert werden.

  6. Nachdem Sie das zipped-Paket in Studio (klassisch) hochgeladen haben, überprüfen Sie, ob die zippede Datei in der Liste gespeicherter Datasets verfügbar ist, und verbinden Sie das Dataset dann mit dem Eingabeport "Script Bundle ".

    Alle Dateien, die in der ZIP-Datei enthalten sind, sind zur Verwendung während der Laufzeit verfügbar: Beispieldaten, Skripts oder neue Python-Pakete.

    Wenn Ihre ZIP-Datei Bibliotheken enthält, die nicht bereits in Machine Learning Studio (klassisch) installiert sind, müssen Sie das Python-Bibliothekspaket als Teil Ihres benutzerdefinierten Skripts installieren.

    Wenn eine Verzeichnisstruktur vorhanden ist, wird sie beibehalten. Sie müssen ihren Code jedoch ändern, um den Verzeichnis-Src auf den Pfad vorzugestellt zu haben.

Debuggen von Python-Code

Das Execute Python Script-Modul funktioniert am besten, wenn der Code als Funktion mit eindeutig definierten Eingaben und Ausgaben statt einer Sequenz von lose verwandten ausführbaren Anweisungen verwendet wurde.

Dieses Python-Modul unterstützt keine Features wie IntelliSense und Debugging. Wenn das Modul zur Laufzeit fehlschlägt, können Sie einige Fehlerdetails im Ausgabeprotokoll für das Modul anzeigen. Die vollständige Python-Stapelablaufverfolgung ist jedoch nicht verfügbar. Daher wird empfohlen, dass Benutzer ihre Python-Skripts in einer anderen Umgebung entwickeln und debuggen und dann den Code in das Modul importieren.

Einige häufige Probleme, nach denen Sie suchen können:

  • Überprüfen Sie die Datentypen im Datenframe, von azureml_maindem Sie zurückkehren. Fehler sind wahrscheinlich, wenn Spalten andere Datentypen als numerische Typen und Zeichenfolgen enthalten.

  • Entfernen Sie NA-Werte aus Ihrem Dataset, indem dataframe.dropna() Sie das Python-Skript exportieren. Verwenden Sie beim Vorbereiten Ihrer Daten das Modul "Fehlende Daten bereinigen" .

  • Überprüfen Sie Ihren eingebetteten Code auf Einzugs- und Leerzeichenfehler. Wenn Sie den Fehler "IndentationError: erwartet einen eingerückten Block" erhalten, finden Sie in den folgenden Ressourcen Anleitungen:

Bekannte Einschränkungen

  • Die Python-Laufzeit ist Sandkasten und erlaubt keinen Zugriff auf das Netzwerk oder das lokale Dateisystem auf dauerhafte Weise.

  • Alle lokal gespeicherten Dateien sind isoliert und werden nach Abschluss des Moduls gelöscht. Auf dem Computer, auf dem er ausgeführt wird, kann der Python-Code nur auf das aktuelle Verzeichnis und die zugehörigen Unterverzeichnisse zugreifen.

    Wenn Sie eine ZIP-Datei als Ressource bereitstellen, werden die Dateien aus Ihrem Arbeitsbereich in den Ausführungsbereich des Experiments kopiert, entpackt und dann verwendet. Das Kopieren und Entpacken von Ressourcen kann Arbeitsspeicher nutzen.

  • Das Modul kann einen einzelnen Datenrahmen ausgeben. Es ist nicht möglich, beliebige Python-Objekte wie trainierte Modelle direkt zur Studio-Laufzeit zurückzugeben. Sie können jedoch Objekte in den Speicher oder in den Arbeitsbereich schreiben. Eine weitere Option besteht darin, pickle mehrere Objekte in ein Bytearray zu serialisieren und dann das Array innerhalb eines Datenrahmens zurückzugeben.

Beispiele

Beispiele für die Integration von Python-Skripts mit Studio-Experimenten (klassische) finden Sie in den folgenden Ressourcen im Azure AI Gallery:

Siehe auch

R Language Modules