Freigeben über


CommandStep Klasse

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

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

Vererbung
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
CommandStep

Konstruktor

CommandStep(command=None, name=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None)

Parameter

Name Beschreibung
command
list oder str

Der auszuführende Befehl oder Pfad der ausführbaren Datei bzw. des Skripts relativ zu source_directory. Sie ist erforderlich, es sei denn, sie wird mit runconfig bereitgestellt. Sie kann mit Zeichenfolgenargumenten in einer einzelnen Zeichenfolge oder mit input/output/PipelineParameter in einer Liste angegeben werden.

Standardwert: None
name
str

Der Name des Schritts. Wenn keine Angabe erfolgt, wird das erste Wort im command verwendet.

Standardwert: None
compute_target

Das zu verwendende Computeziel. Wenn keine Angabe erfolgt, 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

Das optionale Konfigurationsobjekt, das die Informationen kapselt, die zum Übermitteln eines Trainingslaufs in einem Experiment erforderlich sind.

Standardwert: None
runconfig_pipeline_params
<xref:<xref:{str: PipelineParameter}>>

Überschreibt 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[InputPortBinding oder DataReference oder PortDataReference oder PipelineData oder <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> oder DatasetConsumptionConfig]

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 Skripts, Conda env und andere Ressourcen enthält, die in diesem 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
command
Erforderlich
list oder str

Der auszuführende Befehl oder Pfad der ausführbaren Datei bzw. des Skripts relativ zu source_directory. Sie ist erforderlich, es sei denn, sie wird mit runconfig bereitgestellt. Sie kann mit Zeichenfolgenargumenten in einer einzelnen Zeichenfolge oder mit input/output/PipelineParameter in einer Liste angegeben werden.

name
Erforderlich
str

Der Name des Schritts. Wenn keine Angabe erfolgt, wird das erste Wort im command verwendet.

compute_target
Erforderlich

Das zu verwendende Computeziel. Wenn keine Angabe erfolgt, 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

Das optionale Konfigurationsobjekt, das die Informationen kapselt, die zum Übermitteln eines Trainingslaufs in einem Experiment erforderlich sind.

runconfig_pipeline_params
Erforderlich
<xref:<xref:{str: PipelineParameter}>>

Überschreibt 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[InputPortBinding oder DataReference oder PortDataReference oder PipelineData oder <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> oder DatasetConsumptionConfig]

Eine Liste mit Eingabeportbindungen.

outputs
Erforderlich

Eine Liste mit Ausgabeportbindungen.

params
Erforderlich

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

source_directory
Erforderlich
str

Ein Ordner, der Skripts, Conda env und andere Ressourcen enthält, die in diesem 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.

Hinweise

Ein CommandStep ist ein grundlegender integrierter Schritt zum Ausführen eines Befehls auf dem angegebenen Computeziel. Verwendet einen Befehl als Parameter oder aus anderen Parametern wie runconfig. Nimmt auch andere optionale Parameter, wie Computeziele, Eingaben und Ausgaben. Sie sollten ScriptRunConfig oder RunConfiguration verwenden, um Anforderungen für CommandStep anzugeben, z. B. ein benutzerdefiniertes Docker-Image.

Die bewährte Methode für die Arbeit mit CommandStep besteht darin, einen separaten Ordner für die ausführbare Datei oder das Skript zu verwenden, um alle abhängigen Dateien auszuführen, die dem Schritt zugeordnet sind, und diesen Ordner mit dem source_directory-Parameter anzugeben. 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.

Für die vom System bekannten Befehle ist source_directory nicht erforderlich, aber Sie können trotzdem alle abhängigen Dateien bereitstellen, die dem Schritt zugeordnet sind.

Im folgenden Codebeispiel wird die Verwendung von CommandStep in einem Machine Learning-Trainingsszenario veranschaulicht. So listen Sie Dateien unter Linux auf


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='list step',
                           command='ls -lrt',
                           compute_target=compute_target)

So führen Sie ein Python-Skript aus


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='train step',
                           command='python train.py arg1 arg2',
                           source_directory=project_folder,
                           compute_target=compute_target)

So führen Sie ein Python-Skript über ScriptRunConfig aus


   from azureml.core import ScriptRunConfig
   from azureml.pipeline.steps import CommandStep

   train_src = ScriptRunConfig(source_directory=script_folder,
                               command='python train.py arg1 arg2',
                               environment=my_env)
   trainStep = CommandStep(name='train step',
                           runconfig=train_src)

Weitere allgemeine Informationen zum Erstellen von Pipelines finden Sie unter https://aka.ms/pl-first-pipeline.

Methoden

create_node

Erstellen Sie einen Knoten für CommandStep, und fügen Sie ihn dem angegebenen Graphen hinzu.

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

Erstellen Sie einen Knoten für CommandStep, und fügen Sie ihn dem angegebenen Graphen hinzu.

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:_GraphContext>

Der Graphkontext.

Gibt zurück

Typ Beschreibung

Der erstellte Knoten.