我曾经尝试过正常的辍学,它总是能提供更好的结果 所以这次我想尝试蒙特卡洛方法,看看它是如何工作的,但是它丝毫没有改变任何东西。一切似乎都像以前一样。这是我的代码:
with keras.backend.learning_phase_scope(1):
ypr=np.stack([model.predict(xscale)
for sample in range(100)])
y=ypr.mean(axis=0)
我想念什么吗? 谢谢
答案 0 :(得分:1)
我遇到了同样的问题。一种替代方法是对Dropout层进行子类化,并覆盖call()方法以将其训练参数强制为True:
class MonteCarloDropout(Dropout):
def call(self, inputs):
return super().call(inputs, training=True)
用MonteCarloDropout图层替换模型中的Dropout图层,它将按预期工作。