python之我试图在神经网络训练中理解 'epochs'。接下来的实验是等价的吗
假设我有一个定义的神经网络的训练样本(带有相应的训练标签)(神经网络的架构对于回答这个问题无关紧要)。让我们称神经网络为“模型”。
为了不产生任何误解,假设我介绍了“模型”的初始权重和偏差。
实验 1。
我使用训练样本和训练标签来训练“模型”40 个时期。训练结束后,神经网络将对整个神经网络具有一组特定的权重和偏差,我们称之为 WB_Final_experiment1。
实验二
我使用训练样本和训练标签训练“模型”20 个时期。训练结束后,神经网络将对整个神经网络具有一组特定的权重和偏差,我们称之为 WB_Intermediate。
现在我在“模型”中引入 WB_Intermediate 并训练另外 20 个时期。训练结束后,神经网络将对整个神经网络具有一组特定的权重和偏差,我们称之为 WB__Final_experiment2。
注意事项。每个单独的参数、超参数、激活函数、损失函数......除了 epoch 之外,两个实验都完全相同。
问题:WB_Final_experiment1 和 WB__Final_experiment2 完全相同吗?
请您参考如下方法:
如果您遵循本教程 here , 你会发现两个实验的结果如下 -
实验一
实验二
在第一个实验中,模型运行了 4 个 epoch,在第二个实验中,模型运行了 2 个 epoch,然后使用先前训练的最后一个权重再训练 2 个 epoch。您会发现结果会有所不同,但变化幅度很小。由于权重的随机初始化,它们总是会有所不同。但是这两个模型的预测将非常接近。
如果模型使用相同的权重进行初始化,那么两个模型在 4 个 epoch 结束时的结果将保持相同。
另一方面,如果您训练了 2 个时期,然后关闭您的训练类(class)并且不会保存权重,如果您在重新开始类(class)后现在训练 2 个时期,则预测将不一样。为避免在训练前出现这种情况,请始终加载保存的权重以使用 model.load_weights("path to model") 继续训练。
长话短说
如果模型使用完全相同的权重进行初始化,则相同训练时期结束时的输出将保持不变。如果它们是随机初始化的,输出只会略有不同。
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



