noise_shapeの引数を使用してKeras関数Dropoutに関する質問があります。noise_shapeを使用したKerasドロップアウト
質問1:の意味は何
あなたの入力は、形状(BATCH_SIZE、タイムステップ、機能)を持っているとあなたが=(noise_shapeを使用することができ、ドロップアウトマスクは、すべてのタイムステップのために同じようにしたい場合batch_size、1、features)?と、この引数を追加することの利点は何ですか?
脱落するニューロンの数がタイムステップに沿って同じであることを意味しますか?どのタイムステップでも、n個のニューロンが落ちるでしょうか?
質問2: モデルを作成するときにnoise_shapeに 'batch_size'を含める必要がありますか? - >次の例を参照してください。
(10000,1,100,2) - >(データ数、チャネル数、タイムステップ数、フィーチャ数)の形の多変量時系列データがあるとします。
その後、私は64のバッチサイズでバッチを作成 - 私がドロップアウトしてCNNモデルを作成したい場合は、私はKeras機能APIを使用、>(64、1、100、2)
:
を層MAX1の出力形状にする必要があるためinp = Input([1, 100, 2])
conv1 = Conv2D(64, kernel_size=(11,2), strides(1,1),data_format='channels_first')(inp)
max1 = MaxPooling2D((2,1))(conv1)
max1_shape = max1._keras_shape
drop1 = Dropout((0.1, noise_shape=[**?**, max1._keras_shape[1], 1, 1]))
(なし、64、50、1)、及び私はこれに対処すべきであるか疑問
を(BATCH_SIZEに相当する)疑問符になしを割り当てることはできません?私はnoise_shapeとして(64,1,1)を使うべきですか?または、私は 'batch_size'という変数を定義し、それを(batch_size、64、1、1)のようにこの引数に渡す必要がありますか?