tf操作控制输入与输入

2024-05-14 20:17:29 发布

您现在位置:Python中文网/ 问答频道 /正文

^{}中,control_inputs和{有什么区别?tf.Operation分别对它们进行了描述,但在正常情况下,我希望“每个数据输入都准备就绪”正好是当前操作能够运行的条件。我错过了什么?在


Tags: 数据tf情况条件operationcontrolinputs区别
1条回答
网友
1楼 · 发布于 2024-05-14 20:17:29

在tensorflow中,可以通过^{}函数添加额外的依赖项,除了普通的依赖项(与输入相对应)外,tensorflow还遵循这些依赖项。这正是^{}包含的内容。在

下面是一个例子:

a = tf.Variable(name='a', initial_value=1.0, trainable=False)
b = tf.Variable(name='b', initial_value=0.0, trainable=False)  
c = tf.add(a, b, name='sum')

op = tf.get_default_graph().get_operation_by_name('sum')
print(list(op.inputs))    # [<tf.Tensor 'a/read:0' shape=() dtype=float32>, <tf.Tensor 'b/read:0' shape=() dtype=float32>]
print(op.control_inputs)  # []

这是一个标准的情况,不出意外,c只有2个普通输入,没有{}。经过计算,c值将为1.0。在

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

^{pr2}$

注意,inputs的列表没有改变,但是control_inputs现在包含了dependent_op。Tensorflow保证dependent_op将在sum之前求值,因此,c将得到值4.0。如果定义c而不使用tf.control_dependencies块,c将被计算为1.0,因为dependent_op,即使它在图中,也不会被执行。在

相关问题 更多 >

    热门问题