DenseNets倾向于占用TensorFlow中的大量内存,因为每个concat操作都存储在单独的分配中。最近的一篇论文Memory-Efficient Implementation of DenseNets表明,通过共享分配可以大大减少这种内存利用率。来自paper + pytorch实现的图像说明了共享内存方法:
如何使用TensorFlow实现这一点?如果不能通过python完成,如何在支持CPU和GPU的操作系统中正确实现?
我创建了TensorFlow Feature Request for necessary allocation functionality。
答案 0 :(得分:1)
现在可以在以下位置获得内存高效实现:
https://github.com/joeyearsley/efficient_densenet_tensorflow
上面链接中的相关功能是:
# Gradient checkpoint the layer
_x = tf.contrib.layers.recompute_grad(_x)