【发布时间】:2018-01-18 19:22:46
【问题描述】:
嵌入层的文档在这里:
https://keras.io/layers/embeddings/
遮罩层的文档在这里:
https://keras.io/layers/recurrent/
我在那里找不到区别。在某些情况下是否应该首选其中一层?
【问题讨论】:
标签: python tensorflow keras masking keras-layer
嵌入层的文档在这里:
https://keras.io/layers/embeddings/
遮罩层的文档在这里:
https://keras.io/layers/recurrent/
我在那里找不到区别。在某些情况下是否应该首选其中一层?
【问题讨论】:
标签: python tensorflow keras masking keras-layer
我觉得 Masking() 更像是对时间步长的掩蔽;而 Embedding(mask_zero=True) 更像是一个数据过滤器。 掩蔽:
如果输入张量在该时间步的所有值都等于 mask_value,则该时间步将在所有下游层中被屏蔽(跳过)
使用任意 mask_value。因此,您可以根据您的数据决定跳过没有输入的时间步长或您能想到的其他条件。
对于嵌入,您可以在输入上覆盖一个掩码,从而跳过输入 = 0 的数据的计算。这样,您可以在一个时间步内通过网络传播完整数据、部分数据或无数据。这不是时间步#3 或类似的屏蔽,它是输入数据#i 的屏蔽。此外,只有没有输入(输入=零)可以被屏蔽。
因此,我当然可以想到两者完全相等的情况(当输入 = 0 时,所有输入都为 0 就是这种情况),但它们的使用是在另一个分辨率上。
【讨论】: