首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在keras上的变分丢弃LSTM层上使用MC Dropout?

如何在keras上的变分丢弃LSTM层上使用MC Dropout?
EN

Stack Overflow用户
提问于 2019-01-23 01:31:35
回答 1查看 1.8K关注 0票数 4

我目前正在尝试使用Keras (tensorflow后端)建立一个(LSTM)递归神经网络。我想使用带有MC dropout的变分Dropout。我相信变分丢弃已经通过LSTM层的"recurrent_dropout“选项实现了,但是我找不到任何方法来将"training”标志设置为true,就像经典的丢弃层一样。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-23 02:09:49

这在Keras中非常简单,首先需要定义一个同时接受模型输入和learning_phase的函数

import keras.backend as K
f = K.function([model.layers[0].input, K.learning_phase()],
               [model.layers[-1].output])

对于具有多个输入/输出的函数式API模型,您可以使用:

f = K.function([model.inputs, K.learning_phase()],
               [model.outputs])

然后你可以调用像f([input, 1])这样的函数,这将告诉Keras在这个调用期间启用学习阶段,执行Dropout。然后,您可以多次调用此函数,并结合预测来估计不确定性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54313582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档