PythonScriptStep Klas
Hiermee maakt u een Azure ML-pijplijnstap waarmee het 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._PythonScriptStepBasePythonScriptStep
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
|
[Vereist] De naam van een Python-script ten opzichte |
name
|
De naam van de stap. Indien niet opgegeven, Default value: None
|
arguments
|
Opdrachtregelargumenten voor het Python-scriptbestand. De argumenten worden doorgegeven om te worden berekend via de Default value: None
|
compute_target
|
[Vereist] Het te gebruiken rekendoel. Indien niet 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'). 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 eigenschap runconfig en PipelineParameter voor die eigenschap. Ondersteunde waarden: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount' Default value: None
|
inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Een lijst met invoerpoortbindingen. Default value: None
|
outputs
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
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
|
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 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. Default value: True
|
version
|
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, wordt de inhoud van de stap uit een vorige uitvoering opnieuw gebruikt. Standaard wordt de inhoud van gehasht, met uitzondering van Default value: None
|
script_name
Vereist
|
[Vereist] De naam van een Python-script ten opzichte |
name
Vereist
|
De naam van de stap. Indien niet opgegeven, |
arguments
Vereist
|
[str]
Opdrachtregelargumenten voor het Python-scriptbestand. De argumenten worden doorgegeven om te worden berekend via de |
compute_target
Vereist
|
[Vereist] Het te gebruiken rekendoel. Indien niet 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
|
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 eigenschap runconfig en PipelineParameter voor die eigenschap. Ondersteunde waarden: 'NodeCount', 'MpiProcessCountPerNode', 'TensorflowWorkerCount', 'TensorflowParameterServerCount' |
inputs
Vereist
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Een lijst met invoerpoortbindingen. |
outputs
Vereist
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Een lijst met uitvoerpoortbindingen. |
params
Vereist
|
<xref:<xref:{str: str}>>
Een woordenlijst met naam-waardeparen. Geregistreerd als omgevingsvariabelen met '>>AML_PARAMETER_<<'. |
source_directory
Vereist
|
Een map met Python-script, 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
|
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, wordt de inhoud van de stap uit een vorige uitvoering opnieuw gebruikt. Standaard wordt de inhoud van gehasht, met uitzondering van |
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 aan de stap zijn gekoppeld, 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.
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 ondersteunt 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 van invoer en uitvoer als stap:
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 typen invoer/uitvoer.
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. |