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._PythonScriptStepBasePythonScriptStep
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
|
[Erforderlich] Der Name eines Python-Skripts mit Bezug zu |
name
|
Der Name des Schritts. Wenn keine Angabe erfolgt, wird Standardwert: None
|
arguments
|
Befehlszeilenargumente für die Python-Skriptdatei. Die Argumente werden über den 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
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Eine Liste mit Eingabeportbindungen. Standardwert: None
|
outputs
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
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
|
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
|
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 Standardwert: None
|
script_name
Erforderlich
|
[Erforderlich] Der Name eines Python-Skripts mit Bezug zu |
name
Erforderlich
|
Der Name des Schritts. Wenn keine Angabe erfolgt, wird |
arguments
Erforderlich
|
[str]
Befehlszeilenargumente für die Python-Skriptdatei. Die Argumente werden über den |
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
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Eine Liste mit Eingabeportbindungen. |
outputs
Erforderlich
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
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
|
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
|
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 |
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. |