【问题标题】:Monte Carlo (MC) dropout in Keras with R使用 R 的 Keras 中的蒙特卡洛(MC)辍学
【发布时间】:2018-04-25 13:30:40
【问题描述】:

如何按照 YARIN GAL 的建议在卷积神经网络中使用 Keras 实现 Monte Carlo dropout 以估计预测不确定性?我正在使用 R.R-Code is here

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

谢谢

【问题讨论】:

  • 有人有这个的pythonic实现吗?
  • @Haramoz 你看到我的回答了吗? :)
  • 是的,我后来意识到并且已经投票了。谢谢:)

标签: r keras montecarlo convolutional-neural-network dropout


【解决方案1】:

Regular 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)

【讨论】:

    猜你喜欢
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 2020-08-25
    相关资源
    最近更新 更多