背景
我正在看关于机器学习的流行的YouTube速成班。
在3:35:50,他提到这个模型可能太适合了,所以再一次用更少的时间来适应它。
既然他没有恢复模型,这不等于用同样的数据来拟合模型,从而继续过度训练它吗?
我的问题
假设您已经创建了一个模型并准备好了数据。
你跑:
model.fit(train_images, train_labels, epochs=10)
model.fit(train_images, train_labels, epochs=8)相当于运行:
model.fit(train_images, train_labels, epochs=18)或:
model.fit(train_images, train_labels, epochs=8)如果是以前安装的数据是覆盖的。,为什么第二次运行model.fit是从先前模型的准确性开始的呢?
在关于保存和培训模型的多个 其他 问题中,公认的解决方案是加载以前经过培训的模型,然后再次运行model.fit。
如果这将覆盖先前存在的权重,这难道不是一开始就破坏了保存模型的目的吗?第一次在新数据上对模型进行培训,难道不是等同的吗?
在多个相似的数据集之间训练一个模型,同时保持所有数据的准确性的适当方法是什么?
发布于 2020-05-31 18:47:37
既然他没有恢复模型,这不等于用同样的数据来拟合模型,从而继续过度训练它吗?
你说得对!为了检查在他的示例中哪个时期会更好,他应该再次编译网络(也就是说,再次执行上面的单元格)。
只要记住,当您再次实例化模型时,它很可能以全新的权重开始,与过去的权重完全不同(除非手动更改此值)。因此,即使你保持相同数量的历元,你的最终准确度可能会根据初始权重而变化。
这两个命令等效吗?
model.fit(train_images, train_labels, epochs=10)
model.fit(train_images, train_labels, epochs=8)和
model.fit(train_images, train_labels, epochs=18)No.
在第一种情况下,您使用一些权重X对网络进行10次训练,然后将权重更新为一些值y。然后,您将再次培训您的网络,尽管您的所有培训设置8次,但现在您正在使用的权重X+y网络。
对于第二种情况,您将使用权重X 18次通过所有的培训数据来训练您的网络。
,这不一样!
https://stackoverflow.com/questions/62120508
复制相似问题