首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TensorFlow可以缓存(子)图计算吗?

TensorFlow可以缓存(子)图计算吗?
EN

Stack Overflow用户
提问于 2016-03-10 09:14:20
回答 1查看 1.4K关注 0票数 5

如果计算涉及到对同一计算(子)图的多次调用,TensorFlow是否可以自动缓存计算?

例如,我有一个矩阵F,其中每个条目表示基于可训练变量W的计算。我的目标函数将这个矩阵与不同的向量相乘几次(每次都使用不变的W)。

例如,当我访问TensorFlow时,它是否会重新计算F[1,2],或者它是否会缓存该值?

理论上,可以预先计算给定固定W的矩阵F,这样F中的每个条目都是一个tf.constant。但这会阻碍W梯度的正确计算。

EN

回答 1

Stack Overflow用户

发布于 2016-03-10 12:43:43

TensorFlow执行有限数量的缓存,但它可能没有涵盖您所描述的情况。

如果您使用以下选项创建tf.Session,将启用常量折叠:

代码语言:javascript
复制
config = tf.ConfigProto(graph_options=tf.GraphOptions(
    optimizer_options=tf.OptimizerOptions(opt_level=tf.OptimizerOptions.L2)))
sess = tf.Session(config=config)

当您使用此配置调用sess.run()时,TensorFlow将评估要运行的适当节点,然后识别其输出为常量的节点的子图,评估它们,并缓存结果。因此,它将避免重复执行冗余计算。

然而,在你的问题中,你提到了F是一些可训练变量的函数。从TensorFlow的角度来看,这些变量是易失性的-它们可能在任何时候改变-所以它不会缓存从这些变量派生的值。如果您希望对F多次重用相同的值,可以考虑将其存储在tf.constant()中,以便常量折叠优化更有用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35905830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档