私のネットワークにFPNを適用します。ここで私はコンバレイヤの後に48 * 27レイヤを持っていますが、それは24 * 14になりますが、デコンボリューションレイヤの後、48 * 28、48 * 27と同じになりません。したがって、これらのレイヤーはadd/mul演算を実行できませんでした。デボリューションのレイヤーが元のレイヤーと一致しません
この問題を解決するにはどうすればよいですか?私はTensorFlowと 'SAME'パディング方法を使用しています。
私のネットワークにFPNを適用します。ここで私はコンバレイヤの後に48 * 27レイヤを持っていますが、それは24 * 14になりますが、デコンボリューションレイヤの後、48 * 28、48 * 27と同じになりません。したがって、これらのレイヤーはadd/mul演算を実行できませんでした。デボリューションのレイヤーが元のレイヤーと一致しません
この問題を解決するにはどうすればよいですか?私はTensorFlowと 'SAME'パディング方法を使用しています。
問題が「SAME」パディング及び2のストライドを持つ畳み込みは以下のすべての入力形状に対して24 * 14の出力形状を有することがある。
48 * 27、* 28 48、47 * 27と47 * 28
したがってtf.layers.conv2d_transpose
自体が正しい出力形状を知ることができない、それは次元のそれぞれを2倍に対称場合に行く:* 14 24 - あなたがしたい場合は> 48 * 28
異なる出力形状を使用することができます。lower level deconvolution:tf.nn.conv2d_transpose
これを使用すると、出力の形状を指定できます。
また、入力シェイプが常にストライドの倍数になるようにネットワーク全体を調整することもできます。デコンボリューションは常に正しい出力形状を予測します。