【发布时间】:2016-11-23 04:27:03
【问题描述】:
我完成模型训练处理。在训练期间,我使用 ModelCheckpint 通过以下方式保存最佳模型的权重:
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%的准确率?
我做错了什么吗?
为了安全起见,有没有办法直接保存最好的模型而不是模型的权重?
【问题讨论】:
标签: keras