Freigeben über


PythonScriptStep Klasse

Erstellt einen Azure ML-Pipelineschritt, in dem das Python-Skript ausgeführt wird.

Ein Beispiel für die Verwendung von PythonScriptStep finden Sie im Notebook https://aka.ms/pl-get-started.

Erstellen Sie einen Azure ML-Pipelineschritt, in dem ein Python-Skript ausgeführt wird.

Vererbung
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
PythonScriptStep

Konstruktor

PythonScriptStep(script_name, name=None, arguments=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None, hash_paths=None)

Parameter

Name Beschreibung
script_name
Erforderlich
str

[Erforderlich] Der Name eines Python-Skripts mit Bezug zu source_directory.

name
str

Der Name des Schritts. Wenn keine Angabe erfolgt, wird script_name verwendet.

Standardwert: None
arguments

Befehlszeilenargumente für die Python-Skriptdatei. Die Argumente werden über den arguments-Parameter in RunConfiguration an die Computeressource übergeben. Weitere Informationen zum Umgang mit Argumenten wie Sondersymbolen finden Sie unter RunConfiguration.

Standardwert: None
compute_target

[Erforderlich] Das zu verwendende Computeziel. Ohne Angabe wird das Ziel aus runconfig verwendet. Dieser Parameter kann als Computezielobjekt oder als Zeichenfolgenname eines Computeziels im Arbeitsbereich angegeben werden. Wenn das Computeziel zum Zeitpunkt der Pipelineerstellung nicht verfügbar ist, können Sie optional ein Tupel von („Computezielname“, „Computezieltyp“) angeben, um das Abrufen des Computezielobjekts zu vermeiden (AmlCompute-Typ ist „AmlCompute“ und RemoteCompute-Typ ist „VirtualMachine“).

Standardwert: None
runconfig

Die optionale RunConfiguration, die verwendet werden soll. Eine RunConfiguration kann verwendet werden, um zusätzliche Anforderungen für die Ausführung festzulegen, z. B. Conda-Abhängigkeiten und ein Docker-Image. Wenn keine Angabe erfolgt, wird eine Standard-runconfig erstellt.

Standardwert: None
runconfig_pipeline_params

Außerkraftsetzungen von runconfig-Eigenschaften zur Laufzeit unter Verwendung von Schlüssel-Wert-Paaren mit jeweils dem Namen der runconfig-Eigenschaft und dem Pipelineparameter für diese Eigenschaft.

Unterstützte Werte: „NodeCount“, „MpiProcessCountPerNode“, „TensorflowWorkerCount“, „TensorflowParameterServerCount“

Standardwert: None
inputs

Eine Liste mit Eingabeportbindungen.

Standardwert: None
outputs

Eine Liste mit Ausgabeportbindungen.

Standardwert: None
params

Ein Wörterbuch mit Name/Wert-Paaren, die als Umgebungsvariablen mit „AML_PARAMETER_“ registriert sind.

Standardwert: None
source_directory
str

Ein Ordner, der Python-Skripts, die Conda-Umgebung und andere Ressourcen enthält, die im Schritt verwendet werden.

Standardwert: None
allow_reuse

Gibt an, ob bei dem Schritt vorherige Ergebnisse wiederverwendet werden sollen, wenn er mit den gleichen Einstellungen erneut ausgeführt wird. Die Wiederverwendung ist standardmäßig aktiviert. Wenn der Schrittinhalt (Skripts/Abhängigkeiten) sowie die Eingaben und Parameter unverändert bleiben, wird die Ausgabe der vorherigen Ausführung dieses Schritts wiederverwendet. Wenn Sie den Schritt wiederverwenden, anstatt den Auftrag zum Berechnen zu übermitteln, werden die Ergebnisse der vorherigen Ausführung sofort für alle nachfolgenden Schritte verfügbar gemacht. Wenn Sie Azure Machine Learning-Datasets als Eingaben verwenden, hängt die Wiederverwendung nicht davon ab, ob sich die zugrunde liegenden Daten geändert haben, sondern davon, ob sich die Definition des Datasets geändert hat.

Standardwert: True
version
str

Ein optionales Versionstag, um eine Änderung der Funktionalität für den Schritt zu kennzeichnen.

Standardwert: None
hash_paths

VERALTET: nicht mehr erforderlich.

