我要执行以下操作:
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)
其中x
和y
是图像。如何重写代码,以便可以用一个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
秒,等等。