PipelineData Kelas
Mewakili data perantara dalam alur Azure Machine Learning.
Data yang digunakan dalam alur dapat diproduksi oleh satu langkah dan dikonsumsi di langkah lain dengan menyediakan objek PipelineData sebagai output dari satu langkah dan input dari satu atau beberapa langkah berikutnya.
Perhatikan jika Anda menggunakan data alur, pastikan direktori yang digunakan sudah ada.
Contoh python untuk memastikan direktori ada, misalkan Anda memiliki port output bernama output_folder dalam satu langkah alur, Anda ingin menulis beberapa data ke jalur relatif di folder ini.
import os
os.makedirs(args.output_folder, exist_ok=True)
f = open(args.output_folder + '/relative_path/file_name', 'w+')
PipelineData menggunakan DataReference yang mendasar yang bukan lagi pendekatan yang direkomendasikan untuk akses dan pengiriman data, silakan gunakan OutputFileDatasetConfig sebagai gantinya, Anda dapat menemukan sampel di sini: Alur menggunakan OutputFileDatasetConfig.
Inisialisasi 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)
Parameter
| Nama | Deskripsi |
|---|---|
|
name
Diperlukan
|
Nama objek PipelineData, yang hanya dapat berisi huruf, digit, dan garis bawah. Nama PipelineData digunakan untuk mengidentifikasi output langkah. Setelah eksekusi alur selesai, Anda dapat menggunakan nama langkah dengan nama output untuk mengakses output tertentu. Nama harus unik dalam satu langkah dalam alur. |
|
datastore
|
Datastore tempat PipelineData akan berada. Jika tidak ditentukan, datastore default digunakan. Nilai default: None
|
|
output_name
|
Nama output, jika Tidak ada nama yang digunakan. Hanya dapat berisi huruf, digit, dan garis bawah. Nilai default: None
|
|
output_mode
|
Menentukan apakah langkah produksi akan menggunakan metode "unggah" atau "pasang" untuk mengakses data. Nilai default: mount
|
|
output_path_on_compute
|
Untuk Nilai default: None
|
|
output_overwrite
|
Untuk Nilai default: None
|
|
data_type
|
Fakultatif. Jenis data dapat digunakan untuk menentukan jenis output yang diharapkan dan untuk merinci cara menggunakan langkah-langkah penggunaan data. Ini bisa berupa string yang ditentukan pengguna. Nilai default: None
|
|
is_directory
|
Menentukan apakah data adalah direktori atau file tunggal. Ini hanya digunakan untuk menentukan jenis data yang digunakan oleh backend Azure ML saat Nilai default: None
|
|
pipeline_output_name
|
Jika disediakan output ini akan tersedia dengan menggunakan Nilai default: None
|
|
training_output
|
Menentukan output untuk hasil pelatihan. Ini hanya diperlukan untuk pelatihan tertentu yang menghasilkan berbagai jenis output seperti Metrik dan Model. Misalnya, AutoMLStep menghasilkan metrik dan model. Anda juga dapat menentukan iterasi atau metrik pelatihan tertentu yang digunakan untuk mendapatkan model terbaik. Untuk HyperDriveStep, Anda juga dapat menentukan file model tertentu yang akan disertakan dalam output. Nilai default: None
|
|
name
Diperlukan
|
Nama objek PipelineData, yang hanya dapat berisi huruf, digit, dan garis bawah. Nama PipelineData digunakan untuk mengidentifikasi output langkah. Setelah eksekusi alur selesai, Anda dapat menggunakan nama langkah dengan nama output untuk mengakses output tertentu. Nama harus unik dalam satu langkah dalam alur. |
|
datastore
Diperlukan
|
Datastore tempat PipelineData akan berada. Jika tidak ditentukan, datastore default digunakan. |
|
output_name
Diperlukan
|
Nama output, jika Tidak ada nama yang digunakan. yang hanya dapat berisi huruf, digit, dan garis bawah. |
|
output_mode
Diperlukan
|
Menentukan apakah langkah produksi akan menggunakan metode "unggah" atau "pasang" untuk mengakses data. |
|
output_path_on_compute
Diperlukan
|
Untuk |
|
output_overwrite
Diperlukan
|
Untuk |
|
data_type
Diperlukan
|
Fakultatif. Jenis data dapat digunakan untuk menentukan jenis output yang diharapkan dan untuk merinci cara menggunakan langkah-langkah penggunaan data. Ini bisa berupa string yang ditentukan pengguna. |
|
is_directory
Diperlukan
|
Menentukan apakah data adalah direktori atau file tunggal. Ini hanya digunakan untuk menentukan jenis data yang digunakan oleh backend Azure ML saat |
|
pipeline_output_name
Diperlukan
|
Jika disediakan output ini akan tersedia dengan menggunakan |
|
training_output
Diperlukan
|
Menentukan output untuk hasil pelatihan. Ini hanya diperlukan untuk pelatihan tertentu yang menghasilkan berbagai jenis output seperti Metrik dan Model. Misalnya, AutoMLStep menghasilkan metrik dan model. Anda juga dapat menentukan iterasi atau metrik pelatihan tertentu yang digunakan untuk mendapatkan model terbaik. Untuk HyperDriveStep, Anda juga dapat menentukan file model tertentu yang akan disertakan dalam output. |
Keterangan
PipelineData mewakili output data yang akan dihasilkan langkah saat dijalankan. Gunakan PipelineData saat membuat langkah-langkah untuk menjelaskan file atau direktori yang akan dihasilkan oleh langkah tersebut. Output data ini akan ditambahkan ke Datastore yang ditentukan dan dapat diambil dan dilihat nanti.
Misalnya, langkah alur berikut menghasilkan satu output, bernama "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)
Dalam hal ini, skrip train.py akan menulis model yang dihasilkannya ke lokasi yang disediakan untuk skrip melalui argumen –model.
Objek PipelineData juga digunakan saat membuat Alur untuk menjelaskan dependensi langkah. Untuk menentukan bahwa langkah memerlukan output langkah lain sebagai input, gunakan objek PipelineData di konstruktor dari kedua langkah.
Misalnya, langkah kereta alur tergantung pada output process_step_output dari langkah proses alur:
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])
Ini akan membuat Alur dengan dua langkah. Langkah proses akan dijalankan terlebih dahulu, kemudian setelah selesai, langkah latih akan dijalankan. Azure ML akan memberikan output yang dihasilkan oleh langkah proses ke langkah pelatihan.
Lihat halaman ini untuk contoh lebih lanjut menggunakan PipelineData untuk membuat Alur: https://aka.ms/pl-data-dep
Untuk jenis komputasi yang didukung, PipelineData juga dapat digunakan untuk menentukan bagaimana data akan diproduksi dan digunakan oleh eksekusi. Ada dua metode yang didukung:
Pemasangan (default): Data input atau output dipasang ke penyimpanan lokal pada simpul komputasi, dan variabel lingkungan diatur yang menunjuk ke jalur data ini ($AZUREML_DATAREFERENCE_name). Untuk kenyamanan, Anda dapat meneruskan objek PipelineData sebagai salah satu argumen ke skrip Anda, misalnya menggunakan
argumentsparameter PythonScriptStep, dan objek akan diselesaikan ke jalur ke data. Untuk output, skrip komputasi Anda harus membuat file atau direktori di jalur output ini. Untuk melihat nilai variabel lingkungan yang digunakan saat Anda meneruskan objek Alur sebagai argumen, gunakan get_env_variable_name metode .Unggah: Tentukan yang
output_path_on_computesesuai dengan nama file atau direktori yang akan dihasilkan skrip Anda. (Variabel lingkungan tidak digunakan dalam kasus ini.)
Metode
| as_dataset |
Promosikan output perantara ke dalam Himpunan Data. Himpunan data ini akan ada setelah langkah dijalankan. Harap dicatat bahwa output harus dipromosikan menjadi himpunan data agar input berikutnya digunakan sebagai himpunan data. Jika as_dataset tidak dipanggil pada output tetapi hanya dipanggil pada input, maka itu akan menjadi noop dan input tidak akan digunakan sebagai himpunan data. Contoh kode di bawah ini menunjukkan penggunaan as_dataset yang benar:
|
| as_download |
Gunakan PipelineData sebagai unduhan. |
| as_input |
Buat InputPortBinding dan tentukan nama input (tetapi gunakan mode default). |
| as_mount |
Gunakan PipelineData sebagai pemasangan. |
| create_input_binding |
Buat pengikatan input. |
| get_env_variable_name |
Mengembalikan nama variabel lingkungan untuk PipelineData ini. |
as_dataset
Promosikan output perantara ke dalam Himpunan Data.
Himpunan data ini akan ada setelah langkah dijalankan. Harap dicatat bahwa output harus dipromosikan menjadi himpunan data agar input berikutnya digunakan sebagai himpunan data. Jika as_dataset tidak dipanggil pada output tetapi hanya dipanggil pada input, maka itu akan menjadi noop dan input tidak akan digunakan sebagai himpunan data. Contoh kode di bawah ini menunjukkan penggunaan as_dataset yang benar:
# 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()
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Output perantara sebagai Himpunan Data. |
as_download
Gunakan PipelineData sebagai unduhan.
as_download(input_name=None, path_on_compute=None, overwrite=None)
Parameter
| Nama | Deskripsi |
|---|---|
|
input_name
|
Gunakan untuk menentukan nama untuk input ini. Nilai default: None
|
|
path_on_compute
|
Jalur pada komputasi yang akan diunduh. Nilai default: None
|
|
overwrite
|
Gunakan untuk menunjukkan apakah akan menimpa data yang ada. Nilai default: None
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
InputPortBinding dengan PipelineData ini sebagai sumbernya. |
as_input
Buat InputPortBinding dan tentukan nama input (tetapi gunakan mode default).
as_input(input_name)
Parameter
| Nama | Deskripsi |
|---|---|
|
input_name
Diperlukan
|
Gunakan untuk menentukan nama untuk input ini. |
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
InputPortBinding dengan PipelineData ini sebagai sumbernya. |
as_mount
Gunakan PipelineData sebagai pemasangan.
as_mount(input_name=None)
Parameter
| Nama | Deskripsi |
|---|---|
|
input_name
|
Gunakan untuk menentukan nama untuk input ini. Nilai default: None
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
InputPortBinding dengan PipelineData ini sebagai sumbernya. |
create_input_binding
Buat pengikatan input.
create_input_binding(input_name=None, mode=None, path_on_compute=None, overwrite=None)
Parameter
| Nama | Deskripsi |
|---|---|
|
input_name
|
Nama input. Nilai default: None
|
|
mode
|
Mode untuk mengakses PipelineData ("mount" atau "download"). Nilai default: None
|
|
path_on_compute
|
Untuk mode "unduh", jalur pada komputasi data akan berada. Nilai default: None
|
|
overwrite
|
Untuk mode "unduh", apakah akan menimpa data yang ada. Nilai default: None
|
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
InputPortBinding dengan PipelineData ini sebagai sumbernya. |
get_env_variable_name
Mengembalikan nama variabel lingkungan untuk PipelineData ini.
get_env_variable_name()
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Nama variabel lingkungan. |
Atribut
data_type
datastore
Datastore tempat PipelineData akan berada.
Mengembalikan
| Jenis | Deskripsi |
|---|---|
|
Objek Datastore. |