Pertanyaan awal terkait dengan implementasi TensorFlow secara khusus. Namun, jawabannya adalah untuk implementasi secara umum. Jawaban umum ini juga merupakan jawaban yang benar untuk TensorFlow.
Saat menggunakan normalisasi batch dan dropout di TensorFlow (secara khusus menggunakan contrib.layers), apakah saya perlu khawatir tentang pengurutannya?
Tampaknya mungkin jika saya menggunakan dropout diikuti segera oleh normalisasi batch mungkin ada masalah. Misalnya, jika pergeseran dalam normalisasi batch melatih ke nomor skala yang lebih besar dari keluaran pelatihan, tetapi kemudian pergeseran yang sama itu diterapkan ke nomor skala yang lebih kecil (karena kompensasi memiliki lebih banyak keluaran) tanpa putus sekolah selama pengujian, maka itu shift mungkin tidak aktif. Apakah lapisan normalisasi batch TensorFlow secara otomatis mengimbangi hal ini? Atau apakah ini tidak terjadi karena alasan tertentu saya hilang?
Juga, apakah ada kendala lain yang harus diperhatikan saat menggunakan keduanya secara bersamaan? Misalnya, dengan asumsi saya menggunakan mereka dalam urutan yang benar dalam hal di atas (dengan asumsi ada adalah urutan yang benar), bisa ada masalah dengan menggunakan kedua normalisasi batch dan putus sekolah pada beberapa lapisan berturut-turut? Saya tidak langsung melihat masalah dengan itu, tetapi saya mungkin melewatkan sesuatu.
Terima kasih banyak!
MEMPERBARUI:
Tes eksperimental tampaknya menunjukkan bahwa pengurutan itu penting. Saya menjalankan jaringan yang sama dua kali dengan hanya norma batch dan sebaliknya. Ketika dropout berada sebelum norma batch, kerugian validasi tampaknya meningkat karena kerugian pelatihan menurun. Mereka berdua kalah dalam kasus lain. Tapi dalam kasus saya gerakannya lambat, jadi banyak hal dapat berubah setelah lebih banyak pelatihan dan ini hanya satu tes. Jawaban yang lebih pasti dan terinformasi akan tetap dihargai.