Keras adalah pustaka jaringan saraf sumber terbuka yang ditulis dalam Python. Keras mampu berjalan di atas TensorFlow, Microsoft Cognitive Toolkit, R, Theano, atau PlaidML. Salah satu manfaat signifikan Keras adalah memungkinkan pengembang untuk mengekspor model pada epoch tertentu, yang dapat menjadi aset besar dalam penyetelan model dan evaluasi kinerja.
Masalah
Saat melatih model pembelajaran mesin, kami biasanya memantau performa fungsi kerugian atau metrik untuk beberapa data validasi. Zaman yang berbeda dapat menghasilkan performa model yang berbeda. Terkadang, hasil terbaik dicapai pada waktu yang tidak sesuai dengan akhir proses pelatihan. Dalam situasi seperti itu, akan berguna jika kita dapat menyimpan/mengekspor model keras pada waktu tertentu.
Solusi
Solusi untuk masalah ini terletak pada Keras Callbacks. Callback adalah objek (contoh kelas yang mengimplementasikan metode tertentu) yang diteruskan ke model dalam panggilan agar sesuai dan dipanggil oleh model di berbagai titik selama pelatihan. Ia memiliki akses ke semua data yang tersedia tentang status model dan kinerjanya.
Fungsi panggilan balik khusus memungkinkan kita menentukan tindakan di berbagai tahapan pelatihan, seperti di awal atau akhir suatu epoch, sebelum atau sesudah satu batch, dll. Salah satu tindakan tersebut adalah menyimpan model pada epoch tertentu.
Penjelasan Kode Langkah-demi-Langkah
Pertama, kami menentukan callback khusus untuk menyimpan model pada periode tertentu.
class CustomSaver(keras.callbacks.Callback):
def on_epoch_end(self, epoch, logs={}):
if epoch == 9: # or save after some epoch, each k-th epoch etc.
self.model.save("model_{}.hd5".format(epoch))
Selanjutnya, kami menambahkan callback ini ke proses pemasangan model.
model = ... # create model model.compile(optimizer='...', loss='...') # compile model saver = CustomSaver() model.fit(..., callbacks=[saver]) # put your X_train, Y_train ...
Pada kode di atas, kita membuat instance kelas CustomSaver, lalu meneruskannya ke metode fit model sebagai bagian dari daftar callback.
Dengan memodifikasi kondisi “if” dalam metode 'on_epoch_end', kita dapat membuat callback disimpan setelah setiap epoch 'k', atau setiap kali kondisi tertentu terpenuhi.
Perpustakaan Keras dan Fungsinya
Desain Keras yang ramping dan ramah pengguna menyederhanakan pembuatan dan modifikasi model pembelajaran mendalam. Ia hadir dengan beberapa alat, seperti kelas Sequential dan Model untuk membangun model, berbagai lapisan untuk jaringan saraf (Convolutional, Pooling, Dense, dll.), dan callback untuk pelatihan pemantauan.
Salah satu aspek callback yang paling berguna adalah menghentikan pelatihan lebih awal, atau menyimpan model terbaik berdasarkan performa validasi. Ini adalah fitur yang sering ditanyakan sehingga Keras sudah berisi callback bawaannya, yang dikenal sebagai ModelCheckpoint dan EarlyStopping.
Itu dia! Sekarang terapkan pengetahuan ini pada skenario Anda dan simpan model Keras pada saat model tersebut menawarkan kinerja terbaik. Selamat pelatihan model!