PipelineData Osztály
Köztes adatokat jelöl egy Azure Machine Learning-folyamatban.
A folyamatokban használt adatok egy lépéssel állíthatók elő, és egy másik lépésben használhatók fel egy PipelineData-objektum egy lépés kimeneteként, valamint egy vagy több későbbi lépés bemeneteként.
Vegye figyelembe , hogy ha a folyamatadatokat használja, győződjön meg arról, hogy a használt könyvtár létezett.
Egy Python-példa a könyvtár létezésének biztosítására, tegyük fel, hogy egy folyamatlépésben output_folder nevű kimeneti portot szeretne írni a mappában lévő relatív elérési útra.
import os
os.makedirs(args.output_folder, exist_ok=True)
f = open(args.output_folder + '/relative_path/file_name', 'w+')
A PipelineData dataReference mögöttes objektumot használ, amely már nem az adathozzáférés és -továbbítás ajánlott megközelítése. Ehelyett használja az OutputFileDatasetConfig parancsot . A minta itt található: Pipeline using OutputFileDatasetConfig.
PipelineData inicializálása.
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)
Paraméterek
| Name | Description |
|---|---|
|
name
Kötelező
|
A PipelineData objektum neve, amely csak betűket, számjegyeket és aláhúzásjeleket tartalmazhat. A PipelineData-nevek egy lépés kimeneteinek azonosítására szolgálnak. A folyamatfuttatás befejeződése után a lépésnév és egy kimeneti név használatával elérheti az adott kimenetet. A neveknek egyedinek kell lenniük a folyamat egyetlen lépésében. |
|
datastore
|
Azon adattár, amelyen a PipelineData található. Ha nincs meghatározva, a rendszer az alapértelmezett adattárat használja. Alapértelmezett érték: None
|
|
output_name
|
A kimenet neve, ha nincs név. Csak betűket, számjegyeket és aláhúzásjeleket tartalmazhat. Alapértelmezett érték: None
|
|
output_mode
|
Megadja, hogy a termelő lépés a "upload" vagy a "mount" metódust használja-e az adatok eléréséhez. Alapértelmezett érték: mount
|
|
output_path_on_compute
|
A Alapértelmezett érték: None
|
|
output_overwrite
|
A Alapértelmezett érték: None
|
|
data_type
|
Opcionális. Az adattípussal megadhatja a kimenet várt típusát, és részletezheti, hogy a használat lépései hogyan használják az adatokat. Bármilyen felhasználó által definiált sztring lehet. Alapértelmezett érték: None
|
|
is_directory
|
Megadja, hogy az adatok címtárak vagy egyetlen fájlok-e. Ez csak az Azure ML-háttérrendszer által használt adattípus meghatározására szolgál, ha a Alapértelmezett érték: None
|
|
pipeline_output_name
|
Ha ez a kimenet elérhető lesz a következő használatával Alapértelmezett érték: None
|
|
training_output
|
A betanítási eredmény kimenetét határozza meg. Ez csak bizonyos betanításokhoz szükséges, amelyek különböző kimeneteket eredményeznek, például metrikákat és modelleket. Például metrikákat AutoMLStep és modellt eredményez. A legjobb modell eléréséhez meghatározott betanítási iterációt vagy metrikát is meghatározhat. Itt HyperDriveStepmegadhatja a kimenetbe felvenni kívánt modellfájlokat is. Alapértelmezett érték: None
|
|
name
Kötelező
|
A PipelineData objektum neve, amely csak betűket, számjegyeket és aláhúzásjeleket tartalmazhat. A PipelineData-nevek egy lépés kimeneteinek azonosítására szolgálnak. A folyamatfuttatás befejeződése után a lépésnév és egy kimeneti név használatával elérheti az adott kimenetet. A neveknek egyedinek kell lenniük a folyamat egyetlen lépésében. |
|
datastore
Kötelező
|
Azon adattár, amelyen a PipelineData található. Ha nincs meghatározva, a rendszer az alapértelmezett adattárat használja. |
|
output_name
Kötelező
|
A kimenet neve, ha nincs név. amely csak betűket, számjegyeket és aláhúzásjeleket tartalmazhat. |
|
output_mode
Kötelező
|
Megadja, hogy a termelő lépés a "upload" vagy a "mount" metódust használja-e az adatok eléréséhez. |
|
output_path_on_compute
Kötelező
|
A |
|
output_overwrite
Kötelező
|
A |
|
data_type
Kötelező
|
Opcionális. Az adattípussal megadhatja a kimenet várt típusát, és részletezheti, hogy a használat lépései hogyan használják az adatokat. Bármilyen felhasználó által definiált sztring lehet. |
|
is_directory
Kötelező
|
Megadja, hogy az adatok címtárak vagy egyetlen fájlok-e. Ez csak az Azure ML-háttérrendszer által használt adattípus meghatározására szolgál, ha a |
|
pipeline_output_name
Kötelező
|
Ha ez a kimenet elérhető lesz a következő használatával |
|
training_output
Kötelező
|
A betanítási eredmény kimenetét határozza meg. Ez csak bizonyos betanításokhoz szükséges, amelyek különböző kimeneteket eredményeznek, például metrikákat és modelleket. Például metrikákat AutoMLStep és modellt eredményez. A legjobb modell eléréséhez meghatározott betanítási iterációt vagy metrikát is meghatározhat. Itt HyperDriveStepmegadhatja a kimenetbe felvenni kívánt modellfájlokat is. |
Megjegyzések
A PipelineData olyan adatkimenetet jelöl, amelyet a futtatáskor egy lépés hoz létre. A PipelineData használatával lépésekkel írhatja le a lépés által létrehozott fájlokat vagy könyvtárakat. Ezek az adatkimenetek hozzáadva lesznek a megadott adattárhoz, és később lekérhetők és megtekinthetők.
A következő folyamatlépés például egy "modell" nevű kimenetet hoz létre:
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)
Ebben az esetben a train.py szkript az általa előállított modellt a –model argumentumon keresztül a szkript számára biztosított helyre írja.
PipelineData-objektumokat is használ a folyamat létrehozásakor a lépésfüggőségek leírására. Ha meg szeretné adni, hogy egy lépéshez egy másik lépés kimenete szükséges bemenetként, használjon pipelineData objektumot mindkét lépés konstruktorában.
A folyamatbetanítási lépés például a folyamatfolyamat-lépés process_step_output kimenetétől függ:
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])
Ez létrehoz egy folyamatot két lépéssel. Először a folyamatlépés lesz végrehajtva, majd a folyamat befejezése után a rendszer végrehajtja a betanítási lépést. Az Azure ML biztosítja a folyamatlépés által előállított kimenetet a betanítási lépéshez.
Ezen a lapon további példákat talál a PipelineData használatával egy folyamat létrehozásához: https://aka.ms/pl-data-dep
Támogatott számítási típusok esetén a PipelineData használatával megadhatja, hogy a futtatás hogyan hozza létre és használja fel az adatokat. Két támogatott módszer létezik:
Csatlakoztatás (alapértelmezett): A bemeneti vagy kimeneti adatok a számítási csomópont helyi tárolójára csatlakoznak, és egy környezeti változó van beállítva, amely az adatok elérési útjára mutat ($AZUREML_DATAREFERENCE_name). Az egyszerűség kedvéért a PipelineData objektumot az argumentumok egyikeként továbbíthatja a szkriptnek, például a
argumentsparaméter PythonScriptStephasználatával, és az objektum feloldja az adatok elérési útját. Kimenetek esetén a számítási szkriptnek ezen a kimeneti útvonalon létre kell hoznia egy fájlt vagy könyvtárat. A folyamatobjektum argumentumként való átadásakor használt környezeti változó értékének megtekintéséhez használja a metódust get_env_variable_name .Feltöltés: Adja meg a
output_path_on_computeszkript által generált fájl- vagy könyvtárnévnek megfelelőt. (Ebben az esetben a környezeti változók nem használhatók.)
Metódusok
| as_dataset |
A köztes kimenet előléptetése adatkészletté. Ez az adatkészlet a lépés végrehajtása után fog létezni. Vegye figyelembe, hogy a kimenetet elő kell léptetni adathalmazként ahhoz, hogy a későbbi bemenet adathalmazként legyen felhasználva. Ha as_dataset nincs meghívva a kimeneten, de csak a bemenetre van meghívva, akkor az egy noop lesz, és a bemenet nem lesz adatkészletként használva. Az alábbi kód példája a as_dataset helyes használatát mutatja be:
|
| as_download |
Használja a PipelineData-t letöltésként. |
| as_input |
Hozzon létre egy InputPortBindinget, és adjon meg egy bemeneti nevet (de használja az alapértelmezett módot). |
| as_mount |
Használja a PipelineData-t csatlakoztatásként. |
| create_input_binding |
Bemeneti kötés létrehozása. |
| get_env_variable_name |
Adja vissza a PipelineData környezeti változójának nevét. |
as_dataset
A köztes kimenet előléptetése adatkészletté.
Ez az adatkészlet a lépés végrehajtása után fog létezni. Vegye figyelembe, hogy a kimenetet elő kell léptetni adathalmazként ahhoz, hogy a későbbi bemenet adathalmazként legyen felhasználva. Ha as_dataset nincs meghívva a kimeneten, de csak a bemenetre van meghívva, akkor az egy noop lesz, és a bemenet nem lesz adatkészletként használva. Az alábbi kód példája a as_dataset helyes használatát mutatja be:
# 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()
Válaszok
| Típus | Description |
|---|---|
|
A köztes kimenet adathalmazként. |
as_download
Használja a PipelineData-t letöltésként.
as_download(input_name=None, path_on_compute=None, overwrite=None)
Paraméterek
| Name | Description |
|---|---|
|
input_name
|
A bemenet nevének megadására használható. Alapértelmezett érték: None
|
|
path_on_compute
|
A számítási útvonal, amelybe le szeretné tölteni a fájlt. Alapértelmezett érték: None
|
|
overwrite
|
Azt jelzi, hogy felülírja-e a meglévő adatokat. Alapértelmezett érték: None
|
Válaszok
| Típus | Description |
|---|---|
|
Az InputPortBinding ezzel a PipelineData-val forrásként. |
as_input
Hozzon létre egy InputPortBindinget, és adjon meg egy bemeneti nevet (de használja az alapértelmezett módot).
as_input(input_name)
Paraméterek
| Name | Description |
|---|---|
|
input_name
Kötelező
|
A bemenet nevének megadására használható. |
Válaszok
| Típus | Description |
|---|---|
|
Az InputPortBinding ezzel a PipelineData-val forrásként. |
as_mount
Használja a PipelineData-t csatlakoztatásként.
as_mount(input_name=None)
Paraméterek
| Name | Description |
|---|---|
|
input_name
|
A bemenet nevének megadására használható. Alapértelmezett érték: None
|
Válaszok
| Típus | Description |
|---|---|
|
Az InputPortBinding ezzel a PipelineData-val forrásként. |
create_input_binding
Bemeneti kötés létrehozása.
create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)
Paraméterek
| Name | Description |
|---|---|
|
input_name
|
A bemenet neve. Alapértelmezett érték: None
|
|
mode
|
A PipelineData ("csatlakoztatás" vagy "letöltés") elérésének módja. Alapértelmezett érték: None
|
|
path_on_compute
|
A "letöltési" mód esetében az adatok a számítási útvonalon lesznek elhelyezve. Alapértelmezett érték: None
|
|
overwrite
|
A "letöltési" mód esetében, hogy felülírja-e a meglévő adatokat. Alapértelmezett érték: None
|
Válaszok
| Típus | Description |
|---|---|
|
Az InputPortBinding ezzel a PipelineData-val forrásként. |
get_env_variable_name
Adja vissza a PipelineData környezeti változójának nevét.
get_env_variable_name()
Válaszok
| Típus | Description |
|---|---|
|
A környezeti változó neve. |
Attribútumok
data_type
datastore
Azon adattár, amelyen a PipelineData található.
Válaszok
| Típus | Description |
|---|---|
|
Az Adattár objektum. |