Eine Liste der Pfade, die bei der Überprüfung auf Änderungen am Schrittinhalt gehasht werden sollen. Wenn keine Änderungen erkannt werden, verwendet die Pipeline den Schrittinhalt einer vorherigen Ausführung erneut. Für Inhalte von source_directory werden standardmäßig Hashwerte erstellt, mit Ausnahme der in „.amlignore“ und „.gitignore“ aufgeführten Dateien.

Standardwert: None
script_name
Erforderlich
str

[Erforderlich] Der Name eines Python-Skripts mit Bezug zu source_directory.

name
Erforderlich
str

Der Name des Schritts. Wenn keine Angabe erfolgt, wird script_name verwendet.

arguments
Erforderlich
[str]

Befehlszeilenargumente für die Python-Skriptdatei. Die Argumente werden über den arguments-Parameter in RunConfiguration an die Computeressource übergeben. Weitere Informationen zum Umgang mit Argumenten wie Sondersymbolen finden Sie unter RunConfiguration.

compute_target
Erforderlich

[Erforderlich] Das zu verwendende Computeziel. Ohne Angabe wird das Ziel aus runconfig verwendet. Dieser Parameter kann als Computezielobjekt oder als Zeichenfolgenname eines Computeziels im Arbeitsbereich angegeben werden. Wenn das Computeziel zum Zeitpunkt der Pipelineerstellung nicht verfügbar ist, können Sie optional ein Tupel von („Computezielname“, „Computezieltyp“) angeben, um das Abrufen des Computezielobjekts zu vermeiden (AmlCompute-Typ ist „AmlCompute“ und RemoteCompute-Typ ist „VirtualMachine“).

runconfig
Erforderlich

Die optionale RunConfiguration, die verwendet werden soll. RunConfiguration kann verwendet werden, um zusätzliche Anforderungen für die Ausführung anzugeben, z. B. Conda-Abhängigkeiten und ein Docker-Image. Wenn keine Angabe erfolgt, wird eine Standard-runconfig erstellt.

runconfig_pipeline_params
Erforderlich

Außerkraftsetzungen von runconfig-Eigenschaften zur Laufzeit unter Verwendung von Schlüssel-Wert-Paaren mit jeweils dem Namen der runconfig-Eigenschaft und dem Pipelineparameter für diese Eigenschaft.

Unterstützte Werte: „NodeCount“, „MpiProcessCountPerNode“, „TensorflowWorkerCount“, „TensorflowParameterServerCount“

inputs
Erforderlich

Eine Liste mit Eingabeportbindungen.

outputs
Erforderlich

Eine Liste mit Ausgabeportbindungen.

params
Erforderlich
<xref:<xref:{str: str}>>

Ein Wörterbuch mit Name-Wert-Paaren. Als Umgebungsvariablen mit ">>AML_PARAMETER_<<" registriert.

source_directory
Erforderlich
str

Ein Ordner, der Python-Skripts, die Conda-Umgebung und andere Ressourcen enthält, die im Schritt verwendet werden.

allow_reuse
Erforderlich

Gibt an, ob bei dem Schritt vorherige Ergebnisse wiederverwendet werden sollen, wenn er mit den gleichen Einstellungen erneut ausgeführt wird. Die Wiederverwendung ist standardmäßig aktiviert. Wenn der Schrittinhalt (Skripts/Abhängigkeiten) sowie die Eingaben und Parameter unverändert bleiben, wird die Ausgabe der vorherigen Ausführung dieses Schritts wiederverwendet. Wenn Sie den Schritt wiederverwenden, anstatt den Auftrag zum Berechnen zu übermitteln, werden die Ergebnisse der vorherigen Ausführung sofort für alle nachfolgenden Schritte verfügbar gemacht. Wenn Sie Azure Machine Learning-Datasets als Eingaben verwenden, hängt die Wiederverwendung nicht davon ab, ob sich die zugrunde liegenden Daten geändert haben, sondern davon, ob sich die Definition des Datasets geändert hat.

version
Erforderlich
str

Ein optionales Versionstag, um eine Änderung der Funktionalität für den Schritt zu kennzeichnen.

hash_paths
Erforderlich

VERALTET: nicht mehr erforderlich.

Eine Liste der Pfade, die bei der Überprüfung auf Änderungen am Schrittinhalt gehasht werden sollen. Wenn keine Änderungen erkannt werden, verwendet die Pipeline den Schrittinhalt einer vorherigen Ausführung erneut. Für Inhalte von source_directory werden standardmäßig Hashwerte erstellt, mit Ausnahme der in „.amlignore“ und „.gitignore“ aufgeführten Dateien.

Hinweise

