Freigeben über


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
str

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

name
str

Der Name des Schritts. Wird nicht angegeben, script_name wird verwendet.

Standardwert: None
arguments

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

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

Eine Liste der Eingabeportbindungen.

Standardwert: None
outputs

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
str

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
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 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 source_directory Dateien, die in ".amlignore" oder ".gitignore" aufgeführt sind.

Standardwert: None
script_name
Erforderlich
str

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

name
Erforderlich
str

Der Name des Schritts. Wird nicht angegeben, script_name wird verwendet.

arguments
Erforderlich
[str]

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

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

Eine Liste der Eingabeportbindungen.

outputs
Erforderlich

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
str

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
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 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 source_directory Dateien, die in ".amlignore" oder ".gitignore" aufgeführt sind.

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.