SinePositionEncoding
類別keras_hub.layers.SinePositionEncoding(max_wavelength=10000, **kwargs)
正弦波位置編碼層。
此層計算位置編碼的方式是混合正弦和餘弦函數,這些函數的波長以幾何級數增加。定義和公式化於 Attention is All You Need。
輸入為嵌入的 token 張量。輸入必須具有 [batch_size, sequence_length, feature_size] 的形狀。此層將返回與嵌入的 token 張量大小相同的位置編碼,可以直接添加到嵌入的 token 張量中。
引數
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_hub.layers.SinePositionEncoding()(embedding)
outputs = embedding + positional_encoding
參考文獻