RotaryEmbedding
类keras_hub.layers.RotaryEmbedding(
max_wavelength=10000, scaling_factor=1.0, sequence_axis=1, feature_axis=-1, **kwargs
)
旋转位置编码层。
此层使用旋转矩阵编码绝对位置信息。它使用几何级数增加波长的正弦和余弦函数混合计算旋转编码。定义和公式化在 RoFormer: Enhanced Transformer with Rotary Position Embedding 中。输入必须是具有序列维度和特征维度形状的张量。通常,这将是形状为 (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)
参考文献