零损失张量也会反向传播吗?

时间:2019-01-23 15:38:33

标签: tensorflow keras deep-learning pytorch backpropagation

我正在阅读论文Training Region-based Object Detectors with Online Hard Example Mining,实现在线硬示例挖掘的一种方法是擦除(乘以零)损失张量的某些元素。然而,在本文中,作者声称这将是低效的,因为当前的深度学习框架甚至为0个丢失张量分配内存并执行backprop。不幸的是,作者没有提到这样做的框架,因此我想了解TensorflowPyTorch

此外,如果不是将损失乘以零,而是仅从损失中收集我感兴趣的切片,那么可以避免通过不感兴趣的RoI反向传播吗?例如:

active_rois = tf.where(tf.not_equal(rois, 0)) # get the rois I care about
truth = tf.gather(truth, active_rois) # filter gt tensor
pred = tf.gather(pred, active_rois) # filter pred tensor
loss = compute_loss(truth, pred)

我之前提到的论文摘录:

  

损耗层可以计算所有RoI的损耗,并基于此对它们进行排序   选择硬投资回报率,最后设置所有非硬投资损失   RoIs为0。虽然简单明了,但此实现是   RoI网络仍然分配内存并执行,因此效率低下   即使大多数RoI的亏损为0,   因此没有梯度更新(当前深度学习的局限性)   工具箱)。

0 个答案:

没有答案