Hiperparameter Deteksi Objek - Amazon SageMaker

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

Hiperparameter Deteksi Objek

Dalam CreateTrainingJobpermintaan, Anda menentukan algoritma pelatihan yang ingin Anda gunakan. Anda juga dapat menentukan hiperparameter spesifik algoritme yang digunakan untuk membantu memperkirakan parameter model dari kumpulan data pelatihan. Tabel berikut mencantumkan hyperparameters yang disediakan oleh Amazon SageMaker untuk melatih algoritma deteksi objek. Untuk informasi selengkapnya tentang cara kerja pelatihan objek, lihatBagaimana Deteksi Objek Bekerja.

Nama Parameter Deskripsi
num_classes

Jumlah kelas output. Parameter ini mendefinisikan dimensi output jaringan dan biasanya diatur ke jumlah kelas dalam dataset.

Diperlukan

Nilai yang valid: bilangan bulat positif

num_training_samples

Jumlah contoh pelatihan dalam dataset input.

catatan

Jika ada ketidakcocokan antara nilai ini dan jumlah sampel dalam set pelatihan, maka perilaku lr_scheduler_step parameter akan tidak ditentukan dan akurasi pelatihan terdistribusi dapat terpengaruh.

Diperlukan

Nilai yang valid: bilangan bulat positif

base_network

Arsitektur jaringan dasar untuk digunakan.

Opsional

Nilai yang valid: 'vgg-16' atau 'resnet-50'

Nilai default: 'vgg-16'

early_stopping

Trueuntuk menggunakan logika penghentian awal selama pelatihan. Falsetidak menggunakannya.

Opsional

Nilai yang valid: True or False

Nilai default: False

early_stopping_min_epochs

Jumlah minimum epoch yang harus dijalankan sebelum logika penghentian awal dapat dipanggil. Ini hanya digunakan ketika early_stopping =True.

Opsional

Nilai yang valid: bilangan bulat positif

Nilai default: 10

early_stopping_patience

Jumlah zaman untuk menunggu sebelum mengakhiri pelatihan jika tidak ada perbaikan, seperti yang didefinisikan oleh early_stopping_tolerance hyperparameter, dibuat dalam metrik yang relevan. Ini hanya digunakan ketika early_stopping =True.

Opsional

Nilai yang valid: bilangan bulat positif

Nilai default: 5

early_stopping_tolerance

Nilai toleransi yang harus dilampaui oleh peningkatan relatifvalidation:mAP, presisi rata-rata rata-rata (MAP), untuk menghindari penghentian dini. Jika rasio perubahan MAP dibagi dengan MAP terbaik sebelumnya lebih kecil dari early_stopping_tolerance nilai yang ditetapkan, penghentian awal menganggap bahwa tidak ada perbaikan. Ini hanya digunakan ketika early_stopping =True.

Opsional

Nilai yang valid: 0 ≤ float ≤ 1

Nilai default: 0.0

image_shape

Ukuran gambar untuk gambar input. Kami mengubah skala gambar input ke gambar persegi dengan ukuran ini. Kami merekomendasikan menggunakan 300 dan 512 untuk kinerja yang lebih baik.

Opsional

Nilai yang valid: bilangan bulat positif ≥300

Default: 300

epochs

Jumlah zaman pelatihan.

Opsional

Nilai yang valid: bilangan bulat positif

Bawaan: 30

freeze_layer_pattern

Ekspresi reguler (regex) untuk membekukan lapisan di jaringan dasar. Misalnya, jika kita menetapkan freeze_layer_pattern ="^(conv1_|conv2_).*", maka setiap lapisan dengan nama yang berisi "conv1_" atau "conv2_" dibekukan, yang berarti bahwa bobot untuk lapisan ini tidak diperbarui selama pelatihan. Nama layer dapat ditemukan di file simbol jaringan vgg16-symbol.json dan resnet-50-symbol.json. Membekukan lapisan berarti bobotnya tidak dapat dimodifikasi lebih lanjut. Ini dapat mengurangi waktu pelatihan secara signifikan dengan imbalan kerugian akurasi yang sederhana. Teknik ini biasanya digunakan dalam pembelajaran transfer di mana lapisan bawah di jaringan dasar tidak perlu dilatih ulang.

Opsional

Nilai yang valid: string

Default: Tidak ada lapisan beku.

kv_store

Mode sinkronisasi pembaruan berat yang digunakan untuk pelatihan terdistribusi. Bobot dapat diperbarui baik secara sinkron atau asinkron di seluruh mesin. Pembaruan sinkron biasanya memberikan akurasi yang lebih baik daripada pembaruan asinkron tetapi bisa lebih lambat. Lihat tutorial MxNet Pelatihan Terdistribusi untuk detailnya.

catatan