Ein PythonScriptStep ist ein grundlegender integrierter Schritt zum Ausführen eines Python-Skripts auf einem Computeziel. Er nimmt einen Skriptnamen und andere optionale Parameter wie Argumente für das Skript, das Computeziel, Eingaben und Ausgaben entgegen. Wenn kein Computeziel angegeben ist, wird das Standardcomputeziel des Arbeitsbereichs verwendet. Sie können auch eine RunConfiguration verwenden, um Anforderungen für den PythonScriptStep anzugeben, z. B. Conda-Abhängigkeiten und Docker-Image.

Eine bewährte Methode für die Arbeit mit PythonScriptStep ist die Verwendung eines separaten Ordners für Skripts und alle abhängigen Dateien, die dem Schritt zugeordnet sind, und das Angeben dieses Ordners mit dem source_directory-Parameter. Das Befolgen dieser bewährten Methode bietet zwei Vorteile. Erstens kann die Größe der für den Schritt erstellten Momentaufnahme reduziert werden, da nur die für den Schritt benötigte Momentaufnahme erstellt wird. Zweitens kann die Ausgabe des Schritts aus einer vorherigen Ausführung wiederverwendet werden, wenn keine Änderungen am source_directory vorgenommen wurden, die einen erneuten Upload der Momentaufnahme auslösen würden.

Das folgende Codebeispiel zeigt die Verwendung eines PythonScriptStep für das Trainingsszenario für maschinelles Lernen. Weitere Informationen zu diesem Beispiel finden Sie unter https://aka.ms/pl-first-pipeline.


   from azureml.pipeline.steps import PythonScriptStep

   trainStep = PythonScriptStep(
       script_name="train.py",
       arguments=["--input", blob_input_data, "--output", output_data1],
       inputs=[blob_input_data],
       outputs=[output_data1],
       compute_target=compute_target,
       source_directory=project_folder
   )

PythonScriptSteps bietet Unterstützung für eine Reihe von Eingabe- und Ausgabetypen. Dazu gehören DatasetConsumptionConfig für Eingaben und OutputDatasetConfig, PipelineOutputAbstractDataset und PipelineData für Eingaben und Ausgaben.

Im Folgenden finden Sie ein Beispiel für die Verwendung von Dataset als Schritteingabe und -ausgabe:


   from azureml.core import Dataset
   from azureml.pipeline.steps import PythonScriptStep
   from azureml.pipeline.core import Pipeline, PipelineData

   # get input dataset
   input_ds = Dataset.get_by_name(workspace, 'weather_ds')

   # register pipeline output as dataset
   output_ds = PipelineData('prepared_weather_ds', datastore=datastore).as_dataset()
   output_ds = output_ds.register(name='prepared_weather_ds', create_new_version=True)

   # configure pipeline step to use dataset as the input and output
   prep_step = PythonScriptStep(script_name="prepare.py",
                                inputs=[input_ds.as_named_input('weather_ds')],
                                outputs=[output_ds],
                                compute_target=compute_target,
                                source_directory=project_folder)

Beispiele für die Verwendung anderer Eingabe-/Ausgabetypen finden Sie auf den entsprechenden Dokumentationsseiten.

Methoden

create_node

Einen Knoten für PythonScriptStep erstellen und ihn dem angegebenen Diagramm hinzufügen.

Diese Methode ist nicht für die direkte Nutzung vorgesehen. Wenn eine Pipeline mit diesem Schritt instanziiert wird, werden von Azure ML automatisch die für diese Methode erforderlichen Parameter übergeben, damit der Schritt einem Pipelinegraphen hinzugefügt werden kann, der den Workflow darstellt.

create_node

Einen Knoten für PythonScriptStep erstellen und ihn dem angegebenen Diagramm hinzufügen.

Diese Methode ist nicht für die direkte Nutzung vorgesehen. Wenn eine Pipeline mit diesem Schritt instanziiert wird, werden von Azure ML automatisch die für diese Methode erforderlichen Parameter übergeben, damit der Schritt einem Pipelinegraphen hinzugefügt werden kann, der den Workflow darstellt.

create_node(graph, default_datastore, context)

Parameter

Name Beschreibung
graph
Erforderlich

Das Graphobjekt, dem der Knoten hinzugefügt werden soll.

default_datastore
Erforderlich

Der Standarddatenspeicher.

context
Erforderlich
<xref:azureml.pipeline.core._GraphContext>

Der Graphkontext.

Gibt zurück

Typ Beschreibung

Der erstellte Knoten.