Caffe 中的欧氏损失层
Euclidean Loss Layer in Caffe
我目前正在尝试在 caffe 中实现我自己的损失层,并且在尝试这样做时,我正在使用其他层作为参考。然而,令我困惑的一件事是 Backward_cpu
中 top[0]->cpu_diff()
的使用。我将使用 EuclideanLossLayer
作为参考。这是我的问题
我的理解是top[0]->cpu_diff()
保存的是下一层的误差导数,但是如果没有其他层怎么初始化呢?因为它在 EuclideanLossLayer
中使用而没有执行任何检查:
const Dtype alpha = sign * top[0]->cpu_diff()[0] / bottom[i]->num();
同样,在 EuclideanLossLayer
中,使用以下代码片段计算关于激活的误差的导数:
const Dtype alpha = sign * top[0]->cpu_diff()[0] / bottom[i]->num();
caffe_cpu_axpby(
bottom[i]->count(), // count
alpha, // alpha
diff_.cpu_data(), // a
Dtype(0), // beta
bottom[i]->mutable_cpu_diff()); // b
如果我的第一个假设是正确的,并且 top[0]->cpu_diff()
确实包含上一层的误差导数,为什么我们只使用第一个元素,即 top[0]->cpu_diff()[0]
而不是乘以整体矢量即 top[0]->cpu_diff()
?
对于损失层,没有下一层,因此顶部差异 blob 在技术上未定义且未使用 - 但 Caffe 使用此预分配 space 来存储不相关的数据:Caffe 支持将损失层与用户定义的权重(prototxt 中的 loss_weight),此信息(单个标量浮点数)存储在顶部 blob 的 diff 数组的第一个元素中。这就是为什么您会在每个损失层中看到它们乘以该数量以支持该功能的原因。 Caffe's tutorial about the loss layer.
中对此进行了解释
这个权重通常用来给网络增加辅助损失。您可以在 Google 的 Going Deeper with Convoltions or in Deeply-Supervised Nets.
中阅读更多相关信息
我目前正在尝试在 caffe 中实现我自己的损失层,并且在尝试这样做时,我正在使用其他层作为参考。然而,令我困惑的一件事是 Backward_cpu
中 top[0]->cpu_diff()
的使用。我将使用 EuclideanLossLayer
作为参考。这是我的问题
我的理解是
top[0]->cpu_diff()
保存的是下一层的误差导数,但是如果没有其他层怎么初始化呢?因为它在EuclideanLossLayer
中使用而没有执行任何检查:const Dtype alpha = sign * top[0]->cpu_diff()[0] / bottom[i]->num();
同样,在
EuclideanLossLayer
中,使用以下代码片段计算关于激活的误差的导数:const Dtype alpha = sign * top[0]->cpu_diff()[0] / bottom[i]->num(); caffe_cpu_axpby( bottom[i]->count(), // count alpha, // alpha diff_.cpu_data(), // a Dtype(0), // beta bottom[i]->mutable_cpu_diff()); // b
如果我的第一个假设是正确的,并且
top[0]->cpu_diff()
确实包含上一层的误差导数,为什么我们只使用第一个元素,即top[0]->cpu_diff()[0]
而不是乘以整体矢量即top[0]->cpu_diff()
?
对于损失层,没有下一层,因此顶部差异 blob 在技术上未定义且未使用 - 但 Caffe 使用此预分配 space 来存储不相关的数据:Caffe 支持将损失层与用户定义的权重(prototxt 中的 loss_weight),此信息(单个标量浮点数)存储在顶部 blob 的 diff 数组的第一个元素中。这就是为什么您会在每个损失层中看到它们乘以该数量以支持该功能的原因。 Caffe's tutorial about the loss layer.
中对此进行了解释这个权重通常用来给网络增加辅助损失。您可以在 Google 的 Going Deeper with Convoltions or in Deeply-Supervised Nets.
中阅读更多相关信息