gpt4 book ai didi

python - 使用keras dropout层后如何知道哪个节点被删除

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:29 25 4
gpt4 key购买 nike

来自nick blog很明显,在 CNN 模型的 dropout 层中,我们在伯努利的基础上丢弃了一些节点。但是如何验证它,即如何检查哪个节点没有被选中。在 DropConnect 中,我们留下了一些权重,因此我认为在 model.get_weights() 的帮助下我们可以验证,但是在 Dropout 层的情况下如何验证。

model = Sequential()
model.add(Conv2D(2, kernel_size=(3, 3),
activation='relu',
input_shape=input_shape))
model.add(Conv2D(4, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(8, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))
model.compile(loss=keras.losses.binary_crossentropy,
optimizer=keras.optimizers.Adadelta(),
metrics=['accuracy'])

另一个问题是 keras 中提到了它辍学率应该在黑白 0 到 1 之间 float 。但是对于上述模型,当我采用辍学率 = 1.25 时,那么我的模型也可以工作,这是怎么发生的?

最佳答案

关于你的第二个问题,如果你看到 Keras code ,在 call 方法中形成 Dropout 类:

def call(self, inputs, training=None):
if 0. < self.rate < 1.:
noise_shape = self._get_noise_shape(inputs)

def dropped_inputs():
return K.dropout(inputs, self.rate, noise_shape,
seed=self.seed)
return K.in_train_phase(dropped_inputs, inputs,
training=training)
return inputs

这意味着如果rate不在0和1之间,它将不会执行任何操作。

关于python - 使用keras dropout层后如何知道哪个节点被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49630178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com