Tensorflow以与输入相同的顺序接受输入

时间:2018-10-26 10:00:31

标签: tensorflow

我正在使用tensorflow在测试图像上测试训练有素的模型。我将图像输入到tensorflow中,如下所示:

image_ab, image_aba = sess.run(fetches, feed_dict={self.image_a: image_a,
                                               self.is_train: False})

我打印了image_aimage_ab,发现image_a与输入的图像顺序不同。

由于某些原因,我希望输出也与输入图像的顺序相同。

张量流通常按与给定输入相同的顺序接受输入吗?

1 个答案:

答案 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可以对图像进行重新排序。您可以在代码中搜索类似于我的示例中的模式。