Delen via


PythonScriptStep Klas

Hiermee maakt u een Azure ML-pijplijnstap waarmee een Python-script wordt uitgevoerd.

Zie het notebook https://aka.ms/pl-get-startedvoor een voorbeeld van het gebruik van PythonScriptStep.

Maak een Azure ML-pijplijnstap waarmee het Python-script wordt uitgevoerd.

Overname
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
PythonScriptStep

Constructor

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)

Parameters

Name Description
script_name
Vereist
str

[Vereist] De naam van een Python-script ten opzichte source_directoryvan .

name
str

De naam van de stap. Indien niet opgegeven, script_name wordt gebruikt.

Default value: None
arguments

Opdrachtregelargumenten voor het Python-scriptbestand. De argumenten worden doorgegeven aan de berekening via de arguments parameter in RunConfiguration. Zie voor meer informatie over het afhandelen van argumenten, zoals speciale symbolen, de RunConfiguration.

Default value: None
compute_target

[Vereist] Het rekendoel dat moet worden gebruikt. Als dit niet is 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', 'type rekendoel') om te voorkomen dat het rekendoelobject wordt opgehaald (het type AmlCompute is 'AmlCompute' en het type RemoteCompute is 'VirtualMachine').

Default value: None
runconfig

De optionele RunConfiguration die moet worden gebruikt. Een RunConfiguration kan worden gebruikt om aanvullende vereisten voor de uitvoering op te geven, zoals conda-afhankelijkheden en een docker-installatiekopieën. Als dit niet wordt opgegeven, wordt er een standaard runconfig gemaakt.

Default value: None
runconfig_pipeline_params

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

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

Default value: None
inputs

Een lijst met invoerpoortbindingen.

Default value: None
outputs

Een lijst met uitvoerpoortbindingen.

Default value: None
params

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

Default value: None
source_directory
str

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

Default value: None
allow_reuse

Hiermee wordt aangegeven of de stap eerdere resultaten opnieuw moet gebruiken wanneer deze 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 gemaakt 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.

Default value: True
version
str

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

Default value: None
hash_paths

AFGESCHAFT: niet meer nodig.

Een lijst met paden naar hash bij het controleren op wijzigingen in de inhoud van de stap. Als er geen wijzigingen zijn gedetecteerd, gebruikt de pijplijn de stapinhoud van een vorige uitvoering opnieuw. Standaard wordt de inhoud van gehasht, met uitzondering van source_directory bestanden die worden vermeld in .amlignore of .gitignore.

Default value: None
script_name
Vereist
str

[Vereist] De naam van een Python-script ten opzichte source_directoryvan .

name
Vereist
str

De naam van de stap. Indien niet opgegeven, script_name wordt gebruikt.

arguments
Vereist
[str]

Opdrachtregelargumenten voor het Python-scriptbestand. De argumenten worden doorgegeven aan de berekening via de arguments parameter in RunConfiguration. Zie voor meer informatie over het afhandelen van argumenten, zoals speciale symbolen, de RunConfiguration.

compute_target
Vereist

[Vereist] Het rekendoel dat moet worden gebruikt. Als dit niet is 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', 'type rekendoel') om te voorkomen dat het rekendoelobject wordt opgehaald (het type AmlCompute is 'AmlCompute' en het type RemoteCompute is 'VirtualMachine').

runconfig
Vereist

De optionele RunConfiguration die moet worden gebruikt. RunConfiguration kan worden gebruikt om aanvullende vereisten voor de uitvoering op te geven, zoals conda-afhankelijkheden en een docker-installatiekopieën. Als dit niet wordt opgegeven, wordt er een standaard runconfig gemaakt.

runconfig_pipeline_params
Vereist

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

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

inputs
Vereist

Een lijst met invoerpoortbindingen.

outputs
Vereist

Een lijst met uitvoerpoortbindingen.

params
Vereist
<xref:<xref:{str: str}>>

Een woordenlijst met naam-waardeparen. Geregistreerd als omgevingsvariabelen met '>>AML_PARAMETER_<<'.

source_directory
Vereist
str

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

allow_reuse
Vereist

Hiermee wordt aangegeven of de stap eerdere resultaten opnieuw moet gebruiken wanneer deze 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 gemaakt 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.

hash_paths
Vereist

AFGESCHAFT: niet meer nodig.

Een lijst met paden naar hash bij het controleren op wijzigingen in de inhoud van de stap. Als er geen wijzigingen zijn gedetecteerd, gebruikt de pijplijn de stapinhoud van een vorige uitvoering opnieuw. Standaard wordt de inhoud van gehasht, met uitzondering van source_directory bestanden die worden vermeld in .amlignore of .gitignore.

Opmerkingen

Een PythonScriptStep is een eenvoudige, ingebouwde stap voor het uitvoeren van een Python-script op een rekendoel. Het maakt gebruik van een scriptnaam en andere optionele parameters, zoals argumenten voor het script, rekendoel, in- en uitvoer. Als er geen rekendoel is opgegeven, wordt het standaard rekendoel voor de werkruimte gebruikt. U kunt ook een RunConfiguration gebruiken om vereisten op te geven voor de PythonScriptStep, zoals conda-afhankelijkheden en docker-installatiekopieën.

De best practice voor het werken met PythonScriptStep is om een afzonderlijke map te gebruiken voor scripts en eventuele afhankelijke bestanden 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 te verkleinen van de momentopname 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 in de source_directory zijn die een herupload van de momentopname activeren.

In het volgende codevoorbeeld ziet u het gebruik van een PythonScriptStep in een machine learning-trainingsscenario. Zie voor meer informatie over dit voorbeeld 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 ondersteunen een aantal invoer- en uitvoertypen. Deze omvatten DatasetConsumptionConfig voor invoer en OutputDatasetConfig, PipelineOutputAbstractDataseten PipelineData voor invoer en uitvoer.

Hieronder ziet u een voorbeeld van het gebruik Dataset als stapinvoer en uitvoer:


   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)

Raadpleeg de bijbehorende documentatiepagina's voor voorbeelden van het gebruik van andere invoer-/uitvoertypen.

Methoden

create_node

Maak een knooppunt voor PythonScriptStep 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 PythonScriptStep 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:azureml.pipeline.core._GraphContext>

De grafiekcontext.

Retouren

Type Description

Het gemaakte knooppunt.