PipelineData Klasa
Reprezentuje dane pośrednie w potoku usługi Azure Machine Learning.
Dane używane w potoku mogą być tworzone przez jeden krok i używane w innym kroku, dostarczając obiekt PipelineData jako dane wyjściowe jednego kroku i dane wejściowe co najmniej jednego kolejnego kroku.
Pamiętaj , że jeśli używasz danych potoku, upewnij się, że używany katalog istniał.
Przykład w języku Python, aby upewnić się, że katalog istniał, załóżmy, że masz port wyjściowy o nazwie output_folder w jednym kroku potoku, chcesz zapisać dane do ścieżki względnej w tym folderze.
import os
os.makedirs(args.output_folder, exist_ok=True)
f = open(args.output_folder + '/relative_path/file_name', 'w+')
PipelineData używa elementu DataReference bazowego, który nie jest już zalecanym podejściem do uzyskiwania dostępu do danych i dostarczania. Zamiast tego użyj polecenia OutputFileDatasetConfig . Przykład można znaleźć tutaj: Potok przy użyciu elementu OutputFileDatasetConfig.
Inicjowanie elementu PipelineData.
- Dziedziczenie
-
builtins.objectPipelineData
Konstruktor
PipelineData(name, datastore=None, output_name=None, output_mode='mount', output_path_on_compute=None, output_overwrite=None, data_type=None, is_directory=None, pipeline_output_name=None, training_output=None)
Parametry
Nazwa | Opis |
---|---|
name
Wymagane
|
Nazwa obiektu PipelineData, który może zawierać tylko litery, cyfry i podkreślenia. Nazwy PipelineData służą do identyfikowania danych wyjściowych kroku. Po zakończeniu uruchomienia potoku możesz użyć nazwy kroku z nazwą wyjściową, aby uzyskać dostęp do określonych danych wyjściowych. Nazwy powinny być unikatowe w ramach jednego kroku w potoku. |
datastore
|
Magazyn danych, w którym będzie znajdować się element PipelineData. Jeśli nie zostanie określona, zostanie użyty domyślny magazyn danych. Domyślna wartość: None
|
output_name
|
Nazwa danych wyjściowych, jeśli jest używana nazwa Brak. Może zawierać tylko litery, cyfry i podkreślenia. Domyślna wartość: None
|
output_mode
|
Określa, czy krok tworzenia będzie używać metody "upload" lub "mount" w celu uzyskania dostępu do danych. Domyślna wartość: mount
|
output_path_on_compute
|
Dla Domyślna wartość: None
|
output_overwrite
|
Dla Domyślna wartość: None
|
data_type
|
Opcjonalny. Typ danych może służyć do określania oczekiwanego typu danych wyjściowych i szczegółowego sposobu korzystania z danych. Może to być dowolny ciąg zdefiniowany przez użytkownika. Domyślna wartość: None
|
is_directory
|
Określa, czy dane są katalogiem, czy pojedynczym plikiem. Służy to tylko do określania typu danych używanego przez zaplecze usługi Azure ML, gdy Domyślna wartość: None
|
pipeline_output_name
|
Jeśli te dane wyjściowe będą dostępne przy użyciu polecenia Domyślna wartość: None
|
training_output
|
Definiuje dane wyjściowe dla wyniku trenowania. Jest to wymagane tylko w przypadku określonych szkoleń, które powodują różne rodzaje danych wyjściowych, takich jak metryki i model. Na przykład AutoMLStep wyniki w metrykach i modelu. Można również zdefiniować konkretną iterację trenowania lub metryki używane do uzyskania najlepszego modelu. W przypadku HyperDriveStepprogramu można również zdefiniować określone pliki modelu, które mają zostać uwzględnione w danych wyjściowych. Domyślna wartość: None
|
name
Wymagane
|
Nazwa obiektu PipelineData, który może zawierać tylko litery, cyfry i podkreślenia. Nazwy PipelineData służą do identyfikowania danych wyjściowych kroku. Po zakończeniu uruchomienia potoku możesz użyć nazwy kroku z nazwą wyjściową, aby uzyskać dostęp do określonych danych wyjściowych. Nazwy powinny być unikatowe w ramach jednego kroku w potoku. |
datastore
Wymagane
|
Magazyn danych, w którym będzie znajdować się element PipelineData. Jeśli nie zostanie określona, zostanie użyty domyślny magazyn danych. |
output_name
Wymagane
|
Nazwa danych wyjściowych, jeśli jest używana nazwa Brak. może zawierać tylko litery, cyfry i podkreślenia. |
output_mode
Wymagane
|
Określa, czy krok tworzenia będzie używać metody "upload" lub "mount" w celu uzyskania dostępu do danych. |
output_path_on_compute
Wymagane
|
Dla |
output_overwrite
Wymagane
|
Dla |
data_type
Wymagane
|
Opcjonalny. Typ danych może służyć do określania oczekiwanego typu danych wyjściowych i szczegółowego sposobu korzystania z danych. Może to być dowolny ciąg zdefiniowany przez użytkownika. |
is_directory
Wymagane
|
Określa, czy dane są katalogiem, czy pojedynczym plikiem. Służy to tylko do określania typu danych używanego przez zaplecze usługi Azure ML, gdy |
pipeline_output_name
Wymagane
|
Jeśli te dane wyjściowe będą dostępne przy użyciu polecenia |
training_output
Wymagane
|
Definiuje dane wyjściowe dla wyniku trenowania. Jest to wymagane tylko w przypadku określonych szkoleń, które powodują różne rodzaje danych wyjściowych, takich jak metryki i model. Na przykład AutoMLStep wyniki w metrykach i modelu. Można również zdefiniować konkretną iterację trenowania lub metryki używane do uzyskania najlepszego modelu. W przypadku HyperDriveStepprogramu można również zdefiniować określone pliki modelu, które mają zostać uwzględnione w danych wyjściowych. |
Uwagi
PipelineData reprezentuje dane wyjściowe danych, które zostaną wygenerane po uruchomieniu. Użyj wartości PipelineData podczas tworzenia kroków, aby opisać pliki lub katalogi, które zostaną wygenerowane przez krok. Te dane wyjściowe zostaną dodane do określonego magazynu danych i można je pobrać i wyświetlić później.
Na przykład następujący krok potoku generuje jedno dane wyjściowe o nazwie "model":
from azureml.pipeline.core import PipelineData
from azureml.pipeline.steps import PythonScriptStep
datastore = ws.get_default_datastore()
step_output = PipelineData("model", datastore=datastore)
step = PythonScriptStep(script_name="train.py",
arguments=["--model", step_output],
outputs=[step_output],
compute_target=aml_compute,
source_directory=source_directory)
W takim przypadku skrypt train.py napisze model, który tworzy, do lokalizacji, która jest dostarczana do skryptu za pośrednictwem argumentu –model.
Obiekty PipelineData są również używane podczas tworzenia potoków w celu opisania zależności kroków. Aby określić, że krok wymaga danych wyjściowych innego kroku jako danych wejściowych, użyj obiektu PipelineData w konstruktorze obu kroków.
Na przykład krok trenowania potoku zależy od process_step_output danych wyjściowych kroku procesu potoku:
from azureml.pipeline.core import Pipeline, PipelineData
from azureml.pipeline.steps import PythonScriptStep
datastore = ws.get_default_datastore()
process_step_output = PipelineData("processed_data", datastore=datastore)
process_step = PythonScriptStep(script_name="process.py",
arguments=["--data_for_train", process_step_output],
outputs=[process_step_output],
compute_target=aml_compute,
source_directory=process_directory)
train_step = PythonScriptStep(script_name="train.py",
arguments=["--data_for_train", process_step_output],
inputs=[process_step_output],
compute_target=aml_compute,
source_directory=train_directory)
pipeline = Pipeline(workspace=ws, steps=[process_step, train_step])
Spowoduje to utworzenie potoku z dwoma krokami. Krok procesu zostanie wykonany najpierw, a następnie po jego zakończeniu zostanie wykonany krok trenowania. Usługa Azure ML udostępni dane wyjściowe wygenerowane przez krok procesu do kroku trenowania.
Zobacz tę stronę, aby uzyskać więcej przykładów użycia elementu PipelineData do konstruowania potoku: https://aka.ms/pl-data-dep
W przypadku obsługiwanych typów obliczeniowych można również użyć elementu PipelineData, aby określić sposób tworzenia i wykorzystania danych przez przebieg. Istnieją dwie obsługiwane metody:
Instalacja (ustawienie domyślne): dane wejściowe lub wyjściowe są instalowane w magazynie lokalnym w węźle obliczeniowym, a zmienna środowiskowa określa ścieżkę tych danych ($AZUREML_DATAREFERENCE_name). Dla wygody można przekazać obiekt PipelineData jako jeden z argumentów do skryptu, na przykład przy użyciu
arguments
parametru PythonScriptStep, a obiekt rozpozna ścieżkę do danych. W przypadku danych wyjściowych skrypt obliczeniowy powinien utworzyć plik lub katalog w tej ścieżce wyjściowej. Aby wyświetlić wartość zmiennej środowiskowej używanej podczas przekazywania obiektu Pipeline jako argumentu get_env_variable_name , użyj metody .Przekaż: określ odpowiadającą
output_path_on_compute
nazwę pliku lub katalogu, który zostanie wygenerowany przez skrypt. (Zmienne środowiskowe nie są używane w tym przypadku).
Metody
as_dataset |
Podwyższ poziom danych wyjściowych pośrednich do zestawu danych. Ten zestaw danych będzie istnieć po wykonaniu kroku. Należy pamiętać, że dane wyjściowe muszą być promowane do zestawu danych w celu późniejszego użycia danych wejściowych jako zestaw danych. Jeśli as_dataset nie jest wywoływana na danych wyjściowych, ale wywoływana tylko dla danych wejściowych, będzie to noop, a dane wejściowe nie będą używane jako zestaw danych. Poniższy przykład kodu przedstawia poprawne użycie as_dataset:
|
as_download |
Pobierz dane PipelineData. |
as_input |
Twórca inputPortBinding i określ nazwę wejściową (ale użyj trybu domyślnego). |
as_mount |
Używanie elementu PipelineData jako instalacji. |
create_input_binding |
Twórca powiązanie wejściowe. |
get_env_variable_name |
Zwróć nazwę zmiennej środowiskowej dla tego elementu PipelineData. |
as_dataset
Podwyższ poziom danych wyjściowych pośrednich do zestawu danych.
Ten zestaw danych będzie istnieć po wykonaniu kroku. Należy pamiętać, że dane wyjściowe muszą być promowane do zestawu danych w celu późniejszego użycia danych wejściowych jako zestaw danych. Jeśli as_dataset nie jest wywoływana na danych wyjściowych, ale wywoływana tylko dla danych wejściowych, będzie to noop, a dane wejściowe nie będą używane jako zestaw danych. Poniższy przykład kodu przedstawia poprawne użycie as_dataset:
# as_dataset is called here and is passed to both the output and input of the next step.
pipeline_data = PipelineData('output').as_dataset()
step1 = PythonScriptStep(..., outputs=[pipeline_data])
step2 = PythonScriptStep(..., inputs=[pipeline_data])
as_dataset()
Zwraca
Typ | Opis |
---|---|
Dane wyjściowe pośrednie jako zestaw danych. |
as_download
Pobierz dane PipelineData.
as_download(input_name=None, path_on_compute=None, overwrite=None)
Parametry
Nazwa | Opis |
---|---|
input_name
|
Użyj polecenia , aby określić nazwę dla tych danych wejściowych. Domyślna wartość: None
|
path_on_compute
|
Ścieżka obliczeniowa do pobrania. Domyślna wartość: None
|
overwrite
|
Służy do wskazywania, czy zastąpić istniejące dane. Domyślna wartość: None
|
Zwraca
Typ | Opis |
---|---|
Element InputPortBinding z tym elementem PipelineData jako źródłem. |
as_input
Twórca inputPortBinding i określ nazwę wejściową (ale użyj trybu domyślnego).
as_input(input_name)
Parametry
Nazwa | Opis |
---|---|
input_name
Wymagane
|
Użyj polecenia , aby określić nazwę dla tych danych wejściowych. |
Zwraca
Typ | Opis |
---|---|
Element InputPortBinding z tym elementem PipelineData jako źródłem. |
as_mount
Używanie elementu PipelineData jako instalacji.
as_mount(input_name=None)
Parametry
Nazwa | Opis |
---|---|
input_name
|
Użyj polecenia , aby określić nazwę dla tych danych wejściowych. Domyślna wartość: None
|
Zwraca
Typ | Opis |
---|---|
Element InputPortBinding z tym elementem PipelineData jako źródłem. |
create_input_binding
Twórca powiązanie wejściowe.
create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)
Parametry
Nazwa | Opis |
---|---|
input_name
|
Nazwa danych wejściowych. Domyślna wartość: None
|
mode
|
Tryb uzyskiwania dostępu do elementu PipelineData ("instalowanie" lub "pobieranie"). Domyślna wartość: None
|
path_on_compute
|
W przypadku trybu "pobierania" ścieżka obliczeniowa będzie znajdować się w danych. Domyślna wartość: None
|
overwrite
|
W przypadku trybu "pobierania" określ, czy zastąpić istniejące dane. Domyślna wartość: None
|
Zwraca
Typ | Opis |
---|---|
Element InputPortBinding z tym elementem PipelineData jako źródłem. |
get_env_variable_name
Zwróć nazwę zmiennej środowiskowej dla tego elementu PipelineData.
get_env_variable_name()
Zwraca
Typ | Opis |
---|---|
Nazwa zmiennej środowiskowej. |
Atrybuty
data_type
datastore
Magazyn danych, w którym będzie znajdować się element PipelineData.
Zwraca
Typ | Opis |
---|---|
Obiekt Magazynu danych. |