tf.layers.conv2d_transposeデコンボリューション出力サイズの計算



Tf Layers Conv2d_transpose Deconvolution Output Size Calculation



便宜上、入力テンソルは引き続きxに設定され、サイズは64 * 7 * 7 * 256です。

x = tf.ones(shape=[64, 7, 7, 256])

最初に、パディングが同じ場合の3つのケースをテストします:畳み込みカーネル側の長さ= 5、ステップ長= 3、畳み込みカーネル側の長さ= 5、ステップ長= 2、畳み込みカーネル側の長さ= 4、ステップ長= 2。それらの出力は次のとおりです





畳み込みカーネル側の長さ= 5、ステップ長= 3:出力サイズは7 * 3 = 21

畳み込みカーネル側の長さ= 5、ステップ長= 2:出力サイズは7 * 2 = 14



畳み込みカーネル側の長さ= 4、ステップ長= 2:出力サイズは7 * 2 = 14

パディングが同じ場合、デコンボリューション出力サイズ=入力サイズ*コンボリューションステップサイズであることがわかります。

次に、パディングが有効である場合をテストします。畳み込みカーネル側の長さとステップ長の2つの変数は、上記の3つのケースを引き続き使用し、出力は次のようになります。

出力サイズは、関係6を満たす必要があります<(y-convolution kernel side length + 1) / step size <= 7, with specific values, the value range of the output size can be calculated, and then the middle value of the end point of the value range rounded down , As the output size.

畳み込みカーネル側の長さ= 5、ステップの長さ= 3:yの値の範囲は(22、25]、中央の値は23です。

畳み込みカーネル側の長さ= 5、ステップ長= 2:yの値の範囲は(16、18]、中央の値は17です。

畳み込みカーネル側の長さ= 4、ステップ長= 2 :: yの値の範囲は(15、17]で、中央の値は16です。