Monte Carlo (MC) 在 Keras 中使用 R 退出

问题描述 投票:0回答:2

如何按照 YARIN GAL 的建议在卷积神经网络中使用 Keras 实现蒙特卡罗 dropout 来估计预测不确定性?我正在使用 R。R-Code is here

我正在小批量拟合模型,并希望使用 Monte Carlo dropout 来评估小批量模型。在 Keras 文档中找不到任何提示。顺便说一句,我使用标志 Training=TRUE 训练了我的模型。

谢谢

r keras montecarlo conv-neural-network dropout
2个回答
5
投票

常规 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)

0
投票

答案是Python,问题是关于R代码。

© www.soinside.com 2019 - 2024. All rights reserved.