現在、Keras(オートエンコーダ)を使用してCNNモデルを開発中です。このタイプの入力は、形状が(47,47,3)
、つまり3(RGB)層の47x47画像です。問題トレーニング素数入力のCNN番号
私はこれまでいくつかのCNNと仕事をしていましたが、今回は入力サイズが素数(47ピクセル)です。これは私の実装で、特にMaxPooling2D
とUpSampling2D
を使用しているときに問題が発生していると思います。 max poolingとup samplingのあとでとなったときに、いくつかの次元が失われていました。
私は私が(24, 24, 24)
の出力形状を得る(2,2)
カーネルでConv2D(24)
とMaxPoolingを通じて私(47,47,3)
入力を通過した後(つまり、24個のフィルタで、半分の形状)ことがわかりますmodel.summary()
を使用します。私は(2,2)
カーネル(ダブル形)と畳み込むにアップサンプリングすることにより、その逆をしようとすると今
は、再び私は(48,48,3)
形の出力を取得します。これは、必要以上に1行と1列です。
「いいえ問題はありません。ちょうどいいえ、サンプリングするときに希望の47ピクセルを与えるカーネルサイズを選択しました」ですが、47が素数であるとすれば、それはカーネルサイズそれを行うことができます。
入力ディメンションを非プライムに変更することを含まないこの問題を回避する方法はありますか?多分私は私のアプローチで何かを見逃しているかもしれません。あるいは、おそらくKerasは私がここで助けてくれるいくつかの機能を無視しています。
あなたが見ているものを確認します:)ありがとう – DarkCygnus
私はあなたが提案したものをチェックしていたので、各プーリングとサンプリングの前にそのモデルをモデルに含めるべきですか?私は、 'padding'パラメータは結果のサイズがプライムではないようにすべきでしょうか? – DarkCygnus
答えを更新しました。あなたが理解できないことがあるかどうか教えてください。 –