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 przez podanie obiektu PipelineData jako danych wyjściowych jednego kroku i danych wejściowych co najmniej jednego kolejnego kroku.

Pamiętaj , że jeśli używasz danych potoku, upewnij się, że katalog istniał.

Przykład języka Python, aby upewnić się, że katalog istniał, załóżmy, że masz port wyjściowy o nazwie output_folder w jednym kroku potoku, chcesz zapisać niektóre 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 bazy danych DataReference , która nie jest już zalecanym podejściem do uzyskiwania dostępu do danych i dostarczania, zamiast tego użyj polecenia OutputFileDatasetConfig . Zamiast tego możesz znaleźć przykład: Potok przy użyciu parametru 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

name
str
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 przebiegu potoku możesz użyć nazwy kroku o nazwie wyjściowej, aby uzyskać dostęp do określonych danych wyjściowych. Nazwy powinny być unikatowe w ramach jednego kroku w potoku.

datastore
AbstractAzureStorageDatastore lub AzureDataLakeDatastore
wartość domyślna: None

Magazyn danych, w którym będzie znajdować się pipelineData. Jeśli nie zostanie określona, zostanie użyty domyślny magazyn danych.

output_name
str
wartość domyślna: None

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

output_mode
str
wartość domyślna: mount

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

output_path_on_compute
str
wartość domyślna: None

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

output_overwrite
bool
wartość domyślna: None

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

data_type
str
wartość domyślna: None

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

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

Jeśli podano 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
TrainingOutput
wartość domyślna: None

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ą być uwzględnione w danych wyjściowych.

name
str
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 przebiegu potoku możesz użyć nazwy kroku o nazwie wyjściowej, aby uzyskać dostęp do określonych danych wyjściowych. Nazwy powinny być unikatowe w ramach jednego kroku w potoku.

datastore
AbstractAzureStorageDatastore lub AzureDataLakeDatastore
Wymagane

Magazyn danych, w którym będzie znajdować się pipelineData. Jeśli nie zostanie określona, zostanie użyty domyślny magazyn danych.

output_name
str
Wymagane

Nazwa danych wyjściowych, jeśli jest używana nazwa Brak. które mogą zawierać tylko litery, cyfry i podkreślenia.

output_mode
str
Wymagane

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

output_path_on_compute
str
Wymagane

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

output_overwrite
bool
Wymagane

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

data_type
str
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
bool
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
str
Wymagane

Jeśli podano 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
TrainingOutput
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ą być uwzględnione w danych wyjściowych.

Uwagi

PipelineData reprezentuje dane wyjściowe danych, który zostanie wygenerowany po uruchomieniu. Użyj metody PipelineData podczas tworzenia kroków, aby opisać pliki lub katalogi, które będą generowane przez krok. Te dane wyjściowe zostaną dodane do określonego magazynu danych i można je później pobrać i wyświetlić.

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 w lokalizacji udostępnionej skryptowi za pośrednictwem argumentu –model.

Obiekty PipelineData są również używane podczas konstruowania potoków w celu opisania zależności kroków. Aby określić, że krok wymaga wykonania 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 pociągu. Usługa Azure ML dostarczy dane wyjściowe wygenerowane przez krok procesu do kroku trenowania.

Zobacz tę stronę, aby uzyskać więcej przykładów użycia metody PipelineData do konstruowania potoku: https://aka.ms/pl-data-dep

W przypadku obsługiwanych typów obliczeniowych funkcja PipelineData może również służyć do określania sposobu 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 jest ustawiana, która wskazuje ś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, użyj get_env_variable_name 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, aby być zestawem danych w celu późniejszego użycia danych jako zestawu danych. Jeśli as_dataset nie jest wywoływana na danych wyjściowych, ale wywoływana tylko na danych wejściowych, będzie to wartość noop, a dane wejściowe nie będą używane jako zestaw danych. W poniższym przykładzie kodu przedstawiono 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

Korzystaj z elementu PipelineData jako pobierania.

as_input

Utwórz właściwość InputPortBinding i określ nazwę wejściową (ale użyj trybu domyślnego).

as_mount

Zajmij się ciągiem PipelineData jako instalacją.

create_input_binding

Utwórz powiązanie wejściowe.

get_env_variable_name

Zwróć nazwę zmiennej środowiskowej dla tej wartości 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, aby być zestawem danych w celu późniejszego użycia danych jako zestawu danych. Jeśli as_dataset nie jest wywoływana na danych wyjściowych, ale wywoływana tylko na danych wejściowych, będzie to wartość noop, a dane wejściowe nie będą używane jako zestaw danych. W poniższym przykładzie kodu przedstawiono 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

Dane wyjściowe pośrednie jako zestaw danych.

Typ zwracany

as_download

Korzystaj z elementu PipelineData jako pobierania.

as_download(input_name=None, path_on_compute=None, overwrite=None)

Parametry

input_name
str
wartość domyślna: None

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

path_on_compute
str
wartość domyślna: None

Ścieżka obliczeniowa do pobrania.

overwrite
bool
wartość domyślna: None

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

Zwraca

Element InputPortBinding z tą wartością PipelineData jako źródłem.

Typ zwracany

as_input

Utwórz właściwość InputPortBinding i określ nazwę wejściową (ale użyj trybu domyślnego).

as_input(input_name)

Parametry

input_name
str
Wymagane

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

Zwraca

Element InputPortBinding z tą wartością PipelineData jako źródłem.

Typ zwracany

as_mount

Zajmij się ciągiem PipelineData jako instalacją.

as_mount(input_name=None)

Parametry

input_name
str
wartość domyślna: None

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

Zwraca

Element InputPortBinding z tą wartością PipelineData jako źródłem.

Typ zwracany

create_input_binding

Utwórz powiązanie wejściowe.

create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)

Parametry

input_name
str
wartość domyślna: None

Nazwa danych wejściowych.

mode
str
wartość domyślna: None

Tryb uzyskiwania dostępu do elementu PipelineData ("mount" lub "download").

path_on_compute
str
wartość domyślna: None

W przypadku trybu pobierania ścieżka obliczeniowa, w którym będą przechowywane dane.

overwrite
bool
wartość domyślna: None

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

Zwraca

Element InputPortBinding z tą wartością PipelineData jako źródłem.

Typ zwracany

get_env_variable_name

Zwróć nazwę zmiennej środowiskowej dla tej wartości PipelineData.

get_env_variable_name()

Zwraca

Nazwa zmiennej środowiskowej.

Typ zwracany

str

Atrybuty

data_type

Typ danych, które zostaną wygenerowane.

Zwraca

Nazwa typu danych.

Typ zwracany

str

datastore

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

Zwraca

Obiekt Magazyn danych.

Typ zwracany

name

Nazwa obiektu PipelineData.

Zwraca

Nazwa.

Typ zwracany

str