Çözüldü: keras modelini belirli bir dönemde dışa aktar

Son Güncelleme: 09/25/2023

Keras, Python ile yazılmış açık kaynaklı bir sinir ağı kütüphanesidir. TensorFlow, Microsoft Cognitive Toolkit, R, Theano veya PlaidML üzerinde çalışabilir. Keras'ın önemli avantajlarından biri, geliştiricilerin modelleri belirli epoch'larda dışa aktarmasına olanak sağlamasıdır; bu da model ayarlama ve performans değerlendirmesinde büyük bir avantaj olabilir.

Sorun

Bir makine öğrenimi modelini eğitirken genellikle bazı doğrulama verileri için kaybı veya metrik işlevin performansını izleriz. Farklı dönemler farklı bir model performansıyla sonuçlanabilir. Bazen en iyi sonuçlar, eğitim sürecinin sonuna denk gelmeyen bir dönemde elde edilir. Bu gibi durumlarda keras modelini belirli dönemlerde kaydedebilir/dışa aktarabilirsek kullanışlı olabilir.

Çözüm

Bu sorunun çözümü Keras Geri Aramalarında yatmaktadır. Geri arama, fit çağrısında modele iletilen ve eğitim sırasında çeşitli noktalarda model tarafından çağrılan bir nesnedir (belirli yöntemleri uygulayan bir sınıf örneği). Modelin durumu ve performansı hakkında mevcut tüm verilere erişebilir.

Özel bir geri çağırma işlevi, bir dönemin başında veya sonunda, tek bir gruptan önce veya sonra vb. gibi eğitimin çeşitli aşamalarındaki eylemleri belirtmemize olanak tanır. Böyle bir eylem, modeli belirli dönemlerde kaydetmek olabilir.

Kodun Adım Adım Açıklaması

Öncelikle modeli belirli dönemlerde kaydetmek için özel bir geri arama tanımlarız.

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))

Daha sonra bu geri aramayı model yerleştirme sürecine ekliyoruz.

model = ...  # create model
model.compile(optimizer='...', loss='...')  # compile model

saver = CustomSaver()
model.fit(..., callbacks=[saver]) # put your X_train, Y_train ...

Yukarıdaki kodda, CustomSaver sınıfının bir örneğini oluşturuyoruz ve ardından bunu, geri çağırma listesinin bir parçası olarak modelin fit yöntemine aktarıyoruz.

'On_epoch_end' yöntemimizdeki "if" koşulunu değiştirerek, her 'k' döneminden sonra veya belirli bir koşul karşılandığında geri çağrının kaydedilmesini sağlayabiliriz.

Keras Kütüphaneleri ve İşlevleri

Keras'ın şık, kullanıcı dostu tasarımı, derin öğrenme modeli oluşturmayı ve değiştirmeyi basitleştirir. Model oluşturmak için Sıralı ve Model sınıfları, sinir ağları için çeşitli katmanlar (Evrişimli, Havuzlama, Yoğun vb.) ve eğitimin izlenmesi için geri aramalar gibi çeşitli araçlarla birlikte gelir.

Geri aramaların en yararlı yönlerinden biri eğitimi erken durdurmak veya doğrulama performansına göre en iyi modeli kaydetmektir. Bu o kadar sık ​​sorulan bir özellik ki Keras zaten ModelCheckpoint ve EarlyStopping olarak bilinen yerleşik geri aramaları içeriyor.

Bu kadar! Şimdi bu bilgiyi senaryonuza uygulayın ve Keras modelini en iyi performansı sunduğu çağa kaydedin. Mutlu model eğitimi!

İlgili Mesajlar: