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)