我完成模型訓練處理。在培訓過程中,我用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 –