Kode pelatihan Anda dapat dikemas ke dalam komponen pelatihan kustom dan dijalankan dalam tugas pipeline. Log TensorBoard akan otomatis di-streaming ke eksperimen Vertex AI TensorBoard Anda. Anda dapat menggunakan integrasi ini untuk memantau pelatihan nyaris secara real time karena Vertex AI TensorBoard melakukan streaming di log Vertex AI TensorBoard seperti yang ditulis ke Cloud Storage.
Untuk penyiapan awal, lihat Menyiapkan Vertex AI TensorBoard.
Perubahan pada skrip pelatihan Anda
Skrip pelatihan Anda harus dikonfigurasi untuk menulis log TensorBoard ke bucket Cloud Storage, tempat Vertex AI Training Service akan otomatis tersedia melalui variabel lingkungan yang telah ditetapkan, yaitu AIP_TENSORBOARD_LOG_DIR
.
Hal ini biasanya dapat dilakukan dengan menyediakan os.environ['AIP_TENSORBOARD_LOG_DIR']
sebagai direktori log bagi API penulisan log TensorBoard open source. Lokasi
AIP_TENSORBOARD_LOG_DIR
biasanya ditetapkan dengan variabel
staging_bucket
.
Untuk mengonfigurasi skrip pelatihan Anda di TensorFlow 2.x, buat callback TensorBoard dan tetapkan variabel log_dir
ke os.environ['AIP_TENSORBOARD_LOG_DIR']
. Callback TensorBoard kemudian disertakan dalam daftar callback model.fit
TensorFlow.
tensorboard_callback = tf.keras.callbacks.TensorBoard( log_dir=os.environ['AIP_TENSORBOARD_LOG_DIR'], histogram_freq=1 ) model.fit( x=x_train, y=y_train, epochs=epochs, validation_data=(x_test, y_test), callbacks=[tensorboard_callback], )
Pelajari lebih lanjut cara Vertex AI menetapkan variabel lingkungan di lingkungan pelatihan kustom Anda.
Membangun dan menjalankan pipeline
Contoh berikut menunjukkan cara membangun dan menjalankan pipeline menggunakan paket Kubeflow Pipelines DSL. Untuk mengetahui contoh lainnya dan detail lainnya, lihat dokumentasi Pipeline Vertex AI.
Membuat komponen pelatihan
Kemas kode pelatihan Anda ke dalam komponen kustom, dan pastikan kode tersebut dikonfigurasi untuk menulis log TensorBoard ke bucket Cloud Storage. Untuk contoh lainnya, lihat Membuat komponen pipeline Anda sendiri.
from kfp.v2.dsl import component
@component(
base_image="tensorflow/tensorflow:latest",
packages_to_install=["tensorflow_datasets"],
)
def train_tensorflow_model_with_tensorboard():
import datetime, os
import tensorflow as tf
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
def create_model():
return tf.keras.models.Sequential(
[
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(512, activation="relu"),
]
)
model = create_model()
model.compile(
optimizer="adam",
loss="sparse_categorical_crossentropy",
metrics=["accuracy"]
)
tensorboard_callback = tf.keras.callbacks.TensorBoard(
log_dir=os.environ['AIP_TENSORBOARD_LOG_DIR'],
histogram_freq=1
)
model.fit(
x=x_train,
y=y_train,
epochs=5,
validation_data=(x_test, y_test),
callbacks=[tensorboard_callback],
)
Membangun dan mengompilasi pipeline
Buat tugas pelatihan kustom dari komponen yang telah Anda buat dengan menentukan
spesifikasi komponen di create_custom_training_job_op_from_component
.
Tetapkan tensorboard_resource_name
ke instance TensorBoard, dan staging_bucket
ke lokasi untuk melakukan staging artefak selama panggilan API (termasuk log TensorBoard).
Kemudian, build pipeline untuk menyertakan tugas ini dan kompilasi pipeline ke file JSON.
Untuk mengetahui contoh dan informasi selengkapnya, lihat Komponen tugas kustom dan Membuat pipeline.
from kfp.v2 import compiler
from google_cloud_pipeline_components.v1.custom_job.utils import \
create_custom_training_job_op_from_component
from kfp.v2 import dsl
def create_tensorboard_pipeline_sample(
project, location, staging_bucket, display_name, service_account, experiment, tensorboard_resource_name
):
@dsl.pipeline(
pipeline_root=f"{staging_bucket}/pipeline_root",
name=display_name,
)
def pipeline():
custom_job_op = create_custom_training_job_op_from_component(
component_spec=train_tensorflow_model_with_tensorboard,
tensorboard=tensorboard_resource_name,
base_output_directory=staging_bucket,
service_account=service_account,
)
custom_job_op(project=project, location=location)
compiler.Compiler().compile(
pipeline_func=pipeline, package_path=f"{display_name}.json"
)
Mengirimkan pipeline Vertex AI
Kirimkan pipeline Anda menggunakan Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Menjalankan pipeline.
Python
experiment_name
: Berikan nama untuk eksperimen Anda.pipeline_job_display_name
: Nama tampilan untuk tugas pipeline.template_path
: Jalur ke template pipeline yang dikompilasi.pipeline_root
: Tentukan Cloud Storage URI yang dapat diakses oleh akun layanan pipeline Anda. Artefak operasi pipeline Anda disimpan dalam root pipeline.parameter_values
: Parameter pipeline yang akan diteruskan ke proses ini. Misalnya, buatdict()
dengan nama parameter sebagai kunci kamus dan nilai parameter sebagai nilai kamus.project
: Project ID Anda. Project Google Cloud tempat pipeline akan dijalankan. Anda dapat menemukan ID Anda di halaman welcome Google Cloud Console.
location
: Region untuk menjalankan pipeline. Region ini harus sama dengan instance TensorBoard yang Anda gunakan.
Langkah selanjutnya
- Lihat hasil Anda: Lihat TensorBoard untuk Vertex AI Pipelines.
- Pelajari cara mengoptimalkan performa tugas pelatihan kustom Anda menggunakan Vertex AI TensorBoard Profiler.