【问题标题】:training loss decrease at first several epochs but jump to a high value suddenly训练损失在最初的几个时期减少,但突然跳到一个高值
【发布时间】:2019-08-05 21:29:43
【问题描述】:

我正在医疗数据集上训练 3D Unet。我试图在只有一个实例的小数据集上过度拟合模型。损失先减少,但突然上升到一个高值。我附上了下面的损失曲线。我在每个卷积层之后添加批量归一化,并在损失中添加 l2 正则化。
损失函数是加权的softmax交叉熵。
优化器是 Adam,初始学习率为 0.0001。
我想知道为什么损失不能稳定下来。这是否意味着损失函数过于平滑?

【问题讨论】:

    标签: python tensorflow unity3d-unet


    【解决方案1】:

    影响损失函数的因素有很多。正如您已经提到的,您更改了初始化权重的方式。其他因素可能是学习率、正则化因素、您正在使用的优化器类型。 虽然你已经提到了其中的一些。

    有几点建议: 1.尝试使用dropout。 2. 尝试使用学习率和正则化的不同组合并绘制损失。

    另外,我认为使用 Adam 优化器是个好主意。它确实提高了进程的速度。

    归根结底,结果大多是经验性的,很大程度上取决于您的数据集。

    【讨论】:

      【解决方案2】:

      我改变了初始化权重的方式。目前的训练过程非常稳定。该模型正在按预期收敛。

      【讨论】:

        猜你喜欢
        • 2016-06-02
        • 2018-01-08
        • 2019-08-18
        • 2022-09-25
        • 1970-01-01
        • 2018-12-15
        • 1970-01-01
        • 2022-06-30
        • 2018-01-16
        相关资源
        最近更新 更多