Training pada Jaringan Syaraf Tiruan (JST) biasanya terdiri dari beberapa epoch, sebuah satuan yang mirip iterasi (lihat pos yang lalu tentang istilah ini). Hasil pelatihan biasanya diperoleh dari epoch terakhir. Jika ingin mengetahui bias dan bobot tiap epoch perlu menggunakan fasilitas checkpoint pada Keras. Postingan ini bermaksud membahas penggunaan checkpoint.
#membuat model JST model = keras.models.Sequential([ keras.layers.Dense(30, activation="relu", input_shape=[2]), keras.layers.Dense(30, activation="relu"), keras.layers.Dense(1) ]) model.summary() #compile model.compile(optimizer='Adam',loss='binary_crossentropy',metrics=['accuracy']) checkpoint_cb = keras.callbacks.ModelCheckpoint("Model-{epoch:02d}.h5") #training dengan checkpoint history = model.fit(x_train, y_train, epochs=5, validation_data=(x_val, y_val), callbacks=[checkpoint_cb])
Tampak arsitektur JST sederhana di atas ditambahkan fasilitas checkpoint. Karena menggunakan library Keras, maka perlu diimpor Keras di awal dan pastikan library tersebut sudah diunduh terlebih dahulu jika menggunakan Jupyter Notebook. Namun jika menggunakan Google Colab tidak perlu karena sudah terpasang di situs online itu, hanya saja perlu mendefinisikan versi TensorFlownya (gunakan versi 1.x).
Perhatikan lima epoch tersebut, tampak lima buah model terbentuk yang berisi bias dan bobot hasil pelatihan tiap epoch. Jika ada 100 epoch tentu saja akan ada 100 model, oleh karena itu perlu menggunakan jenis checkpoint lain, misalnya best model saja yang tersimpan. Untuk jelasnya silahkan lihat video saya berikut ini.