由张量流中图形构造(符号样式程序)中的“不相关”语句引起的不同输出

Posted

技术标签:

【中文标题】由张量流中图形构造(符号样式程序)中的“不相关”语句引起的不同输出【英文标题】:Diffrent outputs caused by a " irrelevant " statement in graph construction (symbolic style programs ) in tensorflow 【发布时间】:2017-02-18 02:05:18 【问题描述】:

我有一个关于 tensorflow 中符号样式程序的基本问题,下面是代码(tensorflow 0.12):

import numpy as np
import tensorflow as tf
import sys

x = tf.placeholder(tf.float32, 1)
y = 1
z = x + y * 2
# x = z

with tf.Session() as sess:
for i in range(2):
    result = sess.run([z], feed_dict=x: [1])
    print "result = "
    print result[0]

如果注释了'x = z',这是一个典型的有向无环图(DAG),结果是:

 result = 
 [ 3.]
 result = 
 [ 3.]

如果 'x = z' 未注释,则结果为:

 result = 
 [ 1.]
 result = 
 [ 1.]

我认为结果应该与“x = z”语句无关,结果应该是3。是什么导致了差异?谢谢!

【问题讨论】:

当您取消注释 # x = z 时,您将 [1] 输入到 feed_dict 图表中的不同节点 亲爱的雅罗斯拉夫,非常感谢您!我现在明白了,当添加x = z时,x实际上表示与z相同的图形节点,如果x馈送[1],那么z也是[1]。您能帮我解决以下链接中的另一个问题吗? (***.com/questions/42317636/…) 【参考方案1】:

当x=z相加时,x实际上与z表示同一个图节点,如果x馈送[1],那么z也是[1]。谢谢雅罗斯拉夫。

【讨论】:

以上是关于由张量流中图形构造(符号样式程序)中的“不相关”语句引起的不同输出的主要内容,如果未能解决你的问题,请参考以下文章

张量流中的内存问题

在张量流中,如何迭代存储在张量中的输入序列?

张量流中的条件图和访问张量大小的for循环

当切片本身是张量流中的张量时如何进行切片分配

python 张量流中的梯度裁剪

张量流中的ocr实现