2016-06-07 69 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補充說,可以使它更容易做到這一點。