如何在张量流中的占位符中接受张量列表?

时间:2018-10-08 22:38:36

标签: python tensorflow

我要执行以下操作:

out = sess.run(operation, feed_dict={x: x_value, , y: y_value})

在模型定义中的某处,我使用了它:

x = tf.placeholder(tf.float32, shape=(None, None, 3))
y = tf.placeholder(tf.float32, shape=(None, None, 3))
operation = some_function(x, y)

其中xy是图像。如何重写代码,以便可以用一个y评估多个x。我想做这样的事情:

x = tf.placeholder(tf.float32, shape=(None, None, 3))
y = []
x = []
for _y in y:
    operation = some_function(x, _y)
    z.append(operation)

现在我就这样做:

x = tf.placeholder(tf.float32, shape=(None, None, 3))
y = tf.placeholder(tf.float32, shape=(None, None, None, 3)) #add extra dimension
z = tf.unstack(tf.map_fn(some_function, y))

但是问题是当我这样做时,tf.unpack抛出一个错误,表明它不知道y的大小而失败。

此操作可以解决此问题,在该操作中,我使用图像总数初始化y的0索引。

x = tf.placeholder(tf.float32, shape=(None, None, 3))
y = tf.placeholder(tf.float32, shape=(2, None, None, 3)) #add extra dimension
z = tf.unstack(tf.map_fn(some_function, y))

然后使用以下方法评估值:

y_values = np.stack([y_value1, y_value2])
out = sess.run(operation, feed_dict={x: x_value, , y: y_values })

理想情况下,我希望此变量是变量,而不必初始化占位符的值。可以说我希望它对所有不同的y值进行加权和。每次只有1 y或5 y秒,等等。

0 个答案:

没有答案