代码:
model.compile(loss='categorical_crossentropy',
optimizer=keras.optimizers.Adam(learning_rate=LEARNING_RATE),
metrics=[metrics.CategoricalAccuracy(name='accuracy'),
metrics.Precision(name='precision'),
metrics.Recall(name='recall'),
metrics.AUC(name='auc'),
])
checkpoint = ModelCheckpoint(filepath=WEIGHTS_PATH, monitor='val_accuracy', mode='max', save_best_only='True', verbose=1)
model.fit(x_train,
y_train,
validation_data=(x_test, y_test),
batch_size=BATCH_SIZE,
epochs=EPOCHS,
callbacks=[checkpoint])
model.save(WEIGHTS_PATH)
这是因为已经使用了回调函数保存最佳模型,然后使用model.save()把最佳模型覆盖了,所以只需要把保存模型的函数也就是最后一行注释掉就好了。