Neural network caffe中同一层的输出精度和损耗

Neural network caffe中同一层的输出精度和损耗,neural-network,deep-learning,caffe,loss,Neural Network,Deep Learning,Caffe,Loss,我已经编写了一个自定义层,希望同时输出精度和损耗。使用caffe是否可以通过以下方式实现这一点 类似于: layer { name: "" bottom: "" top: loss1 top: loss2 top: accuracy } 你可以为你的图层设置任意多的“顶部” 首先,您需要定义层计算的“top”的数量。这是通过覆盖来完成的。 您的层设置和重塑方法还应考虑新的“顶部”数量,并设置和重塑这些“顶部” 请注意,由于您的图层是损失图层,因此您必须为每个“顶部”设置值: 并且您的层类应该是

我已经编写了一个自定义层,希望同时输出
精度
损耗
。使用
caffe
是否可以通过以下方式实现这一点

类似于:

layer {
name: ""
bottom: ""
top: loss1
top: loss2
top: accuracy
}
你可以为你的图层设置任意多的“顶部”

首先,您需要定义层计算的“top”的数量。这是通过覆盖来完成的。
您的
层设置
重塑
方法还应考虑新的“顶部”数量,并设置和重塑这些“顶部”

请注意,由于您的图层是损失图层,因此您必须为每个“顶部”设置值:

并且您的层类应该是由
LossLayer
类派生的,而不是更抽象的

有关如何在caffe中实现新层的更多信息,请参阅。
另请注意,
“SoftmaxWithLoss”
层有一个可选的第二个“top”,您可能希望查看该层的代码以了解如何实现此功能。

您可以为层设置任意数量的“top”

首先,您需要定义层计算的“top”的数量。这是通过覆盖来完成的。
您的
层设置
重塑
方法还应考虑新的“顶部”数量,并设置和重塑这些“顶部”

请注意,由于您的图层是损失图层,因此您必须为每个“顶部”设置值:

并且您的层类应该是由
LossLayer
类派生的,而不是更抽象的

有关如何在caffe中实现新层的更多信息,请参阅。
还请注意,
“SoftmaxWithLoss”
层有一个可选的第二个“top”,您可能希望查看该层的代码,以了解如何实现这一点

layer {
  name: "my_new_layer"
  type: "MyNewLayer"
  bottom: "x"
  top: "loss1"
  top: "loss2"
  top: "accuracy"
  loss_weight: 1
  loss_weight: 1.3 # you might want loss2 to have a bit more impact
  loss_weight: 0   # accuracy should not affect gradients...
}