tensorflow的反向传播是如何实现的? (记忆问题)

时间:2017-05-18 14:49:23

标签: memory-management tensorflow object-detection tensorflow-gpu

我开始实施fast-rcnn in TF(基于VGG16)。在我学习的过程中,如果我试图反复传播所有图层,我会遇到内存问题。但测试工作得很好。 (我有一台带有6G内存的Gforce GTX 1060)

我想知道怎么来的? TF保存需要两次保存参数才能进行培训吗?

2 个答案:

答案 0 :(得分:5)

这是因为激活。在前向传播期间,您只需要存储最后一层激活,因此内存使用与深度无关。要计算渐变,您需要存储所有图层的激活,因此内存成本会随着网络的深度而增加。

enter image description here

答案 1 :(得分:2)

反向传播步骤中的内存问题可能是因为:

  

每个反向传播步骤大约需要两倍的内存和   计算时间比前向传播步骤。

取自video,其中还有一个很好的图解释。