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

script_name
str
Erforderlich

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

name
str
Standardwert: None

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

arguments
list
Standardwert: None

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
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
Standardwert: None

[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
RunConfiguration
Standardwert: None

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.

runconfig_pipeline_params
dict[str, PipelineParameter]
Standardwert: None

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“

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Standardwert: None

Eine Liste mit Ausgabeportbindungen.

params
dict
Standardwert: None

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

source_directory
str
Standardwert: None

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

allow_reuse
bool
Standardwert: True

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
str
Standardwert: None

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

hash_paths
list
Standardwert: None

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.

script_name
str
Erforderlich

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

name
str
Erforderlich

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

arguments
[str]
Erforderlich

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
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
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
RunConfiguration
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
dict[str, PipelineParameter]
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“

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

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

source_directory
str
Erforderlich

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

allow_reuse
bool
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
str
Erforderlich

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

hash_paths
list
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

graph
Graph
Erforderlich

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

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Erforderlich

Der Standarddatenspeicher.

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

Der Graphkontext.

Gibt zurück

Der erstellte Knoten.

Rückgabetyp