RotaryEmbedding
類別keras_nlp.layers.RotaryEmbedding(
max_wavelength=10000, scaling_factor=1.0, sequence_axis=1, feature_axis=-1, **kwargs
)
旋轉位置編碼層。
此層使用旋轉矩陣對絕對位置資訊進行編碼。它使用正弦和餘弦函數的混合計算旋轉編碼,這些函數具有幾何遞增的波長。在 RoFormer:增強型旋轉位置嵌入的 Transformer 中定義和制定。輸入必須是一個具有序列維度和特徵維度的張量。通常,這將是形狀為 (batch_size, sequence_length, feature_length)
或 (batch_size, sequence_length, num_heads, feature_length)
的輸入。此層將返回一個新的張量,其中應用了旋轉嵌入到輸入張量。
參數
keras.layers.Layer
的其他關鍵字參數,包括 name
、trainable
、dtype
等。呼叫參數
inputs
並返回。範例
batch_size = 16
feature_length = 18
sequence_length = 256
num_heads = 8
# No multi-head dimension.
tensor = np.ones((batch_size, sequence_length, feature_length))
rot_emb_layer = RotaryEmbedding()
tensor_rot = rot_emb_layer(tensor)
# With multi-head dimension.
tensor = np.ones((batch_size, sequence_length, num_heads, feature_length))
tensor_rot = rot_emb_layer(tensor)
參考