Вам не нужно передавать модель для обратного вызова. У него уже есть доступ к модели через супер. Так что удалите __init__(..., model, ...)
аргумент и self.model = model
. Вы должны иметь возможность доступа к текущей модели через self.model
независимо. Вы также сохраняете его на каждом конце партии, а это не то, что вам нужно, вероятно, вы хотите, чтобы оно было on_epoch_end
.
Но в любом случае то, что вы делаете, может быть сделано с помощью наивного modelcheckpoint callback . Вам не нужно писать собственный. Вы можете использовать это следующим образом:
mc = keras.callbacks.ModelCheckpoint('weights{epoch:08d}.h5',
save_weights_only=True, period=5)
model.fit(X_train, Y_train, callbacks=[mc])