tensorflow-如何使用张量名称构建操作?

时间:2019-01-25 16:51:31

标签: python python-3.x tensorflow

假设在Python 3.6中,我在tensorflow中创建了两个占位符,并为每个占位符分配了一个名称。但是,我在python中使用相同的变量来存储每个张量。

import tensorflow as tf
tfs = tf.InteractiveSession()

p3 = tf.placeholder(tf.float32,name='left')
p3 = tf.placeholder(tf.float32,name='right')

现在如何使用分配的名称而不是变量名称创建操作?

op1 = left * right
op2 = tf.multiply(left,right)

很明显第一个不起作用,因为python没有名为“ left”或“ right”的变量,但似乎在第二种情况下,我应该能够引用这些名称。如果没有,我为什么还要麻烦在张量上设置名称?

如果有问题,我将在AWS Sagemaker conda_tensorflow_p36上进行

2 个答案:

答案 0 :(得分:2)

您应该可以使用get_tensor_by_name

tensor_left = tf.get_default_graph().get_tensor_by_name("left")
tensor_right = tf.get_default_graph().get_tensor_by_name("right")
op = tf.multiply(tensor_left, tensor_right)

SO question,获取名称tf.placeholder(使用get_tensor_by_name

Similar SO question以获取结果。

答案 1 :(得分:2)

要获取按名称操作的tf.Operation,可以使用tf.Graph.get_operation_by_name

op = tf.get_default_graph().get_operation_by_name("left")
op = tf.get_default_graph().get_operation_by_name("right")