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.object
PipelineData

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
str

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.

wartość domyślna: None
output_name
str

Nazwa danych wyjściowych, jeśli jest używana nazwa Brak. Może zawierać tylko litery, cyfry i podkreślenia.

wartość domyślna: None
output_mode
str

Określa, czy krok tworzenia będzie używać metody "upload" lub "mount" w celu uzyskania dostępu do danych.

wartość domyślna: mount
output_path_on_compute
str

Dla output_mode = "upload", ten parametr reprezentuje ścieżkę, do których moduł zapisuje dane wyjściowe.

wartość domyślna: None
output_overwrite

Dla output_mode = "upload" ten parametr określa, czy zastąpić istniejące dane.

wartość domyślna: None
data_type
str

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.

wartość domyślna: 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 data_type parametr nie jest podany. Wartość domyślna to False.

wartość domyślna: None
pipeline_output_name

Jeśli te dane wyjściowe będą dostępne przy użyciu polecenia PipelineRun.get_pipeline_output(). Nazwy danych wyjściowych potoku muszą być unikatowe w potoku.

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

wartość domyślna: None
name
Wymagane
str

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
str

Nazwa danych wyjściowych, jeśli jest używana nazwa Brak. może zawierać tylko litery, cyfry i podkreślenia.

output_mode
Wymagane
str

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
str

Dla output_mode = "upload", ten parametr reprezentuje ścieżkę, do których moduł zapisuje dane wyjściowe.

output_overwrite
Wymagane

Dla output_mode = "upload" ten parametr określa, czy zastąpić istniejące dane.

data_type
Wymagane
str

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 data_type parametr nie jest podany. Wartość domyślna to False.

pipeline_output_name
Wymagane
str

Jeśli te dane wyjściowe będą dostępne przy użyciu polecenia PipelineRun.get_pipeline_output(). Nazwy danych wyjściowych potoku muszą być unikatowe w potoku.

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_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_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
str

Użyj polecenia , aby określić nazwę dla tych danych wejściowych.

wartość domyślna: None
path_on_compute
str

Ścieżka obliczeniowa do pobrania.

wartość domyślna: None
overwrite

Służy do wskazywania, czy zastąpić istniejące dane.

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

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
str

Użyj polecenia , aby określić nazwę dla tych danych wejściowych.

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

Nazwa danych wejściowych.

wartość domyślna: None
mode
str

Tryb uzyskiwania dostępu do elementu PipelineData ("instalowanie" lub "pobieranie").

wartość domyślna: None
path_on_compute
str

W przypadku trybu "pobierania" ścieżka obliczeniowa będzie znajdować się w danych.

wartość domyślna: None
overwrite

W przypadku trybu "pobierania" określ, czy zastąpić istniejące dane.

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

Nazwa zmiennej środowiskowej.

Atrybuty

data_type

Typ danych, które zostaną wygenerowane.

Zwraca

Typ Opis
str

Nazwa typu danych.

datastore

Magazyn danych, w którym będzie znajdować się element PipelineData.

Zwraca

Typ Opis

Obiekt Magazynu danych.

name

Nazwa obiektu PipelineData.

Zwraca

Typ Opis
str

Nazwa.