Keras:如何在训练和测试阶段使用 dropout?
Keras: how to use dropout at train and test phase?
是否可以在 Keras 的训练和测试阶段使用 dropout?
就像这里描述的那样:
https://github.com/soumith/ganhacks#17-use-dropouts-in-g-in-both-train-and-test-phase
当然,您可以在调用 Dropout
层时将training
参数设置为True
。这样,在训练和测试阶段都会应用dropout:
drp_output = Dropout(rate)(inputs, training=True) # dropout would be active in train and test phases
两个答案都让我有点困惑。更简单地说,您可能会发现自己在做这样的事情:
model = Model(...)
...
model.add(Dropout(0.5))
...
model.fit(...) # invokes Dropout(training=True)
...
model.evaluate(...) # invokes Dropout(training=False)
也就是说,当您定义模型时,您可以添加 Dropout
层,并在训练期间使用您想要的丢失率。测试和训练之间的比率没有明显差异;相反,它被声明为一个固定值,然后(不可见地)根据调用层的 training
参数切换 on/off 。参见 keras.Model。
是否可以在 Keras 的训练和测试阶段使用 dropout?
就像这里描述的那样: https://github.com/soumith/ganhacks#17-use-dropouts-in-g-in-both-train-and-test-phase
当然,您可以在调用 Dropout
层时将training
参数设置为True
。这样,在训练和测试阶段都会应用dropout:
drp_output = Dropout(rate)(inputs, training=True) # dropout would be active in train and test phases
两个答案都让我有点困惑。更简单地说,您可能会发现自己在做这样的事情:
model = Model(...)
...
model.add(Dropout(0.5))
...
model.fit(...) # invokes Dropout(training=True)
...
model.evaluate(...) # invokes Dropout(training=False)
也就是说,当您定义模型时,您可以添加 Dropout
层,并在训练期间使用您想要的丢失率。测试和训练之间的比率没有明显差异;相反,它被声明为一个固定值,然后(不可见地)根据调用层的 training
参数切换 on/off 。参见 keras.Model。