Bendtorch.adam_grad: def of bendtorch@1.3.0.0 Import: import bendtorch@1.3.0.0/main.bend as Bendtorch Lines 256-264 of bendtorch@1.3.0.0/main.bend: https://jend.leeeet.dev/read.txt?path=bendtorch@1.3.0.0/main.bend&start_line=256&end_line=264 import Base # the Adam family, in PyTorch's order of operations (torch.optim.adam._single_tensor_adam): # g' = g + wd*w (Adam) or w' = w*(1 - lr*wd) (AdamW); m = m + (1-b1)*(g' - m) (lerp); v = v*b2 + (1-b2)*g'*g'; # w = w' + (-step*m) / (sqrt(v)/bc2 + eps) def adam_grad(dec: Bool, +wd: F32, +w: F32, +g: F32) -> F32: match dec: case True{}: g case False{}: (g + (w * wd : F32) : F32) Uses (4): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=F32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=F32.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=F32.mul