我有一个简单的问题,我也在搜索已经安静了一点,但也许我使用了错误的关键字.
Tensorflow如何处理给定的图形?如果有一个简单的图形:
x = tf.constant(1.0,name ='input')
w = tf.constant0.8,name ='weight')
b = tf.constant0.8,name ='bias')
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如何在引擎盖下运行,而不必深入了解源代码.
非常感谢你提前!
TensorFlow包括各种优化,可以简化数据流图.特别是:
TensorFlow将应用公共子表达式消除以避免执行冗余计算.在你的例子的情况下,这将没有太大的影响,但TensorFlow将观察到w并且b是相同的常量,并用单个值替换它们.
TensorFlow将应用常量传播,以便在每次执行子图时相同的(计算)值只计算一次.在您的示例中,整个表达式是常量,因此TensorFlow将使用与tf.constant()result(1.6)对应的单个值替换它.
如果您使用实验性XLA编译器,TensorFlow将进行更积极的简化,并且可能能够使用包含即时编译代码的单个TensorFlow内核替换子图.如果在您的示例中x为a tf.placeholder(),则可以将剩余的计算编译为具有一个输入和一个输出的单个内核.
| 归档时间: |
|
| 查看次数: |
822 次 |
| 最近记录: |