蒙特卡洛辍学率没有任何变化

时间:2019-12-06 07:32:59

标签: machine-learning scikit-learn neural-network

我曾经尝试过正常的辍学,它总是能提供更好的结果 所以这次我想尝试蒙特卡洛方法,看看它是如何工作的,但是它丝毫没有改变任何东西。一切似乎都像以前一样。这是我的代码:

with keras.backend.learning_phase_scope(1):
    ypr=np.stack([model.predict(xscale)
                              for sample in range(100)])
y=ypr.mean(axis=0)

我想念什么吗? 谢谢

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。一种替代方法是对Dropout层进行子类化,并覆盖call()方法以将其训练参数强制为True:

class MonteCarloDropout(Dropout):
    def call(self, inputs):
        return super().call(inputs, training=True)

用MonteCarloDropout图层替换模型中的Dropout图层,它将按预期工作。