Simpan model setiap 10 zaman tensorflow.keras v2

10

Saya menggunakan keras didefinisikan sebagai submodule di tensorflow v2. Saya melatih model saya menggunakan fit_generator()metode. Saya ingin menyimpan model saya setiap 10 zaman. Bagaimana saya bisa mencapai ini?

Dalam Keras (bukan sebagai submodule of tf), saya bisa memberi ModelCheckpoint(model_savepath,period=10). Tapi di v2 tf, mereka telah berubah ini ke ModelCheckpoint(model_savepath, save_freq)mana save_freqbisa 'epoch'di mana model kasus disimpan setiap zaman. Jika save_freqbilangan bulat, model disimpan setelah begitu banyak sampel diproses. Tapi saya ingin setelah 10 zaman. Bagaimana saya bisa mencapai ini?

Nagabhushan SN
sumber

Jawaban:

5

Menggunakan tf.keras.callbacks.ModelCheckpointmenggunakan save_freq='epoch'dan memberikan argumen tambahan period=10.

Meskipun ini tidak didokumentasikan dalam dokumen resmi , itu adalah cara untuk melakukannya (perhatikan bahwa ini didokumentasikan yang dapat Anda lewati period, tetapi tidak menjelaskan apa fungsinya).

bluesummers
sumber
Saya mendapatkan peringatan di bawah ini: WARNING:tensorflow:'period' argument is deprecated. Please use 'save_freq' to specify the frequency in number of samples seen.Jadi, saya kira, fitur ini akan segera keluar. Dalam hal itu, bagaimana saya bisa mencapai ini?
Nagabhushan SN
2
Saya percaya bahwa satu-satunya alternatif adalah menghitung jumlah contoh per zaman, dan meneruskan bilangan bulat itu ke save_freqkali jumlah zaman yang Anda inginkan sebagai interval di antara penyelamatan
peniup bluesumers
@bluesummers "contoh per zaman" Ini harus menjadi ukuran batch saya, kan?
Tom
Contoh per zaman adalah berapa banyak sampel yang ingin Anda lewati jaringan di antara pos-pos pemeriksaan - ini berarti jika Anda memiliki 100 sampel (sampel! = Kumpulan, kumpulan adalah kumpulan sampel) dan Anda memasukkan 400, itu akan menghemat setiap 4 zaman
bluesummers
1
Saya memiliki pertanyaan yang sama seperti yang ditanyakan oleh @NagabhushanSN. Saya menghitung jumlah sampel per zaman untuk menghitung jumlah sampel setelah itu saya ingin menyimpan model tetapi tampaknya tidak berhasil. Ukuran batch = 64, untuk test case saya menggunakan 10 langkah per zaman. Jika saya ingin menyimpan model setiap 3 zaman, jumlah sampel adalah 64 * 10 * 3 = 1920. Saya menggunakannya untuk sav_freq tetapi output menunjukkan bahwa model disimpan pada zaman 1, zaman 2, zaman 9, zaman 11, zaman 14 dan masih berjalan. Tidak bisa memahaminya. periodOpsi tampaknya berfungsi dengan baik tetapi dengan pesan bahwa itu akan ditinggalkan.
beeprogrammer