变压器教程中的tensorflow keras遮罩

时间:2020-08-03 14:59:09

标签: tensorflow keras

此转换器教程https://www.tensorflow.org/tutorials/text/transformer中的遮罩用法似乎与喀拉拉邦正常使用遮罩的方式不一致。

它以这种方式创建掩码:“掩码指示存在填充值0的位置:它在那些位置输出1,否则输出0。”也就是说,当值= 0时,掩码= 1。

在关于遮罩https://keras.io/guides/understanding_masking_and_padding/的这个keras文档中,它说:“每个单独的False条目都表示在处理过程中应忽略相应的时间步长。”也就是说,当value = 0时,mask =0。这与变压器教程的说法相反。

我想确认一下转换器教程是否有效。

我的理解是:

  1. 默认情况下,在创建tf.keras.layers.Embedding时mask_zero = False,因此嵌入层不会自行创建遮罩。
  2. 在转换器教程中明确创建的遮罩将向下传递到诸如MultiHeadAttention的层,这些层可以了解遮罩的创建方式。

所以变压器教程有效。我说的对吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

来自评论

是的,在转换器中创建的遮罩称为Attention_mask&are 用于进行预测。变压器中的注意口罩是任务 具体也是如此。而且,它们根据变压器的类型而变化 使用的模型(由Aditya Mishra解释)