PythonScriptStep Klasa
Tworzy krok potoku usługi Azure ML, który uruchamia skrypt języka Python.
Aby zapoznać się z przykładem użycia języka PythonScriptStep, zobacz notes https://aka.ms/pl-get-started.
Utwórz krok potoku usługi Azure ML, który uruchamia skrypt języka Python.
- Dziedziczenie
-
azureml.pipeline.core._python_script_step_base._PythonScriptStepBasePythonScriptStep
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)
Parametry
Nazwa | Opis |
---|---|
script_name
Wymagane
|
[Wymagane] Nazwa skryptu języka Python względem . |
name
|
Nazwa kroku. Jeśli nie zostanie określona, Domyślna wartość: None
|
arguments
|
Argumenty wiersza polecenia dla pliku skryptu języka Python. Argumenty zostaną przekazane do obliczeń za pośrednictwem parametru Domyślna wartość: None
|
compute_target
|
[Wymagane] Docelowy obiekt obliczeniowy do użycia. Jeśli nie zostanie określona, zostanie użyty element docelowy z pliku runconfig. Ten parametr może być określony jako obiekt docelowy obliczeniowy lub nazwa ciągu docelowego obiektu obliczeniowego w obszarze roboczym. Opcjonalnie, jeśli docelowy obiekt obliczeniowy nie jest dostępny w czasie tworzenia potoku, możesz określić krotkę ("nazwa docelowego obiektu obliczeniowego", "typ docelowy obliczeniowy"), aby uniknąć pobierania obiektu docelowego obliczeniowego (typ AmlCompute to "AmlCompute", a typ RemoteCompute to "VirtualMachine"). Domyślna wartość: None
|
runconfig
|
Opcjonalna funkcja RunConfiguration do użycia. Element RunConfiguration może służyć do określania dodatkowych wymagań dotyczących przebiegu, takich jak zależności conda i obraz platformy Docker. Jeśli nie zostanie określona, zostanie utworzona domyślna konfiguracja runconfig. Domyślna wartość: None
|
runconfig_pipeline_params
|
Zastępuje właściwości runconfig w czasie wykonywania przy użyciu par klucz-wartość każdy z nazwami właściwości runconfig i PipelineParameter dla tej właściwości. Obsługiwane wartości: "NodeCount", "MpiProcessCountPerNode", "TensorflowWorkerCount", "TensorflowParameterServerCount" Domyślna wartość: None
|
inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Lista powiązań portów wejściowych. Domyślna wartość: None
|
outputs
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Lista powiązań portów wyjściowych. Domyślna wartość: None
|
params
|
Słownik par name-value zarejestrowanych jako zmienne środowiskowe z wartością "AML_PARAMETER_". Domyślna wartość: None
|
source_directory
|
Folder zawierający skrypt języka Python, env conda i inne zasoby używane w kroku. Domyślna wartość: None
|
allow_reuse
|
Wskazuje, czy krok powinien ponownie używać poprzednich wyników po ponownym uruchomieniu z tymi samymi ustawieniami. Ponowne użycie jest domyślnie włączone. Jeśli zawartość kroku (skrypty/zależności) oraz dane wejściowe i parametry pozostają niezmienione, dane wyjściowe z poprzedniego uruchomienia tego kroku są ponownie używane. Podczas ponownego wykonywania kroku zamiast przesyłania zadania do obliczeń wyniki z poprzedniego przebiegu są natychmiast udostępniane wszystkim kolejnym krokom. Jeśli używasz zestawów danych usługi Azure Machine Learning jako danych wejściowych, ponowne użycie zależy od tego, czy definicja zestawu danych uległa zmianie, a nie przez to, czy dane bazowe uległy zmianie. Domyślna wartość: True
|
version
|
Opcjonalny tag wersji, aby oznaczyć zmianę funkcjonalności kroku. Domyślna wartość: None
|
hash_paths
|
PRZESTARZAŁE: nie są już potrzebne. Lista ścieżek do skrótu podczas sprawdzania zmian w zawartości kroku. Jeśli nie zostaną wykryte żadne zmiany, potok użyje ponownie zawartości kroku z poprzedniego uruchomienia. Domyślnie zawartość pliku jest skrótem Domyślna wartość: None
|
script_name
Wymagane
|
[Wymagane] Nazwa skryptu języka Python względem . |
name
Wymagane
|
Nazwa kroku. Jeśli nie zostanie określona, |
arguments
Wymagane
|
[str]
Argumenty wiersza polecenia dla pliku skryptu języka Python. Argumenty zostaną przekazane do obliczeń za pośrednictwem parametru |
compute_target
Wymagane
|
[Wymagane] Docelowy obiekt obliczeniowy do użycia. Jeśli nie zostanie określona, zostanie użyty element docelowy z pliku runconfig. Ten parametr może być określony jako obiekt docelowy obliczeniowy lub nazwa ciągu docelowego obiektu obliczeniowego w obszarze roboczym. Opcjonalnie, jeśli docelowy obiekt obliczeniowy nie jest dostępny w czasie tworzenia potoku, możesz określić krotkę ("nazwa docelowego obiektu obliczeniowego", "typ docelowy obliczeniowy"), aby uniknąć pobierania obiektu docelowego obliczeniowego (typ AmlCompute to "AmlCompute", a typ RemoteCompute to "VirtualMachine"). |
runconfig
Wymagane
|
Opcjonalna funkcja RunConfiguration do użycia. Funkcja RunConfiguration może służyć do określania dodatkowych wymagań dotyczących przebiegu, takich jak zależności conda i obraz platformy Docker. Jeśli nie zostanie określona, zostanie utworzona domyślna konfiguracja runconfig. |
runconfig_pipeline_params
Wymagane
|
Zastępuje właściwości runconfig w czasie wykonywania przy użyciu par klucz-wartość każdy z nazwami właściwości runconfig i PipelineParameter dla tej właściwości. Obsługiwane wartości: "NodeCount", "MpiProcessCountPerNode", "TensorflowWorkerCount", "TensorflowParameterServerCount" |
inputs
Wymagane
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Lista powiązań portów wejściowych. |
outputs
Wymagane
|
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
Lista powiązań portów wyjściowych. |
params
Wymagane
|
<xref:<xref:{str: str}>>
Słownik par name-value. Zarejestrowane jako zmienne środowiskowe za pomocą polecenia ">>AML_PARAMETER_<<". |
source_directory
Wymagane
|
Folder zawierający skrypt języka Python, env conda i inne zasoby używane w kroku. |
allow_reuse
Wymagane
|
Wskazuje, czy krok powinien ponownie używać poprzednich wyników po ponownym uruchomieniu z tymi samymi ustawieniami. Ponowne użycie jest domyślnie włączone. Jeśli zawartość kroku (skrypty/zależności) oraz dane wejściowe i parametry pozostają niezmienione, dane wyjściowe z poprzedniego uruchomienia tego kroku są ponownie używane. Podczas ponownego wykonywania kroku zamiast przesyłania zadania do obliczeń wyniki z poprzedniego przebiegu są natychmiast udostępniane wszystkim kolejnym krokom. Jeśli używasz zestawów danych usługi Azure Machine Learning jako danych wejściowych, ponowne użycie zależy od tego, czy definicja zestawu danych uległa zmianie, a nie przez to, czy dane bazowe uległy zmianie. |
version
Wymagane
|
Opcjonalny tag wersji, aby oznaczyć zmianę funkcjonalności kroku. |
hash_paths
Wymagane
|
PRZESTARZAŁE: nie są już potrzebne. Lista ścieżek do skrótu podczas sprawdzania zmian w zawartości kroku. Jeśli nie zostaną wykryte żadne zmiany, potok użyje ponownie zawartości kroku z poprzedniego uruchomienia. Domyślnie zawartość pliku jest skrótem |
Uwagi
PythonScriptStep to podstawowy, wbudowany krok umożliwiający uruchamianie skryptu języka Python na docelowym obiekcie obliczeniowym. Pobiera ona nazwę skryptu i inne parametry opcjonalne, takie jak argumenty dla skryptu, docelowy obiekt obliczeniowy, dane wejściowe i wyjściowe. Jeśli nie określono docelowego obiektu obliczeniowego, zostanie użyty domyślny docelowy obiekt obliczeniowy dla obszaru roboczego. Można również użyć RunConfiguration elementu , aby określić wymagania dotyczące środowiska PythonScriptStep, takie jak zależności conda i obraz platformy Docker.
Najlepszym rozwiązaniem do pracy z językiem PythonScriptStep jest użycie oddzielnego folderu dla skryptów i wszelkich plików zależnych skojarzonych z krokiem, a następnie określenie tego folderu za pomocą parametru source_directory
.
Zgodnie z tym najlepszym rozwiązaniem ma dwie korzyści. Najpierw pomaga zmniejszyć rozmiar migawki utworzonej dla kroku, ponieważ tylko to, co jest potrzebne do wykonania kroku, jest migawek. Po drugie, dane wyjściowe kroku z poprzedniego przebiegu można ponownie użyć, jeśli nie ma żadnych zmian w source_directory
pliku, które wyzwoliłoby ponowne przekazanie migawki.
Poniższy przykład kodu przedstawia użycie elementu PythonScriptStep w scenariuszu trenowania uczenia maszynowego. Aby uzyskać więcej informacji na temat tego przykładu, zobacz 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 obsługują wiele typów danych wejściowych i wyjściowych. Należą do DatasetConsumptionConfig nich dane wejściowe i OutputDatasetConfig, PipelineOutputAbstractDatasetoraz PipelineData dla danych wejściowych i wyjściowych.
Poniżej przedstawiono przykład użycia Dataset jako danych wejściowych i wyjściowych kroku:
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)
Zapoznaj się z odpowiednimi stronami dokumentacji, aby zapoznać się z przykładami użycia innych typów danych wejściowych/wyjściowych.
Metody
create_node |
Utwórz węzeł dla języka PythonScriptStep i dodaj go do określonego grafu. Ta metoda nie jest przeznaczona do bezpośredniego użycia. Po utworzeniu wystąpienia potoku w tym kroku usługa Azure ML automatycznie przekazuje wymagane parametry za pośrednictwem tej metody, aby można było dodać krok do grafu potoku reprezentującego przepływ pracy. |
create_node
Utwórz węzeł dla języka PythonScriptStep i dodaj go do określonego grafu.
Ta metoda nie jest przeznaczona do bezpośredniego użycia. Po utworzeniu wystąpienia potoku w tym kroku usługa Azure ML automatycznie przekazuje wymagane parametry za pośrednictwem tej metody, aby można było dodać krok do grafu potoku reprezentującego przepływ pracy.
create_node(graph, default_datastore, context)
Parametry
Nazwa | Opis |
---|---|
graph
Wymagane
|
Obiekt grafu, do który ma zostać dodany węzeł. |
default_datastore
Wymagane
|
Domyślny magazyn danych. |
context
Wymagane
|
<xref:azureml.pipeline.core._GraphContext>
Kontekst grafu. |
Zwraca
Typ | Opis |
---|---|
Utworzony węzeł. |