RotaryEmbedding
类keras_hub.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)
参考文献