【问题标题】:How to retrain/update keras model?如何重新训练/更新 keras 模型?
【发布时间】:2019-06-18 20:28:54
【问题描述】:

如何在不从头开始重新训练的情况下更新/附加新数据到我的模型? 我的数据集是图像,输出是预测情绪。

model.fit(x=train_image, y=train_label, epochs=1, batch_size=1)

Model.fit 似乎没有附加我的新数据,而是覆盖了模型。我的输出只有一个(我更新的最后一个)。

Loading a trained Keras model and continue training

我已经搜索过了,但效果不佳。

编辑 1: 当我们丢失之前训练的数据时,我们能做什么。简而言之,我们在训练完成后丢失了训练数据,并且无法再次取回数据,我们需要保留的只是从中完成的学习,并在收到新数据时重新训练模型。

【问题讨论】:

  • 究竟是什么不起作用?您收到任何错误消息吗?您是否还将优化器的状态保存在某处?
  • @Hagbard 是的,我确实保存了它,它没有错误。问题是每次我使用 model.fit 重新训练/更新它时,它都会不断覆盖我的模型。

标签: python tensorflow keras


【解决方案1】:

这真的很容易。例如 Keras 中的model.save() 可以保存模型权重,这是您实际需要保留的。

之后,您可以将新图像添加到您的训练集中,但只需使用您保存的权重即可。

每个新纪元都会通过所有图像(新旧图像)。

【讨论】:

  • 好吧,我将训练数据的 x 和 y 数组保存到 numpy 文件中。然后将新的 x 和 y 数据附加到该文件中,然后重新训练整个模型。它更像是一种数据收集方法。
  • 你有任何教程/资源的链接来解释模型再训练的实际效果吗?
  • @JapeshMethuku 不,因为我在 PyTorch 中的时间越来越长,但你可以试试 keras.io/guides /transfer_learning/
  • @prosti 谢谢!但是当我说再培训时,我并没有提到迁移学习。
  • 有什么大的不同吗?
猜你喜欢
  • 2021-01-31
  • 2019-04-17
  • 2023-01-03
  • 1970-01-01
  • 1970-01-01
  • 2019-06-04
  • 2022-01-01
  • 1970-01-01
  • 2017-03-09
相关资源
最近更新 更多