2017-02-15 86 views
0

我使用卷積層後續反褶積層像這樣:卷積去卷積對給出了略有不同的維度

tf.nn.conv2d(num_outputs=1, kernel_size=[21, 11], stride=[2, 2], padding="SAME", rate=1) 

tf.nn.conv2d_transpose(num_outputs=1, kernel_size=[21, 11], stride=[2, 2], padding="SAME") 

我的想法是讓初始圖像小,那麼它帶來的原始大小解卷積。我實際上使用tf.slim函數,但參數是上面的那些。

當我看的輸入和輸出,我有一個小的差異:

Input shape : (16, 161, 511, 1) 
Output shape: (16, 162, 512, 1) 

我認爲這可能是由於我的步幅大小或內核的大小。我試過多個值,但似乎沒有重現原始尺寸。

+0

當將圖像備份時,您必須使用整數倍數,因此您無法準確選擇輸出圖像大小。 – drpng

+0

解決這個問題的唯一方法就是將輸出裁剪爲輸入大小,沒有太大的損失,但我希望有其他方法。 – Qubix

回答

0

一種流行的方法是填充輸入圖像,使得卷積和反捲積之後的輸出與填充後的輸入具有相同的大小。然後裁剪輸出以適應沒有填充的原始輸入。