【问题标题】:Saving model h5 in keras proceduces low performances in precision在 keras 中保存模型 h5 会导致精度降低
【发布时间】:2018-05-21 13:27:14
【问题描述】:

我已经通过使用 Keras 开发/实现了一个 CNET

 model.fit()

我已经正确保存了模型:

 model.save('my_model_CNET32.h5')

如果在训练过程结束时不保存模型我使用 测试数据集测试性能我获得了 99% 的精度,同时通过保存模型和然后通过使用重新加载它:

 model = load_model('my_model_CNET32.h5')

在一个专门用于测试 CNET 所学内容的新脚本中,我获得了 70%。

注意,很明显,测试数据集是完全一样的,我可以推断由于保存失败分类性能较低em> 模型。

你知道这个问题的原因是什么吗?

提前致谢

【问题讨论】:

  • 你在使用 keras 提供的 .evaluate() 函数吗?如果是,您可以使用 .predict() 构建自己的函数并手动计算错误吗?我记得如果您的样本数量不是您的批量大小的倍数,则进行评估时有些奇怪。
  • Keras 论坛上似乎有一个(无休止的......)正在进行的讨论:model.save and load giving different result

标签: model keras conv-neural-network h5py


【解决方案1】:

这是我在 CNET 中遇到的类似问题。 问题可能是其中之一:

  • Keras 以错误的方式将模型保存为 .h5 格式。尽管 Keras 仍支持 .h5 格式,但通过查看开发人员指南,似乎最好将模型保存为新的 SavedModel 格式,因为它保存了从架构到模型优化器状态的所有内容。

  • 模型的 compile 方法中没有指定正确的准确度指标。这是我从这两个问题中发现的:

    1. Keras giving low accuracy after loading model
    2. Accuracy is lost after save/load

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-08
    • 2021-02-18
    • 2020-07-24
    • 2022-11-02
    • 1970-01-01
    • 2011-07-16
    • 2021-05-14
    • 2021-05-16
    相关资源
    最近更新 更多