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
参考