Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengakses data statistik profil Python
Profil Python menyediakan metrik kerangka kerja yang terkait dengan fungsi dan operator Python dalam skrip pelatihan Anda dan kerangka kerja pembelajaran mendalam. SageMaker
Mode Pelatihan dan Fase untuk Profil Python
Untuk membuat profil interval tertentu selama pelatihan ke statistik partisi untuk masing-masing interval ini, Debugger menyediakan alat untuk mengatur mode dan fase.
Untuk mode pelatihan, gunakan PythonProfileModes
kelas berikut:
from smdebug.profiler.python_profile_utils import PythonProfileModes
Kelas ini menyediakan opsi berikut:
-
PythonProfileModes.TRAIN
— Gunakan jika Anda ingin membuat profil langkah-langkah target dalam fase pelatihan. Opsi mode ini hanya tersedia untuk TensorFlow. -
PythonProfileModes.EVAL
— Gunakan jika Anda ingin membuat profil langkah-langkah target dalam fase evaluasi. Opsi mode ini hanya tersedia untuk TensorFlow. -
PythonProfileModes.PREDICT
— Gunakan jika Anda ingin membuat profil langkah target dalam fase prediksi. Opsi mode ini hanya tersedia untuk TensorFlow. -
PythonProfileModes.GLOBAL
— Gunakan jika Anda ingin membuat profil langkah target dalam fase global, yang mencakup tiga fase sebelumnya. Opsi mode ini hanya tersedia untuk PyTorch. -
PythonProfileModes.PRE_STEP_ZERO
— Gunakan jika Anda ingin membuat profil langkah-langkah target dalam tahap inisialisasi sebelum langkah pelatihan pertama dari epoch pertama dimulai. Fase ini mencakup pengajuan pekerjaan awal, mengunggah skrip pelatihan ke instans EC2, menyiapkan instans EC2, dan mengunduh data input. Opsi mode ini tersedia untuk keduanya TensorFlow dan PyTorch. -
PythonProfileModes.POST_HOOK_CLOSE
— Gunakan jika Anda ingin membuat profil langkah target di tahap finalisasi setelah pekerjaan pelatihan selesai dan kait Debugger ditutup. Fase ini mencakup data profil sementara pekerjaan pelatihan diselesaikan dan diselesaikan. Opsi mode ini tersedia untuk keduanya TensorFlow dan PyTorch.
Untuk fase pelatihan, gunakan StepPhase
kelas berikut:
from smdebug.profiler.analysis.utils.python_profile_analysis_utils import StepPhase
Kelas ini menyediakan opsi berikut:
-
StepPhase.START
— Gunakan untuk menentukan titik awal fase inisialisasi. -
StepPhase.STEP_START
— Gunakan untuk menentukan langkah awal fase pelatihan. -
StepPhase.FORWARD_PASS_END
— Gunakan untuk menentukan langkah-langkah di mana pass maju berakhir. Opsi ini hanya tersedia untuk PyTorch. -
StepPhase.STEP_END
— Gunakan untuk menentukan langkah akhir dalam fase pelatihan. Opsi ini hanya tersedia untuk TensorFlow. -
StepPhase.END
— Gunakan untuk menentukan titik akhir fase finalisasi (pasca-hook-close). Jika hook callback tidak ditutup, profil fase finalisasi tidak terjadi.
Alat Analisis Profil Python
Debugger mendukung profiling Python dengan dua alat profiling:
-
CProfile — Profiler python standar. cProfile mengumpulkan metrik kerangka kerja pada waktu CPU untuk setiap fungsi yang dipanggil saat pembuatan profil diaktifkan.
-
Pyinstrument - Ini adalah peristiwa profil pengambilan sampel profiler Python overhead rendah setiap milidetik.
Untuk mempelajari lebih lanjut tentang opsi pembuatan profil Python dan apa yang dikumpulkan, lihat. Pemantauan sistem default dan pembuatan profil kerangka kerja yang disesuaikan dengan opsi pembuatan profil yang berbeda
Metode berikut dariPythonProfileAnalysis
,cProfileAnalysis
, PyinstrumentAnalysis
kelas disediakan untuk mengambil dan menganalisis data profil Python. Setiap fungsi memuat data terbaru dari URI S3 default.
from smdebug.profiler.analysis.python_profile_analysis import PythonProfileAnalysis, cProfileAnalysis, PyinstrumentAnalysis
Untuk mengatur objek profiling Python untuk analisis, gunakan cProfileAnalysis atau PyinstrumentAnalysis kelas seperti yang ditunjukkan dalam kode contoh berikut. Ini menunjukkan bagaimana mengatur cProfileAnalysis
objek, dan jika Anda ingin menggunakanPyinstrumentAnalysis
, ganti nama kelas.
python_analysis = cProfileAnalysis( local_profile_dir=tf_python_stats_dir, s3_path=tj.profiler_s3_output_path )
Metode berikut tersedia untuk PyinstrumentAnalysis
kelas cProfileAnalysis
dan untuk mengambil data statistik profil Python:
-
python_analysis.fetch_python_profile_stats_by_time(start_time_since_epoch_in_secs, end_time_since_epoch_in_secs)
— Mengambil waktu mulai dan waktu akhir, dan mengembalikan statistik fungsi statistik langkah yang waktu mulai atau berakhir tumpang tindih dengan interval yang disediakan. -
python_analysis.fetch_python_profile_stats_by_step(start_step, end_step, mode, start_phase, end_phase)
— Mengambil langkah awal dan langkah akhir dan mengembalikan statistik fungsi dari semua statistik langkah yang diprofilkanstep
memenuhi.start_step <= step < end_step
-
start_step
danend_step
(str) - Tentukan langkah awal dan langkah akhir untuk mengambil data statistik profil Python. -
mode
(str) — Tentukan mode pekerjaan pelatihan menggunakan kelasPythonProfileModes
enumerator. Nilai default-nyaPythonProfileModes.TRAIN
. Opsi yang tersedia disediakan di bagian Mode Pelatihan dan Fase untuk Profiling Python. -
start_phase
(str) - Tentukan fase awal pada langkah target menggunakan kelasStepPhase
enumerator. Parameter ini memungkinkan pembuatan profil antara fase pelatihan yang berbeda. Nilai default-nyaStepPhase.STEP_START
. Opsi yang tersedia disediakan di bagian Mode Pelatihan dan Fase untuk Profiling Python. -
end_phase
(str) - Tentukan fase akhir pada langkah target menggunakan kelasStepPhase
enumerator. Parameter ini mengatur fase akhir pelatihan. Opsi yang tersedia sama dengan yang untukstart_phase
parameter. Nilai default-nyaStepPhase.STEP_END
. Opsi yang tersedia disediakan di bagian Mode Pelatihan dan Fase untuk Profiling Python.
-
-
python_analysis.fetch_profile_stats_between_modes(start_mode, end_mode)
— Mengambil statistik dari profil Python antara mode awal dan akhir. -
python_analysis.fetch_pre_step_zero_profile_stats()
— Mengambil statistik dari profil Python hingga langkah 0. -
python_analysis.fetch_post_hook_close_profile_stats()
— Mengambil statistik dari profil Python setelah hook ditutup. -
python_analysis.list_profile_stats()
— DataFrame Mengembalikan statistik profil Python. Setiap baris menyimpan metadata untuk setiap instance profil dan file statistik yang sesuai (satu per langkah). -
python_analysis.list_available_node_ids()
— Mengembalikan daftar ID node yang tersedia untuk statistik profil Python.
Metode khusus cProfileAnalysis
kelas:
-
fetch_profile_stats_by_training_phase()
— Mengambil dan menggabungkan statistik profil Python untuk setiap kemungkinan kombinasi mode awal dan akhir. Misalnya, jika fase pelatihan dan validasi dilakukan saat pembuatan profil terperinci diaktifkan, kombinasinya adalah(PRE_STEP_ZERO, TRAIN)
,,(TRAIN, TRAIN)
(TRAIN, EVAL)
(EVAL, EVAL)
, dan.(EVAL, POST_HOOK_CLOSE)
Semua file statistik dalam masing-masing kombinasi ini digabungkan. -
fetch_profile_stats_by_job_phase()
— Mengambil dan menggabungkan statistik profil Python berdasarkan fase pekerjaan. Fase pekerjaan adalahinitialization
(pembuatan profil hingga langkah 0),training_loop
(pelatihan dan validasi), danfinalization
(pembuatan profil setelah kait ditutup).