【问题标题】:PyTorch transformer argument "dim_feedforward"PyTorch 变压器参数“dim_feedforward”
【发布时间】:2022-03-19 10:42:55
【问题描述】:

我想了解这个论点到底是怎么回事。

  1. 我读过变压器层内的前馈子层是“逐点”前馈层。在这种情况下,“pointwise”是什么意思?

  2. 前馈层采用 2 个参数:输入特征和输出特征。 这个参数不能是输出特征,因为无论我使用什么值,转换器层的输出总是具有相同的形状。它也不能是输入特征,因为它是由自注意力子层确定的。

  3. 最重要的是——注意力的张量大小的论据在哪里?将输入转换为查询、键和值的那些?

【问题讨论】:

    标签: deep-learning pytorch


    【解决方案1】:
    1. “Position-wise”或“Point-wise”是指前馈网络 (FFN) 采用序列的每个位置,例如,句子的每个单词,作为其输入。所以point-wise FFN是一个共享的FFN,每个单词一个一个地输入。
    2. (和 3.)没错。它既不是输入特征(由自注意力子层确定)也不是输出特征(与输入特征相同的值)。 实际上是隐藏特征。问题是,transformer encoder 中的这个特殊的 FFN 有两个线性层,根据implementation of TransformerEncoderLayer
        # Implementation of Feedforward model
        self.linear1 = Linear(d_model, dim_feedforward, **factory_kwargs)
        self.dropout = Dropout(dropout)
        self.linear2 = Linear(dim_feedforward, d_model, **factory_kwargs)
    

    所以dim_feedforward 是功能编号。 FFN的隐藏层。通常,其值设置为比d_model(默认为2048)大几倍。

    【讨论】:

      猜你喜欢
      • 2019-04-29
      • 2020-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      • 2020-08-06
      • 2019-07-06
      • 2015-05-03
      相关资源
      最近更新 更多