Callbacks, TensorFlow’daki eğitim sürecini özelleştirmek ve izlemek için kullanılan işlevlerdir. Eğitim sırasında, her bir epoch veya her bir adımda çağrılabilen bu işlevler, modelin davranışını değiştirmek veya eğitim ilerlemesini izlemek için kullanılabilir.
Model Checkpoint, eğitim sırasında modelin belirli aralıklarla kaydedilmesini sağlar.
from keras.callbacks import ModelCheckpoint
checkpoint = ModelCheckpoint(filepath='best_model.h5',
monitor='val_accuracy',
verbose=1,
save_best_only=True,
mode='max')
Parametre | Açıklama |
filepath | Kaydedilecek model dosyasının kaydedilme yolu. |
monitor | İzlenecek metriğin adı. |
verbose | Çıktı durumu. |
save_best_only | Sadece en iyi performans gösterdiği durumları kaydet. |
mode | Monitor parametresindeki metriğin neye göre değerlendirileceği (“min” veya “max”). |
period | Kaydetme aralığı. |
BackupAndRestore, eğitim sırasında modelin yedeklerini alarak ve geri yükleyerek eğitim sırasında oluşabilecek herhangi bir kesintiden sonra eğitimin devam etmesini sağlar.
from keras.callbacks import BackupAndRestore
backup = BackupAndRestore(backup_dir, save_freq="epoch")
Parametre | Açıklama |
backup_dir | Yedekleme dizini. |
frequency | Yedekleme sıklığı. |
TensorBoard, TensorFlow’un görselleştirme aracıdır ve modelin performansını izlemek, hata analizi yapmak ve eğitim sürecini anlamak için kullanılır.
from keras.callbacks import Tensorboard
tensorboard_callback = TensorBoard(log_dir='./logs')
Parametre | Açıklama |
log_dir | Log kaydedileceği dizin. |
histogram_freq | Histogram güncelleme sıklığı. |
write_graph | Modelin grafiğinin tensorboard’da gösterilmesi. |
write_images | Modelin görsel tanımının tensorboard’da gösterilmesi. |
EarlyStopping, belirli bir metriği izleyerek iyileşmediği durumlarda eğitimi durdurur. Bu, overfitting durumlarında eğitimi sonlandırmak için kullanılır.
from keras.callbacks import EarlyStopping
early_stopping = EarlyStopping(monitor='val_loss', patience=5)
Parametre | Açıklama |
monitor | Takip edilecek metrik. |
patience | İzlenecek epoch sayısı. |
mode | Değerlerlendirme türü “min” veya “max”. |
baseline | Eğitimin durdurulması için belirli bir referans değeri. |
restore_best_weights | En iyi modelin ağırlıklarını geri yükleme. |
LearningRateScheduler, belirli bir metriği izleyerek iyileşmediği durumlarda eğitimi durdurur.
from keras.callbacks import LearningRateScheduler
def lr_schedule(epoch, lr):
if epoch < 10:
return lr
else:
return lr * np.exp(-0.5)
lr_scheduler = LearningRateScheduler(schedule=lr_scheduler)
ReduceLROnPlateau, eğitim sırasında belirli bir metriği iyileşmediği durumlarda öğrenme oranını düşürmek için kullanılır.
from keras.callbacks import ReduceLROnPlateau
lr_plat = ReduceLROnPlateua(monitor='val_loss', patience=3, factor=0.2)
Parametre | Açıklama |
monitor | Takip edilen metrik adı. |
factor | Öğrenme oranını azaltmak için çarpan. |
patience | İzlenecek epoch sayısı. |
mode | Değerlendirme türü. |
cooldown | Öğrenme oranını azalttıktan sonra bekleyeceği epoch sayısı. |
CSVLogger, eğitim sırasında modelin metriklerini bir CSV dosyasına kaydeder.
from keras.callbacks import CSVLogger
csv_log = CSVLogger(filename='file.csv', seperator=',')