【问题标题】:tensorflow keras mask in transformer tutorial变压器教程中的 tensorflow keras 掩码
【发布时间】:2020-08-03 14:59:09
【问题描述】:

这个transformer教程https://www.tensorflow.org/tutorials/text/transformer中mask的使用好像和keras中正常使用mask的方式不一致。

它以这种方式创建掩码:“掩码指示填充值 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,因此 Embedding 层不会自行创建蒙版。
  2. transformer 教程中显式创建的遮罩被传递到 MultiHeadAttention 等层,这些层了解遮罩的创建方式。

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

谢谢。

【问题讨论】:

  • 是的,在转换器中创建的掩码称为attention_mask & 用于进行预测。 Transformer 中的注意力掩码也是特定于任务的。此外,它们因使用的变压器模型类型而异。

标签: tensorflow keras


【解决方案1】:

来自评论

是的,在转换器中创建的掩码称为 attention_mask 并且是 用于进行预测。变压器中的注意力面具是任务 也具体。此外,它们根据变压器的类型而有所不同 使用的模型(转述自 Aditya Mishra)

【讨论】:

    猜你喜欢
    • 2019-09-05
    • 2023-02-10
    • 1970-01-01
    • 2017-03-19
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    相关资源
    最近更新 更多