Udostępnij za pośrednictwem


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._PythonScriptStepBase
PythonScriptStep

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
str

[Wymagane] Nazwa skryptu języka Python względem .source_directory

name
str

Nazwa kroku. Jeśli nie zostanie określona, script_name zostanie użyta.

Domyślna wartość: None
arguments

Argumenty wiersza polecenia dla pliku skryptu języka Python. Argumenty zostaną przekazane do obliczeń za pośrednictwem parametru arguments w funkcji RunConfiguration. Aby uzyskać więcej informacji na temat obsługi argumentów, takich jak symbole specjalne, zobacz RunConfiguration.

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

Lista powiązań portów wejściowych.

Domyślna wartość: None
outputs

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
str

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
str

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 source_directory z wyjątkiem plików wymienionych w pliku .amlignore lub .gitignore.

Domyślna wartość: None
script_name
Wymagane
str

[Wymagane] Nazwa skryptu języka Python względem .source_directory

name
Wymagane
str

Nazwa kroku. Jeśli nie zostanie określona, script_name zostanie użyta.

arguments
Wymagane
[str]

Argumenty wiersza polecenia dla pliku skryptu języka Python. Argumenty zostaną przekazane do obliczeń za pośrednictwem parametru arguments w funkcji RunConfiguration. Aby uzyskać więcej informacji na temat obsługi argumentów, takich jak symbole specjalne, zobacz RunConfiguration.

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

Lista powiązań portów wejściowych.

outputs
Wymagane

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
str

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
str

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 source_directory z wyjątkiem plików wymienionych w pliku .amlignore lub .gitignore.

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ł.