如本鏈接中所述,我使用單獨的編碼器和解碼器創建了一個自動編碼器。
在編碼器和解碼器 keras 上拆分自動編碼器
我正在檢查我的自動編碼器,如下所示。如何分別保存自動編碼器對應的編碼器和解碼器?或者,我可以從我保存的自動編碼器中提取深度編碼器和解碼器嗎?
checkpoint = ModelCheckpoint(filepath, monitor='val_accuracy', verbose = 1, save_best_only=True, mode='max')
callbacks_list = [checkpoint]
autoencoder.fit(
x=x_train,
y=x_train,
epochs=10,
batch_size=128,
shuffle=True,
validation_data=(x_test, x_test),
callbacks=callbacks_list
)
uj5u.com熱心網友回復:
您可以嘗試覆寫 ModelCheckpoint 使用的自動編碼器的保存功能,以使其分別保存編碼器和解碼器模型。
def custom_save(filepath, *args, **kwargs):
""" Overwrite save function to save the two sub-models """
global encoder, decoder
# fix name
path, ext = os.path.splitext(filepath)
# save encoder/decoder separately
encoder.save(path '-encoder.h5', *args, **kwargs)
decoder.save(path '-decoder.h5', *args, **kwargs)
auto_encoder = Model(auto_input, decoded)
setattr(auto_encoder, 'save', custom_save)
確保在適合之前設定保存功能。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/464833.html
