Delen via


CommandStep Klas

Maak een Azure ML-pijplijnstap waarmee een opdracht wordt uitgevoerd.

Maak een Azure ML-pijplijnstap waarmee een opdracht wordt uitgevoerd.

Overname
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
CommandStep

Constructor

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)

Parameters

Name Description
command
list of str

De opdracht die moet worden uitgevoerd of het pad van het uitvoerbare bestand/script ten opzichte source_directoryvan . Dit is vereist, tenzij deze is voorzien van runconfig. Deze kan worden opgegeven met tekenreeksargumenten in één tekenreeks of met invoer/uitvoer/PipelineParameter in een lijst.

standaardwaarde: None
name
str

De naam van de stap. Als u dit niet opgeeft, wordt het eerste woord in de command gebruikt.

standaardwaarde: None
compute_target

Het te gebruiken rekendoel. Als dit niet wordt opgegeven, wordt het doel van de runconfig gebruikt. Deze parameter kan worden opgegeven als een rekendoelobject of de tekenreeksnaam van een rekendoel in de werkruimte. Als het rekendoel niet beschikbaar is tijdens het maken van de pijplijn, kunt u een tuple van opgeven ('naam van rekendoel', 'rekendoeltype') om te voorkomen dat het rekendoelobject wordt opgehaald (AmlCompute-type is 'AmlCompute' en het type RemoteCompute is 'VirtualMachine').

standaardwaarde: None
runconfig

Het optionele configuratieobject dat de informatie bevat die nodig is om een trainingsuitvoering in een experiment in te dienen.

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

Onderdrukkingen van runconfig-eigenschappen tijdens runtime met behulp van sleutel-waardeparen elk met de naam van de eigenschap runconfig en PipelineParameter voor die eigenschap.

Ondersteunde waarden: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount'

standaardwaarde: None
inputs
list[InputPortBinding of DataReference of PortDataReference of PipelineData of <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> of DatasetConsumptionConfig]

Een lijst met invoerpoortbindingen.

standaardwaarde: None
outputs

Een lijst met uitvoerpoortbindingen.

standaardwaarde: None
params

Een woordenlijst met naam-waardeparen die zijn geregistreerd als omgevingsvariabelen met 'AML_PARAMETER_'.

standaardwaarde: None
source_directory
str

Een map met scripts, conda env en andere resources die in de stap worden gebruikt.

standaardwaarde: None
allow_reuse

Hiermee wordt aangegeven of de vorige resultaten opnieuw moeten worden gebruikt wanneer de stap opnieuw wordt uitgevoerd met dezelfde instellingen. Hergebruik is standaard ingeschakeld. Als de inhoud van de stap (scripts/afhankelijkheden) en de invoer en parameters ongewijzigd blijven, wordt de uitvoer van de vorige uitvoering van deze stap opnieuw gebruikt. Wanneer u de stap opnieuw gebruikt, worden de resultaten van de vorige uitvoering onmiddellijk beschikbaar gesteld voor eventuele volgende stappen in plaats van de taak te verzenden om te berekenen. Als u Azure Machine Learning-gegevenssets als invoer gebruikt, wordt hergebruik bepaald door of de definitie van de gegevensset is gewijzigd, niet door of de onderliggende gegevens zijn gewijzigd.

standaardwaarde: True
version
str

Een optionele versietag om een wijziging in de functionaliteit voor de stap aan te geven.

standaardwaarde: None
command
Vereist
list of str

De opdracht die moet worden uitgevoerd of het pad van het uitvoerbare bestand/script ten opzichte source_directoryvan . Dit is vereist, tenzij deze is voorzien van runconfig. Deze kan worden opgegeven met tekenreeksargumenten in één tekenreeks of met invoer/uitvoer/PipelineParameter in een lijst.

name
Vereist
str

De naam van de stap. Als u dit niet opgeeft, wordt het eerste woord in de command gebruikt.

compute_target
Vereist

Het te gebruiken rekendoel. Als dit niet wordt opgegeven, wordt het doel van de runconfig gebruikt. Deze parameter kan worden opgegeven als een rekendoelobject of de tekenreeksnaam van een rekendoel in de werkruimte. Als het rekendoel niet beschikbaar is tijdens het maken van de pijplijn, kunt u een tuple van opgeven ('naam van rekendoel', 'rekendoeltype') om te voorkomen dat het rekendoelobject wordt opgehaald (AmlCompute-type is 'AmlCompute' en het type RemoteCompute is 'VirtualMachine').

runconfig
Vereist

Het optionele configuratieobject dat de informatie bevat die nodig is om een trainingsuitvoering in een experiment in te dienen.

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

