Keras 3 API 文档 / KerasNLP / 模型层 / TokenAndPositionEmbedding 层

TokenAndPositionEmbedding 层

[来源]

TokenAndPositionEmbedding

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

一个将词元嵌入和位置嵌入相加的层。

词元嵌入和位置嵌入是表示句子中的词语及其顺序的方式。此层创建了一个 keras.layers.Embedding 词元嵌入和一个 keras_nlp.layers.PositionEmbedding 位置嵌入,并在调用时将它们的输出相加。此层假设输入中的最后一个维度对应于序列维度。

参数

  • vocabulary_size: 词汇量大小。
  • sequence_length: 输入序列的最大长度
  • embedding_dim: 嵌入层的输出维度
  • tie_weights: 布尔值,是否让嵌入矩阵和reverse投影矩阵共享相同的权重。
  • embeddings_initializer: 用于嵌入层的初始化器
  • 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_nlp.layers.TokenAndPositionEmbedding(
    vocabulary_size=10_000,
    sequence_length=50,
    embedding_dim=128,
)
outputs = embedding_layer(inputs)