Python tf操作控制输入与输入

Python tf操作控制输入与输入,python,tensorflow,Python,Tensorflow,在中,控制输入和输入之间有什么区别tf.Operation分别描述了它们,但在正常的事件过程中,我希望“每个数据输入都已准备就绪”正好是当前操作能够运行的条件。我缺少什么?在tensorflow中,可以通过函数添加额外的依赖项,除了普通依赖项(对应于输入)之外,tensorflow还遵守这些依赖项。这正是正确的 下面是一个例子: a=tf.Variable(name='a',初始值=1.0,可训练值=False) b=tf.变量(name='b',初始值=0.0,可训练=False) c=tf.

在中,
控制输入
输入
之间有什么区别
tf.Operation
分别描述了它们,但在正常的事件过程中,我希望“每个数据输入都已准备就绪”正好是当前操作能够运行的条件。我缺少什么?

在tensorflow中,可以通过函数添加额外的依赖项,除了普通依赖项(对应于输入)之外,tensorflow还遵守这些依赖项。这正是正确的

下面是一个例子:

a=tf.Variable(name='a',初始值=1.0,可训练值=False)
b=tf.变量(name='b',初始值=0.0,可训练=False)
c=tf.add(a,b,name='sum')
op=tf.get_default_graph().get_operation_by_name('sum'))
打印(列表(op.inputs))#[,]
打印(操作控制输入)#[]
这是一种标准情况,毫不奇怪
c
只有2个普通输入,没有
控制输入。经评估,
c
值将为
1.0

但是,如果您添加一个额外的依赖项,它将改变图形和计算方式:

a=tf.Variable(name='a',初始值=1.0,可训练值=False)
b=tf.变量(name='b',初始值=0.0,可训练=False)
相依性=tf.assign(b,a*3,name='dependent_op')
使用tf.control_依赖项([dependent_op]):
c=tf.add(a,b,name='sum')
op=tf.get_default_graph().get_operation_by_name('sum'))
打印(列表(op.inputs))#[,]
打印(操作控制输入)#[]
请注意,
输入的列表
没有改变,但是
控制输入
现在包含了
相关的操作
。Tensorflow保证在计算
sum
之前先计算
dependent\u op
,因此,
c
将获得值
4.0
。如果定义
c
而不使用
tf.control\u dependencies
块,
c
将被计算为
1.0
,因为
dependent\u op
即使在图形中也不会执行