gpt4 book ai didi

machine-learning - 为什么预训练的 ResNet18 比训练的验证精度更高?

转载 作者:行者123 更新时间:2023-11-30 09:40:40 27 4
gpt4 key购买 nike

对于 PyTorch 关于执行计算机视觉迁移学习的教程 ( https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html ),我们可以看到验证精度比训练精度更高。将相同的步骤应用于我自己的数据集,我看到了类似的结果。为什么会这样呢?和ResNet 18的架构有关系吗? enter image description here

最佳答案

假设您的代码中没有错误,并且训练数据和验证数据位于同一域中,那么出现这种情况的原因有多种。

  1. 训练损失/acc 计算为整个训练时期的平均值。网络以一组权重开始纪元,并以一组不同的(希望更好!)权重结束纪元。在验证过程中,您仅使用最新的权重来评估所有内容。这意味着验证和训练准确性之间的比较具有误导性,因为训练准确性/损失是使用来自模型的可能更糟糕状态的样本计算的。这通常在训练开始时或学习率调整后最明显,因为网络通常以比结束时更糟糕的状态开始纪元。当训练数据相对较小时(如您的示例中的情况),这一点通常也很明显。

  2. 另一个区别是训练期间使用的数据增强在验证期间不使用。在训练过程中,您随机裁剪和翻转训练图像。虽然这些随机增强对于提高网络的泛化能力很有用,但它们不会在验证期间执行,因为它们会降低性能。

如果您确实有动力并且不介意花费额外的计算能力,则可以通过在每个时期结束时使用与验证相同的数据转换通过网络运行训练数据来获得更有意义的比较。

关于machine-learning - 为什么预训练的 ResNet18 比训练的验证精度更高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58895804/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com