【问题标题】:tensorflow - how to build operations using tensor names?tensorflow - 如何使用张量名称构建操作?
【发布时间】:2019-01-25 16:51:31
【问题描述】:

假设在 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 上执行此操作

【问题讨论】:

    标签: python python-3.x tensorflow


    【解决方案1】:

    你应该可以使用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】:

      要通过名称获取 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")
      

      【讨论】:

        猜你喜欢
        • 2016-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多