KerasHub:预训练模型 / API 文档 / 建模层 / TokenAndPositionEmbedding 层

TokenAndPositionEmbedding layer

[源代码]

TokenAndPositionEmbedding

keras_hub.layers.TokenAndPositionEmbedding(
    vocabulary_size,
    sequence_length,
    embedding_dim,
    tie_weights=True,
    embeddings_initializer="uniform",
    mask_zero=False,
    **kwargs
)

一个对 token 嵌入和位置嵌入进行求和的层。

Token 嵌入和位置嵌入是表示句子中的词语及其顺序的方法。该层在调用时会创建一个 keras.layers.Embedding token 嵌入和一个 keras_hub.layers.PositionEmbedding 位置嵌入,并对它们的输出进行求和。该层假设输入的最后一个维度对应于序列维度。

参数

  • vocabulary_size:词汇表的大小。
  • sequence_length:输入序列的最大长度。
  • embedding_dim:嵌入层的输出维度。
  • tie_weights:布尔值,用于嵌入的矩阵和用于 `reverse` 投影的矩阵是否共享相同的权重。
  • embeddings_initializer:用于 Embedding 层的初始化器。
  • mask_zero:布尔值,输入值 0 是否是应该被屏蔽掉的特殊“填充”值。这在使用可能接受可变长度输入的循环层时很有用。如果设置为 True,那么模型中所有后续层都需要支持掩码,否则会引发异常。如果 `mask_zero` 设置为 True,那么词汇表中就不能使用索引 0(input_dim 应等于词汇表大小 + 1)。
  • **kwargs: 传递给 keras.layers.Layer 的其他关键字参数,包括 nametrainabledtype 等。

示例

inputs = np.ones(shape=(1, 50), dtype="int32")
embedding_layer = keras_hub.layers.TokenAndPositionEmbedding(
    vocabulary_size=10_000,
    sequence_length=50,
    embedding_dim=128,
)
outputs = embedding_layer(inputs)