PIXELBANKv9.1.0
Menu

Simulate Sinusoidal Positional Encoding

Positional Encoding injects positional information into Transformer input sequences, as self-attention is inherently permutation invariant.

The sinusoidal positional encoding for token at position ii with embedding dimension DD is calculated as:

pi,k={sin⁡(i/10000k/D)if k is evencos⁡(i/10000(k−1)/D)if k is oddp_{i,k} = \begin{cases} \sin(i / 10000^{k/D}) & \text{if } k \text{ is even} \\ \cos(i / 10000^{(k-1)/D}) & \text{if } k \text{ is odd} \end{cases}

Task: Implement a function that generates the positional encoding vector pp of length DD for a token at sequence index ii.

Example:

Input:
i=0, D=4
Output:
[0.0000, 1.0000, 0.0000, 1.0000]
Reasoning:

At position 0: sin(0)=0, cos(0)=1. For all dimensions, the pattern alternates between sin(0)=0 and cos(0)=1.

Constraints:

  • 0≤i<10000 \leq i < 1000
  • DD is an even integer: 2≤D≤5122 \leq D \leq 512
solution.py

Test Results

0/0
Run code to see test results.