PythonScriptStep Klasse
Erstellt einen Azure ML-Pipelineschritt, der Python-Skript ausführt.
Ein Beispiel für die Verwendung von PythonScriptStep finden Sie im Notizbuch https://aka.ms/pl-get-started.
Erstellen Sie einen Azure ML-Pipelineschritt, der python-Skript ausführt.
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 relativ zu |
|
name
|
Der Name des Schritts. Wird nicht angegeben, Standardwert: None
|
|
arguments
|
Befehlszeilenargumente für die Python-Skriptdatei. Die Argumente werden über den Parameter in RunConfiguration an die Standardwert: None
|
|
compute_target
|
[Erforderlich] Das zu verwendende Computeziel. Wenn nicht angegeben, wird das Ziel aus der runconfig verwendet. Dieser Parameter kann als Computezielobjekt oder als Zeichenfolgenname eines Computeziels im Arbeitsbereich angegeben werden. Wenn das Computeziel zur Pipelineerstellungszeit nicht verfügbar ist, können Sie 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 anzugeben, z. B. Conda-Abhängigkeiten und ein Docker-Image. Wenn nicht angegeben, wird eine Standardausführungskonfiguration erstellt. Standardwert: None
|
|
runconfig_pipeline_params
|
Außerkraftsetzungen von Runconfig-Eigenschaften zur Laufzeit mithilfe von Schlüssel-Wert-Paaren mit dem Namen der runconfig-Eigenschaft und 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 der Eingabeportbindungen. Standardwert: None
|
|
outputs
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Eine Liste der Ausgabeportbindungen. Standardwert: None
|
|
params
|
Ein Wörterbuch mit Namen-Wert-Paaren, die als Umgebungsvariablen mit "AML_PARAMETER_" registriert sind. Standardwert: None
|
|
source_directory
|
Ein Ordner mit Python-Skript, Conda env und anderen Ressourcen, die im Schritt verwendet werden. Standardwert: None
|
|
allow_reuse
|
Gibt an, ob der Schritt vorherige Ergebnisse wiederverwenden soll, wenn er mit denselben Einstellungen erneut ausgeführt wird. Die Wiederverwendung ist standardmäßig aktiviert. Wenn der Schrittinhalt (Skripts/Abhängigkeiten) sowie Eingaben und Parameter unverändert bleiben, wird die Ausgabe aus der vorherigen Ausführung dieses Schritts wiederverwendet. Beim Erneuten Verwenden des Schritts werden die Ergebnisse aus der vorherigen Ausführung sofort allen nachfolgenden Schritten zur Verfügung gestellt, anstatt den Auftrag zur Berechnung zu übermitteln. Wenn Sie Azure Machine Learning-Datasets als Eingaben verwenden, wird die Wiederverwendung bestimmt, ob sich die Definition des Datasets geändert hat, nicht durch die Änderung der zugrunde liegenden Daten. 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 zum Hashen bei der Überprüfung auf Änderungen an den Schrittinhalten. Wenn keine Änderungen erkannt wurden, verwendet die Pipeline den Schrittinhalt aus einer vorherigen Ausführung wieder. Standardmäßig wird der Inhalt mit Hash versehen, mit Ausnahme von Standardwert: None
|
|
script_name
Erforderlich
|
[Erforderlich] Der Name eines Python-Skripts relativ zu |
|
name
Erforderlich
|
Der Name des Schritts. Wird nicht angegeben, |
|
arguments
Erforderlich
|
[str]
Befehlszeilenargumente für die Python-Skriptdatei. Die Argumente werden über den Parameter in RunConfiguration an die |
|
compute_target
Erforderlich
|
[Erforderlich] Das zu verwendende Computeziel. Wenn nicht angegeben, wird das Ziel aus der runconfig verwendet. Dieser Parameter kann als Computezielobjekt oder als Zeichenfolgenname eines Computeziels im Arbeitsbereich angegeben werden. Wenn das Computeziel zur Pipelineerstellungszeit nicht verfügbar ist, können Sie 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 nicht angegeben, wird eine Standardausführungskonfiguration erstellt. |
|
runconfig_pipeline_params
Erforderlich
|
Außerkraftsetzungen von Runconfig-Eigenschaften zur Laufzeit mithilfe von Schlüssel-Wert-Paaren mit dem Namen der runconfig-Eigenschaft und 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 der Eingabeportbindungen. |
|
outputs
Erforderlich
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Eine Liste der 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 mit Python-Skript, Conda env und anderen Ressourcen, die im Schritt verwendet werden. |
|
allow_reuse
Erforderlich
|
Gibt an, ob der Schritt vorherige Ergebnisse wiederverwenden soll, wenn er mit denselben Einstellungen erneut ausgeführt wird. Die Wiederverwendung ist standardmäßig aktiviert. Wenn der Schrittinhalt (Skripts/Abhängigkeiten) sowie Eingaben und Parameter unverändert bleiben, wird die Ausgabe aus der vorherigen Ausführung dieses Schritts wiederverwendet. Beim Erneuten Verwenden des Schritts werden die Ergebnisse aus der vorherigen Ausführung sofort allen nachfolgenden Schritten zur Verfügung gestellt, anstatt den Auftrag zur Berechnung zu übermitteln. Wenn Sie Azure Machine Learning-Datasets als Eingaben verwenden, wird die Wiederverwendung bestimmt, ob sich die Definition des Datasets geändert hat, nicht durch die Änderung der zugrunde liegenden Daten. |
|
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 zum Hashen bei der Überprüfung auf Änderungen an den Schrittinhalten. Wenn keine Änderungen erkannt wurden, verwendet die Pipeline den Schrittinhalt aus einer vorherigen Ausführung wieder. Standardmäßig wird der Inhalt mit Hash versehen, mit Ausnahme von |
Hinweise
Ein PythonScriptStep ist ein einfacher, integrierter Schritt zum Ausführen eines Python-Skripts auf einem Computeziel. Es verwendet einen Skriptnamen und andere optionale Parameter wie Argumente für das Skript, Computeziel, Eingaben und Ausgaben. Wenn kein Computeziel angegeben ist, wird das Standardberechnungsziel für den Arbeitsbereich verwendet. Sie können auch die RunConfiguration Anforderungen für PythonScriptStep angeben, z. B. Conda-Abhängigkeiten und Docker-Image.
Die bewährte Methode für die Arbeit mit PythonScriptStep besteht darin, einen separaten Ordner für Skripts und alle abhängigen Dateien zu verwenden, die dem Schritt zugeordnet sind, und diesen Ordner mit dem source_directory Parameter angeben.
Im Anschluss an diese bewährte Methode gibt es zwei Vorteile. Zunächst hilft es, die Größe der für den Schritt erstellten Momentaufnahme zu verringern, da nur das, was für den Schritt erforderlich ist, momentaufnahmet wird. Zweitens kann die Ausgabe des Schritts aus einer vorherigen Ausführung wiederverwendet werden, wenn es keine Änderungen an dem Gibt, die source_directory einen erneuten Upload der Momentaufnahme auslösen würden.
Das folgende Codebeispiel zeigt die Verwendung eines PythonScriptStep in einem Schulungsszenario 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 unterstützen eine Reihe von Eingabe- und Ausgabetypen. Dazu gehören eingaben DatasetConsumptionConfig und OutputDatasetConfig, PipelineOutputAbstractDatasetund PipelineData für Eingaben und Ausgaben.
Nachfolgend finden Sie ein Beispiel für die Verwendung 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 |
Erstellen Sie einen Knoten für PythonScriptStep, und fügen Sie ihn dem angegebenen Diagramm hinzu. Diese Methode soll nicht direkt verwendet werden. Wenn eine Pipeline mit diesem Schritt instanziiert wird, übergibt Azure ML automatisch die für diese Methode erforderlichen Parameter, sodass ein Schritt zu einem Pipelinediagramm hinzugefügt werden kann, das den Workflow darstellt. |
create_node
Erstellen Sie einen Knoten für PythonScriptStep, und fügen Sie ihn dem angegebenen Diagramm hinzu.
Diese Methode soll nicht direkt verwendet werden. Wenn eine Pipeline mit diesem Schritt instanziiert wird, übergibt Azure ML automatisch die für diese Methode erforderlichen Parameter, sodass ein Schritt zu einem Pipelinediagramm hinzugefügt werden kann, das den Workflow darstellt.
create_node(graph, default_datastore, context)
Parameter
| Name | Beschreibung |
|---|---|
|
graph
Erforderlich
|
Das Graph-Objekt, dem der Knoten hinzugefügt werden soll. |
|
default_datastore
Erforderlich
|
Der Standarddatenspeicher. |
|
context
Erforderlich
|
<xref:azureml.pipeline.core._GraphContext>
Der Diagrammkontext. |
Gibt zurück
| Typ | Beschreibung |
|---|---|
|
Der erstellte Knoten. |