如何按照 YARIN GAL 的建议在卷积神经网络中使用 Keras 实现 Monte Carlo dropout 以估计预测不确定性?我正在使用 R。R -Code 在这里
我正在小批量拟合模型,并希望使用 Monte Carlo dropout 小批量评估模型。在 Keras 文档中找不到任何提示。顺便说一句,我使用 flag training=TRUE 训练了我的模型。
谢谢
如何按照 YARIN GAL 的建议在卷积神经网络中使用 Keras 实现 Monte Carlo dropout 以估计预测不确定性?我正在使用 R。R -Code 在这里
我正在小批量拟合模型,并希望使用 Monte Carlo dropout 小批量评估模型。在 Keras 文档中找不到任何提示。顺便说一句,我使用 flag training=TRUE 训练了我的模型。
谢谢
常规 dropout 仅在训练时随机丢弃神经元,而不是在测试时,因此这是Dropout
该类的默认行为。如果您想要 MC dropout,您也需要training=TRUE
在测试时使用,并且您必须多次运行前向传递:这将为您提供预测分布,您可以随意使用它,例如计算平均值。
我对 R 不够熟悉,所以这是我使用的类而不是标准Dropout
类:
class MCDropout(keras.layers.Dropout):
def call(self, inputs, training=None):
return super(MCDropout, self).call(inputs, training=True)