想要的输出层丢失不会出现在 caffe 打印中

Wanted output layer loss doesn't appear in caffe prints

我正在微调现有网络,添加一个我自己的输出层。 我使用的网络已经调整为可以识别人脸并提取面部特征。

我添加的层只添加到最后一部分(我希望那里还有足够的数据),试图提取偏航角。

prototxt 文件在我修改之前的结尾:

layer {
  name: "cls_prob"
  type: "Softmax"
  bottom: "fc6_3"
  top: "cls_prob"
}
layer {
  name: "bbox_reg_3"
  type: "InnerProduct"
  bottom: "fc5_3"
  top: "bbox_reg_3"
  inner_product_param {
    num_output: 3
  }
}
layer {
  name: "rotate_reg_3"
  type: "InnerProduct"
  bottom: "fc5_3"
  top: "rotate_reg_3"
  inner_product_param {
    num_output: 1
  }
}

与我的更改相同的部分 + 训练更改:

layer {
  name: "cls_prob"
  type: "Softmax"
  bottom: "fc6_3"
  top: "cls_prob"
}
layer {
  name: "bbox_reg_3"
  type: "InnerProduct"
  bottom: "fc5_3"
  top: "bbox_reg_3"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  inner_product_param {
    num_output: 3
  }
}
layer {
  name: "rotate_reg_3"
  type: "InnerProduct"
  bottom: "fc5_3"
  top: "rotate_reg_3"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  inner_product_param {
    num_output: 1
  }
}
layer {
  name: "yaw_reg_3"
  type: "InnerProduct"
  bottom: "fc5_3"
  top: "yaw_reg_3"
  inner_product_param {
    num_output: 1
  }
}
layer {
  name: "loss"
  type: "EuclideanLoss"
  bottom: "yaw_reg_3"
  bottom: "label"
  top: "loss"
}

我添加了 yaw_reg_3,但我只看到 rotate_reg_3、bbox_reg_3 和 cls_prob 丢失打印。

谢谢

用gdb调试caffe后: 遍历所有层后,如果某一层没有出现在另一层的底层,则确定为输出层。 由于 "yaw_reg_3" 是 "loss" 的底部,从技术上讲它不是输出层,因此只打印它的损失,而不是预测本身。