2016-10-02 20 views
14

Kerasはサイズの異なる入力画像を扱うことができますか?例えば、完全畳み込みニューラルネットワークでは、入力画像は任意のサイズを有することができる。しかし、Kerasでネットワークを作成するときは、入力形状を指定する必要があります。したがって、Kerasを使用して、入力イメージのサイズを同じサイズに変更することなく、異なる入力サイズを処理するにはどうすればよいですか?助けてくれてありがとう。Kerasはサイズの異なる入力画像を扱うことができますか?

答えて

9

同じ計算カーネルで任意のサイズの入力配列を実装すると、多くの課題が発生する可能性があります。 GPUでバッファをどれくらい予約するかを知る必要があります。これは、Kerasが一定の入力形状を必要とする主な理由であり、可変サイズの入力は扱いにくいという主な理由です。

これは、NLPで文章のような可変長シーケンスを処理する場合によく発生します。一般的なアプローチは、のサイズ(そしてより長いシーケンスを切り取る)の上限をに設定し、次にパッドこのサイズまでのゼロを持つシーケンスです。

3Dのためならば、私はよく分からない

を(あなたがまた... Kerasで畳み込み層はまだマスクされた入力をサポートしていない可能性がありますことを除いて、パディング領域の計算をスキップするゼロ値にマスキングを含めることができます)データ構造を使用する場合、パディングのオーバーヘッドは制限されません。メモリエラーが発生する場合、最も簡単な回避策は、バッチサイズを減らすことです。このトリックを画像に適用した経験を教えてください!

16

はい。 入力形状をshape =(n_channels、なし),なし)に変更してください。 ここで、n_channelsは入力画像のチャンネル数です。あなたはあなたが使用する必要があります

(なし、なし、n_channels)に変更する必要がある場合がありますtensorflow使用しているので、もし私が、しかしTheanoバックエンドを使用してい

input_shape = (1、None、None)

可変長を意味しません。一部のレイヤーで形状情報(Flattenなど)が必要なため、すべてのレイヤーが可変サイズで動作するわけではありません。例えば https://github.com/fchollet/keras/issues/1920

、あなたの入力層は次のようになりkerasの機能APIを使用して:私は、こんにちはMAZ RGBデータセットの

inp = Input(shape=(3,None,None)) 
グレーのデータセットについて

inp = Input(shape=(1,None,None)) 
+0

をまったく同じ問題を抱えています。あなたの提案によると、私はトレーニングのために異なるサイズの画像を使用することができ、同様に、私は異なるサイズの画像のセグメンテーションを予測することができます。 – user288609

+0

さまざまな画像サイズのトレーニングを試したことはありませんが、理想的には機能するはずです。しかし、予測では、私はそれを試して、それは動作します(もちろん、ymmv)。最悪のシナリオでは、同じサイズのイメージのバッチでフィードする必要があります。 – maz

関連する問題