2017-08-10 96 views

回答

1

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

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

具有任意mask_value。因此,您可以根据数据决定跳过没有输入的时间步骤或其他可以考虑的条件。

对于嵌入,您在输入跳过计算中为输入= 0的数据覆盖一个掩码。这样,您可以在一个时间步骤中通过网络传播全部数据,部分数据,没有数据。这不是屏蔽时间步骤#3或类似的东西,它是输入数据#i的屏蔽。此外,只有没有输入(输入=零)可以被屏蔽。

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

+0

因此,在嵌入层中,我的序列中的时间步将被忽略,而不是在al序列上为零。例如,在每个序列时间步#3中,应该忽略比我使用的嵌入层,并且如果只是零应该被忽略,不管在哪个时间步中它们是使用掩蔽层? –

+0

如果所有输入都等于您可以指定的某个特定值,则应该忽略时间步骤,然后使用“使用蒙版”。如果零应该被忽略,(所以如果1输入零,其他的值,时间步长仍然很强),使用嵌入 – Uvar

相关问题