编程语言
首页 > 编程语言> > python – keras层Masking()和Embedding(mask_zero = True)之间是否有区别?

python – keras层Masking()和Embedding(mask_zero = True)之间是否有区别?

作者:互联网

嵌入层的文档在这里:

https://keras.io/layers/embeddings/

并且Masking层的文档在这里:

https://keras.io/layers/recurrent/

我在那里找不到区别.在某些情况下,是否应该优先选择其中一层?

解决方法:

我觉得Masking()更能掩盖时间步骤;而嵌入(mask_zero = True)更像是一个数据过滤器.
掩蔽:

If all values in the input tensor at that timestep are equal to mask_value, then the timestep will be masked (skipped) in all downstream layers

使用任意mask_value.因此,您可以根据数据决定跳过没有输入的时间步或者您可以想到的其他条件.

对于嵌入,您在输入跳过计算上覆盖一个掩码,用于输入= 0的数据.这样,您可以在单个时间步骤中传播完整数据(部分数据),无数据通过网络传播.这不是时间步骤#3或类似的屏蔽,它是输入数据#i的屏蔽.此外,只有没有输入(输入= 0)才能被屏蔽.

因此,我确实可以想到两者完全相等的情况(当输入= 0时,对于所有输入都为0),但是它们的使用是在另一种分辨率上.

标签:python,tensorflow,keras,keras-layer,masking
来源: https://codeday.me/bug/20190705/1390699.html