2017-09-27 189 views
1

使用預先訓練的VGG16模型時,我無法保存最佳模型的權重。我用這個代碼:使用預先訓練的VGG16模型時無法保存重量

checkpointer = [ 
       # Stop if the accuracy is not improving after 7 iterations 
       EarlyStopping(monitor='val_loss', patience=3, verbose=1), 
       # Saving the best model and re-use it while prediction 
       ModelCheckpoint(filepath="C:/Users/skumarravindran/Documents/keras_save_model/vgg16_v1.hdf5", verbose=1, monitor='val_acc', save_best_only=True), 
       #    
] 

而且我得到以下錯誤:

C:\Users\skumarravindran\AppData\Local\Continuum\Anaconda2\envs\py35gpu1\lib\site-packages\keras\callbacks.py:405: RuntimeWarning: Can save best model only with val_acc available, skipping. 'skipping.' % (self.monitor), RuntimeWarning)

+1

你有'指標= [ 'ACC']? –

回答

1

通過使用下面的代碼,你將能夠節省基於精度最好的模型。

請使用下面的代碼:`你`model.compile()`行

model.compile(loss='categorical_crossentropy', optimizer= 'adam', 
      metrics=['accuracy']) 

history = model.fit_generator(
    train_datagen.flow(x_train, y_train, batch_size=batch_size), 
    steps_per_epoch=x_train.shape[0] // batch_size, 
    epochs=epochs, 
    callbacks=[ModelCheckpoint('VGG16-transferlearning.model', monitor='val_acc', save_best_only=True)] 
) 
相關問題