Caffe如何更新具有多个输出分支的blob的渐变?

问题描述 投票:1回答:1

Caffe支持多种损失。然后对于反向传播阶段,一些斑点可能具有来自不同损失的多个梯度。 Caffe如何处理这个blob的渐变?

据我所知,在设计网络时这可能不是一个问题。但是当我尝试编写一个新图层时,这个问题确实让我很困惑。谢谢你的任何想法! enter image description here

machine-learning neural-network deep-learning caffe gradient-descent
1个回答
0
投票

这不是caffe或任何其他深度学习工具的问题。这纯粹是一个数学问题:当你有几次损失时,你就会为每次损失分配loss_weight,而净损失的总损失是所有损失的加权和。因此,为网络计算的梯度是损失加权和的梯度:没有需要积分的每个损耗梯度,而是单个损耗,它是损耗层的加权和。

当将一层的"Split"引导到几层时,Caffe通常使用"top"层(在你的例子中,"conv2"的输出是"Split""bottom""auxiliary loss""ip1")。 看看"Split" layer的向后传播代码,你可以看到所有的top.diffs总结为bottom.diff

© www.soinside.com 2019 - 2024. All rights reserved.