代码之家  ›  专栏  ›  技术社区  ›  Mark

TensorFlow-如何使用Tensor名称构建操作?

  •  2
  • Mark  · 技术社区  · 5 年前

    比如说,在Python3.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 回复  |  直到 5 年前
        1
  •  2
  •   Scott Skiles Simeon Visser    5 年前

    你应该能用 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 为了得到结果。

        2
  •  2
  •   Balaji MJ    5 年前

    对于按名称获取tf.操作,可以使用 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")