我正在使用tensorflow在测试图像上测试训练有素的模型。我将图像输入到tensorflow中,如下所示:
image_ab, image_aba = sess.run(fetches, feed_dict={self.image_a: image_a,
self.is_train: False})
我打印了image_a
和image_ab
,发现image_a
与输入的图像顺序不同。
由于某些原因,我希望输出也与输入图像的顺序相同。
张量流通常按与给定输入相同的顺序接受输入吗?
答案 0 :(得分:0)
我假设您的意思是image_ab
的顺序不同。因为image_a
是您输入给tensorflow的输入。如果此输入的订购顺序不正确,将是您的预处理,而不是张量流。
Tensorflow通常适用于大量数据。对于图像,批次尺寸的约定为:
[batch, x, y, colors]
tensorflow执行的操作沿批处理并行化。如果仅将卷积层插入在一起,则应保留批处理的顺序。
但是,肯定可以在tensorflow中重新排序:
import numpy as np
import tensorflow as tf
x = tf.placeholder(shape=(2,1), dtype="float32")
y = tf.concat([x[1], x[0]], axis=0)
sess = tf.Session()
sess.run([x,y], feed_dict={x:np.random.rand(2,1)})
此代码将读取x,更改其输入顺序并产生y。 因此tensorflow可以对图像进行重新排序。您可以在代码中搜索类似于我的示例中的模式。