SinePositionEncoding
类keras_nlp.layers.SinePositionEncoding(max_wavelength=10000, **kwargs)
正弦位置编码层。
此层计算位置编码,作为具有几何递增波长的正弦和余弦函数的混合。在 Attention is All You Need 中定义和公式化。
以嵌入的标记张量作为输入。输入必须具有形状 [batch_size, sequence_length, feature_size]。此层将返回与嵌入的标记张量大小相同的位
参数
10000
。keras.layers.Layer
的其他关键字参数,包括 name
、trainable
、dtype
等。调用参数
(batch_size, sequence_length, hidden_dim)
。示例
# create a simple embedding layer with sinusoidal positional encoding
seq_len = 100
vocab_size = 1000
embedding_dim = 32
inputs = keras.Input((seq_len,), dtype="float32")
embedding = keras.layers.Embedding(
input_dim=vocab_size, output_dim=embedding_dim
)(inputs)
positional_encoding = keras_nlp.layers.SinePositionEncoding()(embedding)
outputs = embedding + positional_encoding
参考文献