Onderdrukkingen van runconfig-eigenschappen tijdens runtime met behulp van sleutel-waardeparen elk met de naam van de eigenschap runconfig en PipelineParameter voor die eigenschap.

Ondersteunde waarden: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount'

inputs
Vereist
list[InputPortBinding of DataReference of PortDataReference of PipelineData of <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> of DatasetConsumptionConfig]

Een lijst met invoerpoortbindingen.

outputs
Vereist

Een lijst met uitvoerpoortbindingen.

params
Vereist

Een woordenlijst met naam-waardeparen die zijn geregistreerd als omgevingsvariabelen met 'AML_PARAMETER_'.

source_directory
Vereist
str

Een map met scripts, conda env en andere resources die in de stap worden gebruikt.

allow_reuse
Vereist

Hiermee wordt aangegeven of de vorige resultaten opnieuw moeten worden gebruikt wanneer de stap opnieuw wordt uitgevoerd met dezelfde instellingen. Hergebruik is standaard ingeschakeld. Als de inhoud van de stap (scripts/afhankelijkheden) en de invoer en parameters ongewijzigd blijven, wordt de uitvoer van de vorige uitvoering van deze stap opnieuw gebruikt. Wanneer u de stap opnieuw gebruikt, worden de resultaten van de vorige uitvoering onmiddellijk beschikbaar gesteld voor eventuele volgende stappen in plaats van de taak te verzenden om te berekenen. Als u Azure Machine Learning-gegevenssets als invoer gebruikt, wordt hergebruik bepaald door of de definitie van de gegevensset is gewijzigd, niet door of de onderliggende gegevens zijn gewijzigd.

version
Vereist
str

Een optionele versietag om een wijziging in de functionaliteit voor de stap aan te geven.

Opmerkingen

Een CommandStep is een eenvoudige, ingebouwde stap voor het uitvoeren van een opdracht op het opgegeven rekendoel. Er wordt een opdracht gebruikt als parameter of van andere parameters, zoals runconfig. Er zijn ook andere optionele parameters nodig, zoals rekendoel, invoer en uitvoer. U moet een ScriptRunConfig of RunConfiguration gebruiken om vereisten voor de CommandStep op te geven, zoals aangepaste Docker-installatiekopieën.

De aanbevolen procedure voor het werken met CommandStep is om een afzonderlijke map voor het uitvoerbare bestand of script te gebruiken om afhankelijke bestanden uit te voeren die zijn gekoppeld aan de stap en die map op te geven met de source_directory parameter . Het volgen van deze best practice heeft twee voordelen. Ten eerste helpt het de grootte van de momentopname te verkleinen die voor de stap is gemaakt, omdat alleen de momentopnamen worden gemaakt die nodig zijn voor de stap. Ten tweede kan de uitvoer van de stap van een vorige uitvoering opnieuw worden gebruikt als er geen wijzigingen zijn in de source_directory die een herupload van de momentopname activeren.

Voor de systeem bekende opdrachten source_directory is niet vereist, maar u kunt deze nog steeds voorzien van afhankelijke bestanden die zijn gekoppeld aan de stap.

In het volgende codevoorbeeld ziet u hoe u een CommandStep gebruikt in een trainingsscenario voor machine learning. Bestanden weergeven in Linux:


   from azureml.pipeline.steps import CommandStep

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

Een Python-script uitvoeren:


   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)

Een Python-script uitvoeren via ScriptRunConfig:


   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)

Zie https://aka.ms/pl-first-pipeline voor meer informatie over het maken van pijplijnen in het algemeen.

Methoden

create_node

Maak een knooppunt voor CommandStep en voeg dit toe aan de opgegeven grafiek.

Deze methode is niet bedoeld om rechtstreeks te worden gebruikt. Wanneer een pijplijn wordt geïnstantieerd met deze stap, geeft Azure ML automatisch de vereiste parameters door via deze methode, zodat deze stap kan worden toegevoegd aan een pijplijngrafiek die de werkstroom vertegenwoordigt.

create_node

Maak een knooppunt voor CommandStep en voeg dit toe aan de opgegeven grafiek.

Deze methode is niet bedoeld om rechtstreeks te worden gebruikt. Wanneer een pijplijn wordt geïnstantieerd met deze stap, geeft Azure ML automatisch de vereiste parameters door via deze methode, zodat deze stap kan worden toegevoegd aan een pijplijngrafiek die de werkstroom vertegenwoordigt.

create_node(graph, default_datastore, context)

Parameters

Name Description
graph
Vereist

Het grafiekobject waaraan u het knooppunt wilt toevoegen.

default_datastore
Vereist

Het standaardgegevensarchief.

context
Vereist
<xref:_GraphContext>

De grafiekcontext.

Retouren

Type Description

Het gemaakte knooppunt.