首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow是否简化了计算图?

Tensorflow是否简化了计算图?
EN

Stack Overflow用户
提问于 2017-03-06 14:28:36
回答 1查看 1.1K关注 0票数 4

我有一个简单的问题,我也搜索已经安静了一点,但也许我使用了错误的关键字。

Tensorflow如何处理给定的图形?如果有一个简单的图:

X= tf.constant(1.0,name='input') W= tf.constant0.8,name=‘权重’) B= tf.constant0.8,name=‘偏向’) y_1 = tf.mul(w,x,name='output_1') y_2 = tf.add(y_1,b,name='output_1')

算术语句当然是由计算图给出的,但是Tensorflow是否通过不复制内存等方法来编译和简化它呢?这样就可以在CPU或GPU之类的“设备”上执行计算内核的“浓缩”版本?

这样它就变成了这样的东西:

y_2 = tf.add(tf.mul(w,x),b,name='output_1')

也许有人知道一个很好的资源来了解更多关于Tensorflow是如何在引擎盖下运行的,而不需要深入了解源代码。

非常感谢您提前!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-06 18:39:57

TensorFlow包括各种可以简化数据流图的优化。特别是:

  • TensorFlow将应用公共子表达式消去以避免执行冗余计算。在您的示例中,这不会产生太大的效果,但是TensorFlow会观察到wb是相同的常量,并将它们替换为单个值。
  • TensorFlow将应用常量传播,以便每次执行子图时相同的(计算)值只能计算一次。在您的示例中,整个表达式是一个常量,因此TensorFlow将用与结果(1.6)对应的单个tf.constant()值替换它。
  • 如果您使用实验性的XLA编译器,TensorFlow将进行更积极的简化,并且可能能够用包含及时编译的代码的单个TensorFlow内核替换子图。在您的示例中,如果x是一个tf.placeholder(),那么计算的其余部分可以编译成一个具有一个输入和一个输出的内核。
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42628143

复制
相关文章

相似问题

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