5

我有一个非常基本的查询。我制作了 4 个几乎相同(不同是输入形状)的 CNN,并在连接到完全连接层的前馈网络时将它们合并。

几乎相同的 CNN 的代码:

model3 = Sequential()
model3.add(Convolution2D(32, (3, 3), activation='relu', padding='same', 
                                     input_shape=(batch_size[3], seq_len, channels)))
model3.add(MaxPooling2D(pool_size=(2, 2)))
model3.add(Dropout(0.1))
model3.add(Convolution2D(64, (3, 3), activation='relu', padding='same'))
model3.add(MaxPooling2D(pool_size=(2, 2)))
model3.add(Flatten())

但是在张量板上,我看到所有的 Dropout 层都是相互连接的,并且 Dropout1 的颜色与 Dropout2、3、4 等颜色不同,它们都是相同的颜色。在此处输入图像描述

4

1 回答 1

5

我知道这是一个老问题,但我自己也有同样的问题,现在我才意识到发生了什么

只有在我们训练模型时才会应用 Dropout。这应该在我们评估/预测时停用。为此,keras 创建了一个learning_phase占位符,设置为1.0如果我们正在训练模型。此占位符在您创建的第一Dropout层内创建,并在所有层之间共享。所以这就是你在那里看到的!

于 2018-04-10T15:32:31.710 回答