2016-06-07 65 views
5

我目前在张量流中实现FCN,以启用可变输入图像大小。Tensorflow单个批次内的可变图像大小

我真的有各种图像尺寸的图像,但遗憾的是我没能开始批量大小比1

不同。我正在使用一个下列方式进字典的训练:

feed_dict = {fcn.images: image_batch, 
      fcn.labels: labels_batch, 
      fcn.dropout_keep: dropout} 
result = sess.run(list(tf_ops), feed_dict=feed_dict) 

我已经尝试:

  1. 创建image_batchlabels_batch作为numpy的阵列,然而,这并不因为numpy的阵列,而没有支承实t可以改变某些尺寸。
  2. 创建image_batchlabels_batch作为numpy数组列表。这里似乎tensorflow正试图呼叫numpy.array(image_batch)
  3. tf.pack()去,这可惜不支持不同的图像大小,以及

我的问题是: 有没有办法如何解决这个问题呢?

非常感谢您的任何建议和意见。

+1

无法拥有不同的输入尺寸。 TensorFlow **不能**在一批不同大小的输入上应用标准操作(卷积,完全连接的层......)(因为它不能是一个数组并且必须是一个列表)。 –

+2

您必须在批处理之前将所有图像填充或调整为相同尺寸。 –

+0

感谢您的评论。我想在我的情况下,当我进行语义分割时,只有将图像裁剪为较小的图像才有意义。 – ziky90

回答

1

因此,我们可以关闭这个 - 引用上述奥利维尔Moindrot:

你必须垫或配料之前调整所有的图像大小相同。

请注意,奥利维尔的回答后,有一个新的tf.image.decode_and_crop_jpeg op补充说,可以使它更容易做到这一点。