chickadee » nanograd » l2-normalize

l2-normalize tensor #!key (axis #f) (epsilon 1e-08)procedure

L2 normalization with axis support.

axis
#f (normalize entire tensor) or integer (normalize along axis)

For 2D tensors:

  • axis=0: normalize along rows (each column becomes unit vector)
  • axis=1: normalize along columns (each row becomes unit vector)
; Normalize entire tensor
(define normalized (l2-normalize x))

; Normalize each row of a batch
(define batch (make-tensor32 (make-f32vector 200) '(10 20)))
(define row-normalized (l2-normalize batch axis: 1))  ; Each row has ||·||₂ = 1