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
110
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))