Machine learning keras的辍学情况如何';LSTM层?

Machine learning keras的辍学情况如何';LSTM层?,machine-learning,keras,keras-layer,Machine Learning,Keras,Keras Layer,在keras中,没有关于LSTM层如何实际实现辍学的信息 然而,有一个链接指向文件“”,这使我相信辍学是按照上述文件中所述的方式实施的 也就是说,对于层正在处理的时间序列中的每个时间步长,使用相同的漏失掩码 在我看来,在时间序列的每一个时间步中都会迭代调用一次,并在每次调用时生成一个新的退出掩码 我的问题是: 要么我曲解了keras的代码,要么keras文档中提到的文件具有误导性。是哪一个?文件和代码都是一致的。您理解正确,但对代码的解释有点错误 在初始化退出掩码之前,有一个检查,self.\u

在keras中,没有关于LSTM层如何实际实现辍学的信息

然而,有一个链接指向文件“”,这使我相信辍学是按照上述文件中所述的方式实施的

也就是说,对于层正在处理的时间序列中的每个时间步长,使用相同的漏失掩码

在我看来,在时间序列的每一个时间步中都会迭代调用一次,并在每次调用时生成一个新的退出掩码

我的问题是:


要么我曲解了keras的代码,要么keras文档中提到的文件具有误导性。是哪一个?

文件和代码都是一致的。您理解正确,但对代码的解释有点错误

在初始化退出掩码之前,有一个检查,
self.\u退出掩码为None

因此,LSTMCell.call将被迭代调用,时间序列中的每个时间步调用一次,但仅在第一次调用中生成一个新的退出掩码

if 0 < self.dropout < 1 and self._dropout_mask is None:
    self._dropout_mask = _generate_dropout_mask(
        K.ones_like(inputs),
        self.dropout,
        training=training,
        count=4)
if (0 < self.recurrent_dropout < 1 and
        self._recurrent_dropout_mask is None):
    self._recurrent_dropout_mask = _generate_dropout_mask(
        K.ones_like(states[0]),
        self.recurrent_dropout,
        training=training,
        count=4)
如果0

希望这能澄清你的疑问。

这绝对回答了我的问题。非常感谢。欢迎@PhillipJayDoe:)如果不费吹灰之力,请接受(勾选)答案并投票(如果你愿意),谢谢:)