2017-06-21 2 views
1

私はKeranoのTheanoバックエンドを使用してセグメンテーションネットワークをトレーニングしていますが、flow_from_directoryでImageDataGeneratorを使用しています。ネットワークの損失からゼロ埋め込み領域を除外 - Keras 2.0 Thenoバックエンド(セグメンテーションネットワーク)

私の画像には、サイズが自由です。 flow_from_directoryを使用するには、固定サイズ(target_size)を指定する必要がありますが、画像を読み取っている間、関数は元の画像の境界の外にある点を自動的に塗りつぶします。

現在のところ、指定したサイズを最大の画像よりも大きく設定すると、最大画像が300x400である場合、target_sizeを400x400に固定し、fill_mode = 'constant'とcval = 0を使用して、画像はゼロである。

私の問題は次のとおりです。トレーニング中に、私はこれらの詰め物が私の損失機能に全く寄与しないことを望んでいます。誰もそれをする方法を持っていますか?

+0

あなたはマスキングに魅了されましたか? –

答えて

0

Maskingお手伝いができます。

マスク値を使用してタイムステップをスキップしてシーケンスをマスクします。

入力テンソル(テンソルの次元#1)の各タイムステップで、そのタイムステップの入力テンソルのすべての値がmask_valueに等しい場合、タイムステップはすべてのダウンストリームレイヤでマスクされます(スキップされます)。彼らがマスキングをサポートしている限り)。

いずれかのダウンストリームレイヤがマスキングをサポートしていないにもかかわらず、そのような入力マスクを受信した場合、例外が発生します。

技術的には時系列のために作られていますが、画像にも微調整が必​​要です。 Hereこれを行ういくつかの試み(およびいくつかの選択肢)があります。

+0

こんにちは、答えに感謝します。私はそれをチェックしましたが、非lstm構造でマスクを使用するためのネット上での動作例はまだありません。 – CaglarAytekin

+0

マスキングがレイヤーでサポートされていない場合、Kerasはドキュメントに記載されているように例外をスローします。だから理論的にサポートしているどの層にも適用できるはずですか?私は実際にあなたが管理しているかどうかを知ることに興味があります。 – michetonu

関連する問題