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.
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 określono, Domyślna wartość: None
|
|
arguments
|
Argumenty wiersza polecenia dla pliku skryptu języka Python. Argumenty zostaną przekazane do obliczeń za pośrednictwem parametru w elem Domyślna wartość: None
|
|
compute_target
|
[Wymagane] Docelowy obiekt obliczeniowy do użycia. Jeśli nie zostanie określony, 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"). Domyślna wartość: None
|
|
runconfig
|
Opcjonalna konfiguracja 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ślony, zostanie utworzona domyślna konfiguracja runconfig. Domyślna wartość: None
|
|
runconfig_pipeline_params
|
Zastąpienia 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 "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 podczas ponownego uruchamiania z tymi samymi ustawieniami. Ponowne użycie jest domyślnie włączone. Jeśli zawartość kroku (skrypty/zależności), a także dane wejściowe i parametry pozostają niezmienione, dane wyjściowe z poprzedniego przebiegu tego kroku są ponownie używane. Podczas ponownego wykonywania kroku zamiast przesyłania zadania do obliczeń wyniki z poprzedniego przebiegu 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. Domyślna wartość: True
|
|
version
|
Opcjonalny tag wersji, aby oznaczyć zmianę funkcji dla kroku. Domyślna wartość: None
|
|
hash_paths
|
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 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 określono, |
|
arguments
Wymagane
|
[str]
Argumenty wiersza polecenia dla pliku skryptu języka Python. Argumenty zostaną przekazane do obliczeń za pośrednictwem parametru w elem |
|
compute_target
Wymagane
|
[Wymagane] Docelowy obiekt obliczeniowy do użycia. Jeśli nie zostanie określony, 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
Wymagane
|
Opcjonalna konfiguracja 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ślony, zostanie utworzona domyślna konfiguracja runconfig. |
|
runconfig_pipeline_params
Wymagane
|
Zastąpienia 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 podczas ponownego uruchamiania z tymi samymi ustawieniami. Ponowne użycie jest domyślnie włączone. Jeśli zawartość kroku (skrypty/zależności), a także dane wejściowe i parametry pozostają niezmienione, dane wyjściowe z poprzedniego przebiegu tego kroku są ponownie używane. Podczas ponownego wykonywania kroku zamiast przesyłania zadania do obliczeń wyniki z poprzedniego przebiegu 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
Wymagane
|
Opcjonalny tag wersji, aby oznaczyć zmianę funkcji dla kroku. |
|
hash_paths
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 jest skrótem |
Uwagi
PythonScriptStep to podstawowy, wbudowany krok uruchamiania skryptu języka Python na docelowym obiekcie obliczeniowym. Przyjmuje 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ć 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 plików zależnych skojarzonych z krokiem i określenie tego folderu z parametrem 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 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ładowy kod 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 parametry wymagane 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 parametry wymagane 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ł. |