我正在尝试实现一个LSTM神经网络,它基于yaringal和zoubinghahramani的论文https://arxiv.org/pdf/1512.05287.pdf中定义的变分RNN架构,使用Python中的Tensorflow后端Keras实现。在
其基本思想是在每个时间步应用相同的dropout mask,在输入/输出连接和循环连接上都应用,如下图所示:
阅读Keras文档,我发现我们可以使用参数dropout
和{
然后,我还看到我们可以在LSTM单元之后创建一个Dropout层,并且使用noise_shape
参数,我们可以强制该层在每次应用相同的Dropout掩码。我通过设置noise_shape=(K.shape(x)[0], 1, K.shape(x)[2])
来完成这项工作。我的第二个问题是:
综上所述,我觉得第一种方法可以对循环连接应用dropout,但不能在每个时间步应用相同的dropout掩码,而第二种方法则相反。我错了吗?在
目前没有回答
相关问题 更多 >
编程相关推荐