将变量存储在变量中而不是依赖于图中的节点是否有任何优势,除了变量在图的多次运行中持续存在并且可以共享?资源管理是否可以更好地支持变量与图节点?
答案 0 :(得分:3)
(来自@YaroslavBulatov:)
如果您需要在图表的开头存储张量以便稍后重复使用:
x
|
conv1 ------
| |
conv2 |
| |
conv3 |
| loooong dependency
... |
| |
deconv1 |
| |
+ --------
|
res
在这里,您在开始时计算conv1
,并在计算res
时在图表中稍后重复使用。
实现这一目标的最佳方法实际上是什么都不做,让TensorFlow处理这种长期依赖。
调用sess.run(res, feed_dict={x: ...})
时,TensorFlow会计算不同的图层conv1
,conv2
,...,并存储稍后计算res
所需的图层(此处{ {1}})。
我认为这与向后传播的机制相同,其中TensorFlow需要在内存中保留激活以便稍后计算渐变。