問題タブ [max-pooling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 複数の keras 最大プーリング レイヤーをマージする
私はケラスが初めてです。
私の目標は、合計 4 つの最大プーリング レイヤーを持つことです。それらはすべて形状 (N, 256) で同じ入力を取ります。最初のレイヤーは、グローバルな最大プーリングを行い、1 つの出力を提供します。N / 2 のプーリング サイズと N / 2 のストライドを持つ 2 番目のレイヤーは、2 つの出力を提供します。3 番目は 4 つの出力を提供し、4 番目は 8 つの出力を提供します。これが私のコードです。
4 つの最大プーリング レイヤーを作成した後、それらをマージしようとしましたが、keras でこのエラーが発生します。
ValueError: 両方の形状の次元 1 は等しくなければなりませんが、入力形状 [?,1,1,1]、[?,2,1、 1]、[?,4,1,1]、[?,8,1,1]、[] および計算された入力テンソル: input[4] = <3>。
この問題を解決するにはどうすればよいですか? ケラスで私の目標を達成するための正しい方法をマージしていますか?
deep-learning - CNN でのチャネルの最大プーリング
CNN ネットワークのチャンネル数を減らす必要があります。入力は 4D オブジェクト (サンプル、行、列、チャンネル) です。チャネル数は 3 で、トレーニング用の出力にはチャネルが 1 つしかありません。とにかく、トレーニング中にチャネル方向に一種の最大プーリングを行うことはありますか?
前もって感謝します
python - 素数の入力次元を使用したトレーニング CNN の問題
現在、Keras (オートエンコーダー) を使用して CNN モデルを開発しています。このタイプの入力は shape(47,47,3)
です。つまり、3 (RGB) レイヤーの 47x47 画像です。
過去にいくつかの CNN を使用したことがありますが、今回の入力次元は素数 (47 ピクセル) です。MaxPooling2D
これは、特にモデルを使用している場合に、実装に問題を引き起こしていると思いますUpSampling2D
。max pooling してから up sampling すると、いくつかの次元が失われることに気付きました。
を使用すると、入力を aおよび MaxPooling にカーネルmodel.summary()
で渡した後(つまり、24 個のフィルターと形状の半分) の出力形状が得られることがわかります。(47,47,3)
Conv2D(24)
(2,2)
(24, 24, 24)
ここで、カーネルを使用して UpSampling (2,2)
(形状を 2 倍にする) し、再度畳み込むことによってそれを逆にしようとすると、(48,48,3)
整形された出力が得られます。これは、必要以上に 1 行と 1 列余分です。
これに対して、「問題ありません。アップサンプリング時に目的の 47 ピクセルが得られるカーネル サイズを選択してください」と考えましたが、47 が素数であることを考えると、それを実行できるカーネル サイズはないように思えます。
入力次元を非素数に変更することを伴わないこの問題を回避する方法はありますか? たぶん、私のアプローチに何かが欠けているか、Keras には無視できる機能があり、ここで役立つ可能性があります。