Gabungkan garis waktu beberapa file jejak profil - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gabungkan garis waktu beberapa file jejak profil

Pustaka klien SMDebug menyediakan analisis profil dan alat visualisasi untuk menggabungkan garis waktu metrik sistem, metrik kerangka kerja, dan data profil Python yang dikumpulkan oleh Debugger.

Tip

Sebelum melanjutkan, Anda perlu mengatur TrainingJob objek yang akan digunakan di seluruh contoh di halaman ini. Untuk informasi selengkapnya tentang menyiapkan TrainingJob objek, lihatAkses data profil.

MergedTimelineKelas menyediakan alat untuk mengintegrasikan dan menghubungkan informasi profil yang berbeda dalam satu garis waktu. Setelah Debugger menangkap data profil dan anotasi dari berbagai fase pekerjaan pelatihan, file JSON dari peristiwa pelacakan disimpan dalam direktori default. tracefolder

  • Untuk anotasi di lapisan Python, file jejak disimpan di. *pythontimeline.json

  • Untuk anotasi di lapisan TensorFlow C ++, file jejak disimpan di. *model_timeline.json

  • Profiler Tensorflow menyimpan peristiwa dalam file. *trace.json.gz

Tip

Jika Anda ingin membuat daftar semua file jejak JSON, gunakan AWS CLI perintah berikut:

! aws s3 ls {tj.profiler_s3_output_path} --recursive | grep '\.json$'

Seperti yang ditunjukkan pada tangkapan layar animasi berikut, menempatkan dan menyelaraskan peristiwa jejak yang diambil dari sumber profil yang berbeda dalam satu plot dapat memberikan gambaran umum tentang seluruh peristiwa yang terjadi dalam fase yang berbeda dari pekerjaan pelatihan.

Contoh garis waktu gabungan
Tip

Untuk berinteraksi dengan timeline gabungan pada aplikasi traicing menggunakan keyboard, gunakan W tombol untuk memperbesar, tombol untuk menggeser ke kiri, A tombol untuk memperkecil, dan S tombol untuk beralih ke kanan. D

Beberapa file JSON jejak peristiwa dapat digabungkan menjadi satu file JSON peristiwa jejak menggunakan operasi MergedTimeline API berikut dan metode kelas dari modul. smdebug.profiler.analysis.utils.merge_timelines

from smdebug.profiler.analysis.utils.merge_timelines import MergedTimeline combined_timeline = MergedTimeline(path, file_suffix_filter, output_directory) combined_timeline.merge_timeline(start, end, unit)

Operasi MergedTimeline API melewati parameter berikut:

  • path(str) - Tentukan folder root (/profiler-output) yang berisi file jejak profil sistem dan kerangka kerja. Anda dapat menemukan profiler-output menggunakan metode kelas SageMaker estimator atau objek. TrainingJob Misalnya, estimator.latest_job_profiler_artifacts_path() atau tj.profiler_s3_output_path.

  • file_suffix_filter(daftar) - Tentukan daftar filter akhiran file untuk menggabungkan garis waktu. Filter akhiran yang tersedia adalah ["model_timeline.json", "pythontimeline.json", "trace.json.gz"]. Jika parameter ini tidak ditentukan secara manual, semua file jejak digabungkan secara default.

  • output_directory(str) - Tentukan jalur untuk menyimpan file JSON garis waktu gabungan. Defaultnya adalah ke direktori yang ditentukan untuk path parameter.

merge_timeline()Classmethod melewati parameter berikut untuk menjalankan proses penggabungan:

  • start(int) - Tentukan waktu mulai (dalam mikrodetik dan dalam format waktu Unix) atau mulai langkah untuk menggabungkan garis waktu.

  • end(int) - Tentukan waktu akhir (dalam mikrodetik dan dalam format waktu Unix) atau langkah akhir untuk menggabungkan garis waktu.

  • unit(str) — Pilih antara "time" dan"step". Nilai default-nya "time".

Dengan menggunakan kode contoh berikut, jalankan merge_timeline() metode dan unduh file JSON yang digabungkan.

  • Gabungkan timeline dengan opsi "time" unit. Contoh kode berikut menggabungkan semua file jejak yang tersedia antara waktu mulai Unix (waktu Unix nol mutlak) dan waktu Unix saat ini, yang berarti Anda dapat menggabungkan garis waktu untuk seluruh durasi pelatihan.

    import time from smdebug.profiler.analysis.utils.merge_timelines import MergedTimeline from smdebug.profiler.profiler_constants import CONVERT_TO_MICROSECS combined_timeline = MergedTimeline(tj.profiler_s3_output_path, output_directory="./") combined_timeline.merge_timeline(0, int(time.time() * CONVERT_TO_MICROSECS))
  • Gabungkan timeline dengan opsi "step" unit. Kode contoh berikut menggabungkan semua garis waktu yang tersedia antara langkah 3 dan langkah 9.

    from smdebug.profiler.analysis.utils.merge_timelines import MergedTimeline combined_timeline = MergedTimeline(tj.profiler_s3_output_path, output_directory="./") combined_timeline.merge_timeline(3, 9, unit="step")

Buka aplikasi penelusuran Chrome chrome://tracing di browser Chrome, dan buka file JSON. Anda dapat menjelajahi output untuk memplot timeline gabungan.