代码之家  ›  专栏  ›  技术社区  ›  Mimi Müller

keras layers Masking()和嵌入(mask\u zero=True)之间有区别吗?

  •  5
  • Mimi Müller  · 技术社区  · 9 年前

    嵌入层的文档如下:

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

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

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

    1 回复  |  直到 9 年前
        1
  •  1
  •   Uvar    9 年前

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

    如果该时间步长的输入张量中的所有值都等于mask_值,则该时间步长将在所有下游层中被屏蔽(跳过)

    具有任意mask_值。因此,您可以根据您的数据决定跳过没有输入的时间步长,或您可以想到的其他条件。

    对于嵌入,您可以在输入上覆盖一个掩码,跳过输入为0的数据的计算。这样,您可以在单个时间步长内通过网络传播完整数据(部分数据),而不传播任何数据。这不是时间步长#3或类似的掩蔽,而是输入数据#i的掩蔽。此外,只有没有输入(输入=零)可以被屏蔽。

    推荐文章