1

是否可以在 Keras 的训练和测试阶段使用 dropout?

就像这里描述的: https ://github.com/soumith/ganhacks#17-use-dropouts-in-g-in-both-train-and-test-phase

4

2 回答 2

2

当然,您可以在调用图层时设置training参数。这样,dropout 将应用于训练和测试阶段:TrueDropout

drp_output = Dropout(rate)(inputs, training=True)  # dropout would be active in train and test phases
于 2019-04-16T18:56:02.007 回答
0

两个答案都让我有点困惑。更简单地说,你可能会发现自己在做这样的事情:

model = Model(...)
...
model.add(Dropout(0.5))
...
model.fit(...)        # invokes Dropout(training=True)
...
model.evaluate(...)   # invokes Dropout(training=False)

也就是说,当您定义模型时,您可以Dropout在训练期间添加具有所需辍学率的层。测试和培训之间的比率没有明显变化;相反,它被声明为一个固定值,然后(不可见地)根据training调用层的参数打开/关闭。请参阅keras.Model

于 2020-04-23T23:20:36.953 回答