def descend

bendtorch-core@0.1.0.0 · src/autograd/sgd.bend:109

import bendtorch-core@0.1.0.0/src/autograd/sgd.bend as Sgd
import Base
import bendtorch-core@0.1.0.0/src/tensor/elementwise.bend as Elementwise
import bendtorch-core@0.1.0.0/src/autograd/gradient.bend as Gradient
import bendtorch-core@0.1.0.0/src/autograd/tensor_backward.bend as Backward

109# One parameter: p - lr * g, cell by cell, when its slot holds g; unchanged
110# when the slot is empty.
111def descend(+lr: F32, entry: Backward.Entry) -> Backward.Entry & Result<&2, &2, Error, Unit>:
112  Backward.Entry{node, +shape, value, saved, slot} = entry
113  match slot:
114    case Gradient.Unset{}:
115      (Backward.Entry{node, shape, value, saved, Gradient.Unset{}}, Done{Unit{}})
116    case Gradient.Held{g}:
117      descended(node, shape, saved, Elementwise.binary(Elementwise.Descend{lr}, value, g))

Uses (11)

Used by (4)