繁体   English   中英

在Keras中保存最佳权重和模型

[英]Saving the best weights and model in Keras

我正在将Keras API与Tensorflow后端一起使用来训练DL模型。 我正在使用ModelCheckPoint监视验证准确性,并在有改进的情况下仅存储权重。 在此过程中,我最终将模型架构存储为JSON,并为每项改进存储了权重。 最后,我加载最佳权重和模型体系结构以对测试数据进行预测。 这是我的代码:

    filepath="weights-improvement-{epoch:02d}-{val_acc:.2f}.hdf5"
    checkpoint = ModelCheckpoint(filepath, monitor='val_acc', verbose=1, save_best_only=True, mode='max')
    callbacks_list = [checkpoint]
    history = model.fit_generator(train_generator,steps_per_epoch=nb_train_samples // batch_size, epochs=epochs, validation_data=validation_generator, callbacks=callbacks_list, validation_steps=nb_validation_samples // batch_size, verbose=1)
    model_json = model.to_json()
    with open("model.json", "w") as json_file:
        json_file.write(model_json)
    model.save('model_complete.h5')

我还尝试使用“ model.save”保存整个模型,但是,此保存的模型不是存储最佳权重,而是存储在最后一个时期学习的权重,这绝对不是我所学习的最佳权重。 有没有办法将架构和最佳权重存储到单个模型文件中?

那已经是ModelCheckpoint的默认行为, ModelCheckpoint save_weights_only=False 如果您查看源代码,那么如果您未指定仅保存权重,则它已经调用了model.save

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM