mlx.nn.SinusoidalPositionalEncoding#

class SinusoidalPositionalEncoding(dims: int, min_freq: float = 0.0001, max_freq: float = 1, scale: float | None = None, cos_first: bool = False, full_turns: bool = False)#

Implements sinusoidal positional encoding.

For more details see the paper Attention Is All You Need.

Parameters:
  • dims (int) – The dimensionality of the resulting positional embeddings.

  • min_freq (float, optional) – The minimum frequency expected. Default: 0.0001.

  • max_freq (float, optional) – The maximum frequency expected. Default: 1.

  • scale (float, optional) – A multiplicative scale for the embeddings. Default: sqrt(dims//2).

  • cos_first (bool, optional) – If True embed using [cos(x); sin(x)] instead of the reverse. Default: False.

  • full_turns (bool, optional) – If True multiply the frequencies with \(2\pi\). Default: False.

Methods