如何提供本地占位符?

How to feed a local placeholder?

我想提供在函数中定义的占位符。以下是一个简化的例子。

#!/usr/bin/python

import tensorflow as tf

def CreateInference():
    x2 = tf.placeholder(tf.float32, (None))
    w2 = tf.get_variable('w2', initializer=1.0)
    b2 = tf.get_variable('b2', initializer=2.0)
    y2 = w2 * x2 + b2

y2 = CreateInference()

writer = tf.summary.FileWriter('./graphs', tf.get_default_graph())
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
#    print (sess.run(y2, feed_dict={x2:2.0}))

writer.close()

图表已正确创建,如下面的 Tensorboard 图表所示。

问题是 feed_dict={x2:2.0} 不起作用,因为 x2 是函数 CreateInference 中使用的局部变量。谁能告诉我如何访问和提供上面示例中变量 x2 的值?

为什么不对对象进行明显的 return 引用

#!/usr/bin/python

import tensorflow as tf

def CreateInference():
    x2 = tf.placeholder(tf.float32, (None))
    w2 = tf.get_variable('w2', initializer=1.0)
    b2 = tf.get_variable('b2', initializer=2.0)
    y2 = w2 * x2 + b2
    return x2, y2

x2, y2 = CreateInference()

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print (sess.run(y2, feed_dict={x2:2.0}))