Parameter ini tidak berlaku untuk pelatihan mesin tunggal.

Opsional

Nilai yang valid: 'dist_sync' atau 'dist_async'

  • 'dist_sync': Gradien disinkronkan setelah setiap batch dengan semua pekerja. Dengan'dist_sync', ukuran batch sekarang berarti ukuran batch yang digunakan pada setiap mesin. Jadi jika ada n mesin dan kami menggunakan ukuran batch b, maka dist_sync berperilaku seperti mesin tunggal dengan ukuran batch n* b.

  • 'dist_async': Melakukan pembaruan asinkron. Bobot diperbarui setiap kali gradien diterima dari mesin mana pun dan pembaruan bobotnya bersifat atom. Namun, pesanan tidak dijamin.

Default: -

label_width

Lebar label force padding digunakan untuk menyinkronkan seluruh data pelatihan dan validasi. Misalnya, jika satu gambar dalam data berisi paling banyak 10 objek, dan anotasi setiap objek ditentukan dengan 5 angka, [class_id, left, top, width, height], maka label_width seharusnya tidak lebih kecil dari (10*5+panjang informasi header). Panjang informasi header biasanya 2. Kami merekomendasikan menggunakan sedikit lebih besar label_width untuk pelatihan, seperti 60 untuk contoh ini.

Opsional

Nilai valid: Bilangan bulat positif cukup besar untuk mengakomodasi panjang informasi anotasi terbesar dalam data.

Standar: 350

learning_rate

Tingkat pembelajaran awal.

Opsional

Nilai yang valid: float in (0, 1]

Default: 0,001

lr_scheduler_factor

Rasio untuk mengurangi tingkat pembelajaran. Digunakan bersama dengan lr_scheduler_step parameter yang didefinisikan sebagai lr_new = lr_old *lr_scheduler_factor.

Opsional

Nilai yang valid: float in (0, 1)

Default: 0.1

lr_scheduler_step

Zaman di mana untuk mengurangi tingkat pembelajaran. Tingkat pembelajaran dikurangi lr_scheduler_factor pada zaman yang tercantum dalam string yang dibatasi koma: “epoch1, epoch2,...”. Misalnya, jika nilainya disetel ke “10, 20" dan lr_scheduler_factor disetel ke 1/2, maka tingkat pembelajaran dikurangi setengahnya setelah zaman ke-10 dan kemudian dibelah dua lagi setelah zaman ke-20.

Opsional

Nilai yang valid: string

Default: string kosong

mini_batch_size

Ukuran batch untuk pelatihan. Dalam pengaturan multi-gpu mesin tunggal, setiap GPU mini_batch_size menangani/melatih sampel. num_gpu Untuk pelatihan multi-mesin dalam dist_sync mode, ukuran batch sebenarnya mini_batch_size adalah* jumlah mesin. Yang besar mini_batch_size biasanya mengarah ke pelatihan yang lebih cepat, tetapi dapat menyebabkan masalah memori. Penggunaan memori terkait denganmini_batch_size,image_shape, dan base_network arsitektur. Misalnya, pada satu instance p3.2xlarge, kesalahan terbesar mini_batch_size tanpa out of memory adalah 32 dengan base_network disetel ke “resnet-50" dan 300. image_shape Dengan contoh yang sama, Anda dapat menggunakan 64 sebagai mini_batch_size dengan jaringan dasar vgg-16 dan 300. image_shape

Opsional

Nilai yang valid: bilangan bulat positif

Default: 32

momentum

Momentum untuksgd. Diabaikan untuk pengoptimal lainnya.

Opsional

Nilai yang valid: float in (0, 1]

Default: 0.9

nms_threshold

Ambang batas penekanan non-maksimum.

Opsional

Nilai yang valid: float in (0, 1]

Default: 0.45

optimizer

Jenis pengoptimal. Untuk detail tentang nilai pengoptimal, lihat API MXNet.

Opsional

Nilai yang valid: ['sgd', 'adam', 'rmsprop', 'adadelta']

Default: 'sgd'

overlap_threshold

Ambang batas evaluasi tumpang tindih.

Opsional

Nilai yang valid: float in (0, 1]

Default: 0,5

use_pretrained_model

Menunjukkan apakah akan menggunakan model pra-terlatih untuk pelatihan. Jika disetel ke 1, maka model pra-terlatih dengan arsitektur yang sesuai dimuat dan digunakan untuk pelatihan. Jika tidak, jaringan dilatih dari awal.

Opsional

Nilai yang valid: 0 atau 1

Default: 1

weight_decay

Koefisien peluruhan berat untuk sgd danrmsprop. Diabaikan untuk pengoptimal lainnya.

Opsional

Nilai yang valid: float in (0, 1)

Default: 0,0005