PythonScriptStep Klasa

Tworzy krok potoku usługi Azure ML, który uruchamia skrypt języka Python.

Przykład użycia języka PythonScriptStep można znaleźć w notesie 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

script_name
str
Wymagane

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

name
str
wartość domyślna: None

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

arguments
list
wartość domyślna: None

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
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
wartość domyślna: None

[Wymagane] Docelowy obiekt obliczeniowy do użycia. Jeśli nie zostanie określona, zostanie użyty element docelowy z konfiguracji 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 docelowa obliczeniowa", "typ docelowy obliczeniowy"), aby uniknąć pobierania obiektu docelowego obliczeniowego (typ AmlCompute to "AmlCompute", a typ RemoteCompute to "VirtualMachine").

runconfig
RunConfiguration
wartość domyślna: None

Opcjonalna funkcja RunConfiguration do użycia. Za pomocą polecenia RunConfiguration można określić dodatkowe wymagania dotyczące przebiegu, takie jak zależności conda i obraz platformy Docker. Jeśli nie zostanie określona, zostanie utworzona domyślna konfiguracja runconfig.

runconfig_pipeline_params
dict[str, PipelineParameter]
wartość domyślna: None

Przesłania 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"

outputs
list[Union[PipelineData, OutputDatasetConfig, PipelineOutputFileDataset, PipelineOutputTabularDataset, OutputPortBinding]]
wartość domyślna: None

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

params
dict
wartość domyślna: None

Słownik par name-value zarejestrowanych jako zmienne środowiskowe z "AML_PARAMETER_".

source_directory
str
wartość domyślna: None

Folder zawierający skrypt języka Python, env conda i inne zasoby używane w kroku.

allow_reuse
bool
wartość domyślna: True

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 uruchomienia są natychmiast udostępniane wszelkim 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
str
wartość domyślna: None

Opcjonalny tag wersji, aby oznaczyć zmianę funkcji dla kroku.

hash_paths
list
wartość domyślna: None

PRZESTARZAŁE: nie jest już potrzebne.

Lista ścieżek do skrótu podczas sprawdzania zmian w zawartości kroku. Jeśli nie wykryto żadnych zmian, potok ponownie użyje zawartości kroku z poprzedniego uruchomienia. Domyślnie zawartość elementu source_directory jest skrótem z wyjątkiem plików wymienionych w pliku .amlignore lub .gitignore.

script_name
str
Wymagane

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

name
str
Wymagane

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

arguments
[str]
Wymagane

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
Union[DsvmCompute, AmlCompute, RemoteCompute, HDInsightCompute, str, tuple]
Wymagane

[Wymagane] Docelowy obiekt obliczeniowy do użycia. Jeśli nie zostanie określona, zostanie użyty element docelowy z konfiguracji 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 docelowa obliczeniowa", "typ docelowy obliczeniowy"), aby uniknąć pobierania obiektu docelowego obliczeniowego (typ AmlCompute to "AmlCompute", a typ RemoteCompute to "VirtualMachine").

runconfig
RunConfiguration
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
dict[str, PipelineParameter]
Wymagane

Przesłania 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"

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

Słownik par name-value. Zarejestrowane jako zmienne środowiskowe z wartością ">>AML_PARAMETER_<<".

source_directory
str
Wymagane

Folder zawierający skrypt języka Python, env conda i inne zasoby używane w kroku.

allow_reuse
bool
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 uruchomienia są natychmiast udostępniane wszelkim 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
str
Wymagane

Opcjonalny tag wersji, aby oznaczyć zmianę funkcji dla kroku.

hash_paths
list
Wymagane

PRZESTARZAŁE: nie jest już potrzebne.

Lista ścieżek do skrótu podczas sprawdzania zmian w zawartości kroku. Jeśli nie wykryto żadnych zmian, potok ponownie użyje zawartości kroku z poprzedniego uruchomienia. Domyślnie zawartość elementu source_directory jest skrótem z wyjątkiem plików wymienionych w pliku .amlignore lub .gitignore.

Uwagi

PythonScriptStep to podstawowy, wbudowany krok uruchamiania skryptu języka Python na obiekcie docelowym 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 obiekt docelowy obliczeniowy dla obszaru roboczego. Można również użyć elementu , RunConfiguration aby określić wymagania dotyczące języka 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 zależnych plików skojarzonych z krokiem i określenia tego folderu z parametrem source_directory . Poniższe najlepsze rozwiązanie ma dwie korzyści. Najpierw pomaga zmniejszyć rozmiar migawki utworzonej dla kroku, ponieważ tylko to, co jest potrzebne do wykonania kroku, jest migawkowane. 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 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 PythonScriptKrok i dodaj go do określonego grafu.

Ta metoda nie jest przeznaczona do użycia bezpośrednio. Po utworzeniu wystąpienia potoku w tym kroku usługa Azure ML automatycznie przekazuje parametry wymagane za pomocą tej metody, aby można było dodać krok do wykresu potoku reprezentującego przepływ pracy.

create_node

Utwórz węzeł dla języka PythonScriptKrok i dodaj go do określonego grafu.

Ta metoda nie jest przeznaczona do użycia bezpośrednio. Po utworzeniu wystąpienia potoku w tym kroku usługa Azure ML automatycznie przekazuje parametry wymagane za pomocą tej metody, aby można było dodać krok do wykresu potoku reprezentującego przepływ pracy.

create_node(graph, default_datastore, context)

Parametry

graph
Graph
Wymagane

Obiekt grafu, do który ma zostać dodany węzeł.

default_datastore
Union[AbstractAzureStorageDatastore, AzureDataLakeDatastore]
Wymagane

Domyślny magazyn danych.

context
<xref:azureml.pipeline.core._GraphContext>
Wymagane

Kontekst grafu.

Zwraca

Utworzony węzeł.

Typ zwracany