首页 文章

针对三重态丢失的高效硬数据采样

提问于
浏览
2

我正在尝试在Caffe中实现一个用于三重损失的深度网络 . 当我随机选择三个样本用于锚,正,负图像时,它几乎产生零损失 . 所以我尝试了以下策略:

If I have 15,000 training images,
1. extract features of 15,000 images with the current weights.
2. calculate the triplet losses with all possible triplet combinations.
3. use the hard samples with n largest losses, and update the network n times.
4. iterate the above steps every k iterations to get new hard samples.

第1步很快,但我认为第2步非常耗时且效率非常低 . 所以,我想知道是否有其他有效的硬数据采样策略 .

谢谢 .

1 回答

  • 0

    实际上,如果您的数据集很大,则从整个数据集中对硬三元组进行采样是不可行的 . 实际上,您只能为训练数据集的一小部分选择硬三联,这样可以节省更多时间 . 在使用为K次迭代生成的硬三元组训练网络之后 . 您使用数据集中的下一批图像向网络提供数据并生成新的硬三元组 .

    通过这种方式,计算成本是可以接受的,并且随着训练过程的进行,网络正在逐步改进 .

    有关详细参考,请参阅article here . (第5.1节)

相关问题