Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mempersiapkan pekerjaan pelatihan untuk mengumpulkan data TensorBoard output
Pekerjaan pelatihan khas untuk pembelajaran mesin SageMaker terdiri dari dua langkah utama: menyiapkan skrip pelatihan dan mengkonfigurasi objek SageMaker estimator Python SageMaker . SDK Di bagian ini, Anda akan mempelajari tentang perubahan yang diperlukan untuk mengumpulkan data TensorBoard yang kompatibel dari pekerjaan SageMaker pelatihan.
Prasyarat
Daftar berikut menunjukkan prasyarat untuk mulai menggunakan dengan. SageMaker TensorBoard
-
SageMaker Domain yang disiapkan dengan Amazon VPC di AWS akun Anda.
Untuk petunjuk cara menyiapkan domain, lihat Onboard to Amazon SageMaker domain menggunakan penyiapan cepat. Anda juga perlu menambahkan profil pengguna domain untuk pengguna individu untuk mengakses TensorBoard on SageMaker. Untuk informasi selengkapnya, lihat Tambahkan profil pengguna.
-
Daftar berikut adalah set minimum izin untuk digunakan TensorBoard pada SageMaker.
-
sagemaker:CreateApp
-
sagemaker:DeleteApp
-
sagemaker:DescribeTrainingJob
-
sagemaker:Search
-
s3:GetObject
-
s3:ListBucket
-
Langkah 1: Ubah skrip pelatihan Anda dengan alat TensorBoard pembantu sumber terbuka
Pastikan Anda menentukan tensor dan skalar keluaran mana yang akan dikumpulkan, dan ubah baris kode dalam skrip pelatihan Anda menggunakan salah satu alat berikut: TensorBoard X, TensorFlow Summary Writer, Summary Writer, atau PyTorch Debugger. SageMaker
Pastikan juga bahwa Anda menentukan jalur keluaran TensorBoard data sebagai direktori log (log_dir
) untuk callback dalam wadah pelatihan.
Untuk informasi selengkapnya tentang callback per framework, lihat sumber daya berikut.
-
Untuk PyTorch, gunakan torch.utils.tensorboard. SummaryWriter
. Lihat juga bagian Using TensorBoard in PyTorch dan Log skalar di PyTorchtutorial. Atau, Anda dapat menggunakan TensorBoardX Summary Writer . LOG_DIR="/opt/ml/output/tensorboard" tensorboard_callback=torch.utils.tensorboard.writer.SummaryWriter(log_dir=LOG_DIR)
-
Untuk TensorFlow, gunakan callback asli untuk, TensorBoard tf.keras.callbacks. TensorBoard
. LOG_DIR="/opt/ml/output/tensorboard" tensorboard_callback=tf.keras.callbacks.TensorBoard( log_dir=LOG_DIR, histogram_freq=1)
-
Untuk Transformers dengan TensorFlow, gunakan
tf.keras.tensorboard.callback
, dan teruskan ke callback keras di transformer.Tip
Anda juga dapat menggunakan jalur keluaran lokal kontainer yang berbeda. Namun, diLangkah 2: Buat objek estimator SageMaker pelatihan dengan konfigurasi TensorBoard output, Anda harus memetakan jalur dengan benar SageMaker agar berhasil mencari jalur lokal dan menyimpan TensorBoard data ke bucket keluaran S3.
-
Untuk panduan tentang memodifikasi skrip pelatihan menggunakan pustaka Python SageMaker Debugger, lihat. Menyesuaikan skrip pelatihan Anda untuk mendaftarkan kail
Langkah 2: Buat objek estimator SageMaker pelatihan dengan konfigurasi TensorBoard output
Gunakan sagemaker.debugger.TensorBoardOutputConfig
saat mengonfigurasi estimator SageMaker kerangka kerja. Konfigurasi ini API memetakan bucket S3 yang Anda tentukan untuk menyimpan TensorBoard data dengan jalur lokal di container pelatihan (/opt/ml/output/tensorboard
). Lewatkan objek modul ke tensorboard_output_config
parameter kelas estimator. Cuplikan kode berikut menunjukkan contoh mempersiapkan TensorFlow estimator dengan parameter konfigurasi TensorBoard output.
catatan
Contoh ini mengasumsikan bahwa Anda menggunakan SageMaker PythonSDK. Jika Anda menggunakan level rendah SageMaker API, Anda harus menyertakan yang berikut ini ke sintaks permintaan. CreateTrainingJobAPI
"TensorBoardOutputConfig": { "LocalPath": "/opt/ml/output/tensorboard", "S3OutputPath": "
s3_output_bucket
" }
from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import TensorBoardOutputConfig # Set variables for training job information, # such as s3_out_bucket and other unique tags. ... LOG_DIR="/opt/ml/output/tensorboard" output_path = os.path.join( "
s3_output_bucket
", "sagemaker-output
", "date_str
", "your-training_job_name
" ) tensorboard_output_config = TensorBoardOutputConfig( s3_output_path=os.path.join(output_path, 'tensorboard
'), container_local_output_path=LOG_DIR ) estimator = TensorFlow( entry_point="train.py
", source_dir="src
", role=role
, image_uri=image_uri
, instance_count=1
, instance_type="ml.c5.xlarge
", base_job_name="your-training_job_name
", tensorboard_output_config=tensorboard_output_config
, hyperparameters=hyperparameters
)
catatan
TensorBoard Aplikasi tidak menyediakan out-of-the-box dukungan untuk pekerjaan tuning SageMaker hyperparameter, karena tidak terintegrasi dengan konfigurasi TensorBoard output untuk pemetaan. CreateHyperParameterTuningJob
API Untuk menggunakan TensorBoard aplikasi untuk pekerjaan tuning hyperparameter, Anda perlu menulis kode untuk mengunggah metrik ke Amazon S3 dalam skrip pelatihan Anda. Setelah metrik diunggah ke bucket Amazon S3, Anda kemudian dapat memuat bucket ke dalam TensorBoard aplikasi. SageMaker