Sinusoidal Positional Encoding

easy
Unit 2 · Transformers0/2 to milestone

Attention on its own has no sense of word order. The original Transformer (Attention Is All You Need) fixes this by adding a positional encoding to each token embedding:

PE(pos, 2i)=sin⁡(posbase2i/d),PE(pos, 2i+1)=cos⁡(posbase2i/d)PE_{(pos,\,2i)} = \sin\left(\frac{pos}{\text{base}^{2i/d}}\right), \qquad PE_{(pos,\,2i+1)} = \cos\left(\frac{pos}{\text{base}^{2i/d}}\right)

Implement positional_encoding(seq_len, d_model, base=10000.0) returning an array of shape (seq_len, d_model). Even columns use sine and odd columns use cosine, and each sine/cosine pair shares a frequency. d_model is always even. Vectorise it, with no Python loops.

#transformers#embeddings#numpy2 visible + 2 hidden tests
solution.py · Python 3.13
Loading editor…
Run your code to see results. ⌘↵ to run · ⌘⇧↵ to submit
Sinusoidal Positional Encoding · TechGradify