Callbacks

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')
ParametreAçıklama
filepathKaydedilecek model dosyasının kaydedilme yolu.
monitorİzlenecek metriğin adı.
verboseÇıktı durumu.
save_best_onlySadece en iyi performans gösterdiği durumları kaydet.
modeMonitor parametresindeki metriğin neye göre değerlendirileceği (“min” veya “max”).
periodKaydetme 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")
ParametreAçıklama
backup_dirYedekleme dizini.
frequencyYedekleme 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')
ParametreAçıklama
log_dirLog kaydedileceği dizin.
histogram_freqHistogram güncelleme sıklığı.
write_graphModelin grafiğinin tensorboard’da gösterilmesi.
write_imagesModelin 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)
ParametreAçıklama
monitorTakip edilecek metrik.
patienceİzlenecek epoch sayısı.
modeDeğerlerlendirme türü “min” veya “max”.
baselineEğitimin durdurulması için belirli bir referans değeri.
restore_best_weightsEn 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)
ParametreAçıklama
monitorTakip edilen metrik adı.
factorÖğrenme oranını azaltmak için çarpan.
patienceİzlenecek epoch sayısı.
modeDeğ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=',')