【问题标题】:How is working multiple loss layer using caffe? [duplicate]如何使用 caffe 工作多个损失层? [复制]
【发布时间】:2017-11-19 23:22:36
【问题描述】:

制作一些这样的网络

Conv(1-1)-Conv(1-2)-Loss1-Conv(2-1)-Conv(2-2)-Loss2

当我使用 caffe 训练这个网络时,效果如何? Conv(2-1) 和 Conv(2-2) 使用 Loss2 更新。我可以得到它。

但是如何更新 Conv(1-1) 和 Conv(1-2) 中的权重? 只使用 Loss1?或使用来自 Conv(2-1) 的梯度和来自 Loss1 的梯度的总和?

【问题讨论】:

    标签: machine-learning neural-network deep-learning caffe gradient-descent


    【解决方案1】:

    Caffe(与其他基于 SGD 的求解器一样)使用链式法则来计算导数。网络的损失是两个损失层的总和,估计的梯度是整体损失的梯度。 loss1 w.r.t conv2参数的导数为零,因此loss1对conv2参数的更新没有影响,正如预期的那样。

    【讨论】:

    • 是的,loss1 对 conv2 的权重没有影响。 conv1的权重如何??您的意思是所有由整体损失(两个损失层的总和)更新的卷积层?
    • @HotaekHan 由于链式法则,计算网络的梯度非常简单:它允许将计算“分解”为逐层乘积。如果你看一个损失是两个项的和,那么梯度就是两个导数的和。
    • 感谢您的好意。
    猜你喜欢
    • 2019-01-06
    • 1970-01-01
    • 2017-03-14
    • 2017-06-20
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    相关资源
    最近更新 更多