PositionEmbedding
類別keras_nlp.layers.PositionEmbedding(
sequence_length, initializer="glorot_uniform", **kwargs
)
一個層,用於學習輸入序列的位置嵌入。
此類別假設在輸入張量中,最後一個維度對應於特徵,而倒數第二個維度對應於序列。
此層不支持遮罩,但可以與 keras.layers.Embedding
結合使用以獲得填充遮罩支持。
參數
"glorot_uniform"
。keras.layers.Layer
的其他關鍵字參數,包括 name
、trainable
、dtype
等。呼叫參數
(batch_size, sequence_length, hidden_dim)
。由於位置嵌入不依賴於輸入序列內容,因此只會使用輸入形狀。範例
直接在輸入上呼叫。
>>> layer = keras_nlp.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_nlp.layers.PositionEmbedding(
sequence_length=seq_length
)(token_embeddings)
outputs = token_embeddings + position_embeddings
參考文獻