KerasHub:預訓練模型 / API 文件 / 建模層 / PositionEmbedding 層

PositionEmbedding 層

[原始碼]

PositionEmbedding 類別

keras_hub.layers.PositionEmbedding(
    sequence_length, initializer="glorot_uniform", **kwargs
)

一個學習輸入序列位置嵌入的層。

此類別假設在輸入張量中,最後一個維度對應到特徵,而倒數第二個維度對應到序列。

此層不支援遮罩,但可以與 keras.layers.Embedding 結合以支援填充遮罩。

引數

  • sequence_length:動態序列的最大長度。
  • initializer:用於嵌入權重的初始化器。預設值為 "glorot_uniform"
  • seq_axis:我們在輸入張量中添加嵌入的軸。
  • **kwargs:傳遞給 keras.layers.Layer 的其他關鍵字引數,包括 nametrainabledtype 等。

呼叫引數

  • inputs:用於計算嵌入的張量輸入,形狀為 (batch_size, sequence_length, hidden_dim)。只會使用輸入形狀,因為位置嵌入不依賴於輸入序列內容。
  • start_index:一個整數或整數張量。從其計算位置嵌入的起始位置。這在快取解碼期間很有用,其中每個位置都在迴圈中單獨預測。

範例

直接在輸入上呼叫。

>>> layer = keras_hub.layers.PositionEmbedding(sequence_length=10)
>>> layer(np.zeros((8, 10, 16)))

與詞符嵌入結合。

seq_length = 50
vocab_size = 5000
embed_dim = 128
inputs = keras.Input(shape=(seq_length,))
token_embeddings = keras.layers.Embedding(
    input_dim=vocab_size, output_dim=embed_dim
)(inputs)
position_embeddings = keras_hub.layers.PositionEmbedding(
    sequence_length=seq_length
)(token_embeddings)
outputs = token_embeddings + position_embeddings

參考文獻