CommandStep Klasa

Utwórz krok potoku usługi Azure ML, który uruchamia polecenie.

Utwórz krok potoku usługi Azure ML, który uruchamia polecenie.

Dziedziczenie
azureml.pipeline.core._python_script_step_base._PythonScriptStepBase
CommandStep

Konstruktor

CommandStep(command=None, name=None, compute_target=None, runconfig=None, runconfig_pipeline_params=None, inputs=None, outputs=None, params=None, source_directory=None, allow_reuse=True, version=None)

Parametry

Nazwa Opis
command
list lub str

Polecenie do uruchomienia lub ścieżki pliku wykonywalnego/skryptu względem .source_directory Jest to wymagane, chyba że jest dostarczany z poleceniem runconfig. Można go określić za pomocą argumentów ciągu w jednym ciągu lub z parametrami input/output/PipelineParameter na liście.

wartość domyślna: None
name
str

Nazwa kroku. Jeśli nie zostanie określona, zostanie użyte pierwsze słowo w elemecie command .

wartość domyślna: None
compute_target

Docelowy obiekt obliczeniowy do użycia. Jeśli nie zostanie określona, zostanie użyta wartość docelowa z obiektu 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").

wartość domyślna: None
runconfig

Opcjonalny obiekt konfiguracji, który hermetyzuje informacje niezbędne do przesłania przebiegu trenowania w eksperymencie.

wartość domyślna: None
runconfig_pipeline_params
<xref:<xref:{str: PipelineParameter}>>

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"

wartość domyślna: None
inputs
list[InputPortBinding lub DataReference lub PortDataReference lub PipelineData lub <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> lub DatasetConsumptionConfig]

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

wartość domyślna: None
outputs

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

wartość domyślna: None
params

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

wartość domyślna: None
source_directory
str

Folder zawierający skrypty, env conda i inne zasoby używane w kroku.

wartość domyślna: 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.

wartość domyślna: True
version
str

Opcjonalny tag wersji, aby oznaczyć zmianę funkcjonalności kroku.

wartość domyślna: None
command
Wymagane
list lub str

Polecenie do uruchomienia lub ścieżki pliku wykonywalnego/skryptu względem .source_directory Jest to wymagane, chyba że jest dostarczany z poleceniem runconfig. Można go określić za pomocą argumentów ciągu w jednym ciągu lub z parametrami input/output/PipelineParameter na liście.

name
Wymagane
str

Nazwa kroku. Jeśli nie zostanie określona, zostanie użyte pierwsze słowo w elemecie command .

compute_target
Wymagane

Docelowy obiekt obliczeniowy do użycia. Jeśli nie zostanie określona, zostanie użyta wartość docelowa z obiektu 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

Opcjonalny obiekt konfiguracji, który hermetyzuje informacje niezbędne do przesłania przebiegu trenowania w eksperymencie.

runconfig_pipeline_params
Wymagane
<xref:<xref:{str: PipelineParameter}>>

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[InputPortBinding lub DataReference lub PortDataReference lub PipelineData lub <xref:azureml.pipeline.core.pipeline_output_dataset.PipelineOutputDataset> lub DatasetConsumptionConfig]

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

outputs
Wymagane

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

params
Wymagane

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

source_directory
Wymagane
str

Folder zawierający skrypty, 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.

Uwagi

CommandStep to podstawowy, wbudowany krok umożliwiający uruchomienie polecenia na danym obiekcie docelowym obliczeniowym. Przyjmuje polecenie jako parametr lub z innych parametrów, takich jak runconfig. Przyjmuje również inne parametry opcjonalne, takie jak docelowy obiekt obliczeniowy, dane wejściowe i wyjściowe. Należy użyć elementu ScriptRunConfig lub RunConfiguration , aby określić wymagania dla poleceniaKrok, taki jak niestandardowy obraz platformy Docker.

Najlepszym rozwiązaniem do pracy z poleceniem CommandStep jest użycie oddzielnego folderu dla pliku wykonywalnego lub skryptu do uruchamiania dowolnych plików zależnych skojarzonych z krokiem i określenia 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.

W przypadku znanych przez system poleceń source_directory nie jest wymagane, ale nadal można podać je wszystkim plikom zależnym skojarzonym z tym krokiem.

W poniższym przykładzie kodu pokazano, jak używać polecenia CommandStep w scenariuszu trenowania uczenia maszynowego. Aby wyświetlić listę plików w systemie Linux:


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='list step',
                           command='ls -lrt',
                           compute_target=compute_target)

Aby uruchomić skrypt języka Python:


   from azureml.pipeline.steps import CommandStep

   trainStep = CommandStep(name='train step',
                           command='python train.py arg1 arg2',
                           source_directory=project_folder,
                           compute_target=compute_target)

Aby uruchomić skrypt języka Python za pomocą polecenia ScriptRunConfig:


   from azureml.core import ScriptRunConfig
   from azureml.pipeline.steps import CommandStep

   train_src = ScriptRunConfig(source_directory=script_folder,
                               command='python train.py arg1 arg2',
                               environment=my_env)
   trainStep = CommandStep(name='train step',
                           runconfig=train_src)

Aby https://aka.ms/pl-first-pipeline uzyskać więcej informacji na temat tworzenia potoków, zobacz ogólne informacje.

Metody

create_node

Utwórz węzeł dla polecenia CommandStep 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 polecenia CommandStep 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:_GraphContext>

Kontekst grafu.

Zwraca

Typ Opis

Utworzony węzeł.