我正在观看有关机器学习的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
如果这将覆盖先前存在的权重,这是否会破坏首先保存模型的目的?第一次在新数据上训练模型是否等效?
在多个相似数据集之间训练模型,同时又保持所有数据的准确性的合适方法是什么?
由于他没有重新实例化模型,这是否等同于用相同的数据拟合模型,从而继续对其进行过度训练?
你是对的!为了检查在他的示例中哪个时期更好,他应该重新编译网络(即再次执行上述单元格)。
请记住,通常,每当您再次实例化模型时,它很可能将从全新的权重开始,与过去的权重完全不同(除非您手动更改此权重)。因此,即使您保持相同的时期数,最终精度也可能会根据初始权重而改变。
这两个命令是否等效?
model.fit(train_images, train_labels, epochs=10)
model.fit(train_images, train_labels, epochs=8)
和
model.fit(train_images, train_labels, epochs=18)
没有。
在第一种情况下,您正在对您的网络进行一些权重训练,该权重要X
经过所有训练集的10次,然后将权重更新为某个值y
。然后,尽管所有训练都设置了8次,但您将再次训练网络,但是现在您正在使用具有权重的网络X+y
。
对于第二种情况,您将使用权重通过所有训练数据对网络进行训练18次X
。
这不一样!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句