我完成模型训练处理。在培训过程中,我用ModelCheckpint通过保存最佳模型的权重:keras:在评估模型中加载保存的模型权重
checkpoint = ModelCheckpoint(filepath, monitor='val_acc', verbose=1,
save_best_only=True, mode='max')
训练结束后,我加载到评估模型中的模型权重,但我发现该模型并没有给所观察到的最佳精度在训练中。我重装型号如下:
model.load_weights(filepath) #load saved weights
model = Sequential()
model.add(Convolution2D(32, 7, 7, input_shape=(3, 128, 128)))
....
....
model.compile(loss='categorical_crossentropy',
optimizer=sgd,
metrics=['accuracy'])
#evaluate the model
scores = model.evaluate_generator(test_generator,val_samples)
print("Accuracy = ", scores[1])
通过Modelcheckpoint保存精度最高为85%左右,但是重新编译模型只给出了16%的准确度?
我在做什么错?
为了安全起见,有什么方法可以直接保存最佳模型而不是模型重量吗?
你说在培训期间保存最好的模型是什么意思?模型在训练时不会改变|:以任何方式如果你想这样做...你可以使用标志save_weights_only = False,它会在每个时代保存模型....你提醒我关于我问的一个问题: https://stackoverflow.com/questions/48139494/tensorflow-keras-modelcheckpoint-saving-model-while-training-why –