我试图在 Faster-RCNN 中 RPN 的多任务损失函数 (L) 中不同地缩放正样本和负样本在分类损失 (l_cls) 中的贡献。
据我所知,在 Caffe 中执行此操作的直接方法是使用“InfoGainLossLayer”并传递包含不同比例的 infoGainMatrix(H)。不幸的是,据我所知,无法即时计算 infoGainMatrix(H) 并将其传递给 InfoGainLossLayer。(参考)。我想让我的 H 动态计算。
如果有人能解释如何规避这种情况,那就太好了。
我试图在 Faster-RCNN 中 RPN 的多任务损失函数 (L) 中不同地缩放正样本和负样本在分类损失 (l_cls) 中的贡献。
据我所知,在 Caffe 中执行此操作的直接方法是使用“InfoGainLossLayer”并传递包含不同比例的 infoGainMatrix(H)。不幸的是,据我所知,无法即时计算 infoGainMatrix(H) 并将其传递给 InfoGainLossLayer。(参考)。我想让我的 H 动态计算。
如果有人能解释如何规避这种情况,那就太好了。
您可以编写一个“即时”"Python"
计算的层,H
并将其作为"InfogainLoss"
层的第三个“底部”提供:
layers {
name: "computeH"
bottom: "label"
top: "H"
type: "Python"
python_param { ... }
}
layer {
name: "loss"
type: "InfogainLoss"
bottom: "pred"
bottom: "label"
bottom: "H" # new H for each batch
top: "loss"
}