Keras:使用更大的训练集更新模型

Posted

技术标签:

【中文标题】Keras:使用更大的训练集更新模型【英文标题】:Keras: update model with a bigger training set 【发布时间】:2019-04-17 04:20:49 【问题描述】:

我使用训练集使用 Keras 训练了一个用于文本分类(监督学习)的模型。假设这个训练集中有 50.000 个句子

在一周内,我收集了 5000 个新句子,并将它们添加到旧的训练集中。

如果下周我想用新的更大的训练集(50.000 个旧句子 + 5.000 个新句子)训练一个新模型,我应该从头开始训练阶段,还是可以使用旧模型并“更新“它以某种方式节省一些时间?

【问题讨论】:

check this post 。您的问题已在此处解释。 【参考方案1】:

您可以保存/加载模型/权重。查看 Jason Brownlee 的 tutorial。

加载权重后,您可以开始使用新数据集(55000 个样本)进行训练。由于“训练”基本上只是更新权重,并且您加载了训练过的权重,因此您现在正在“更新”已经训练过的模型。

【讨论】:

感谢您的快速回复!我尝试了教程中的解决方案,如果输入层(我句子中的每个不同的单词)在第一个部分训练集和第二个完整训练集之间没有变化,它就可以工作。我的意思是,如果我添加到初始训练集中的 5000 个句子是由前 50000 个句子中已经存在的单词组成的,那么我可以“更新”我的模型。如果有一些新词我必须从头开始重新训练模型,因为输入层发生了变化,对吗? 假设你使用词袋表示,你可以加载整个模型,只切换输入层。这样一来,除了第一个权重之外,您将保留所有经过训练的权重。你可以在这里寻找方法:***.com/questions/49546922/…

以上是关于Keras:使用更大的训练集更新模型的主要内容,如果未能解决你的问题,请参考以下文章

keras训练完模型,为啥对训练集进行evaluate和训练时的loss完全不一样?白训练了吗?

如何重新训练/更新 keras 模型?

Keras训练神经网络进行分类并进行交叉验证(Cross Validation)

使用大数据集在 Google Colab TPU 上训练 seq2seq 模型 - Keras

使用来自 Keras 应用程序的模型,无需预训练权重

Keras 没有在整个数据集上进行训练