def leaf_refusal

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

import bendtorch-core@0.1.0.0/src/autograd/sgd.bend as Sgd
import Base
import bendtorch-core@0.1.0.0/src/autograd/tensor_backward.bend as Backward

32def leaf_refusal(node: Backward.Node) -> Maybe<&2, Error>:
33  match node:
34    case Backward.Leaf{}:
35      None{}
36    case Backward.Add{a, b, left, right}:
37      Some{NotLeaf{}}
38    case Backward.Sub{a, b, left, right}:
39      Some{NotLeaf{}}
40    case Backward.Mul{a, b, left, right}:
41      Some{NotLeaf{}}
42    case Backward.Sum{a, input}:
43      Some{NotLeaf{}}
44    case Backward.SumDims{a, input, kept}:
45      Some{NotLeaf{}}
46    case Backward.Matmul{a, b, left, right}:
47      Some{NotLeaf{}}
48    case Backward.MatmulNT{a, b, left, right}:
49      Some{NotLeaf{}}
50    case Backward.Relu{a, input}:
51      Some{NotLeaf{}}
52    case Backward.MseLoss{a, b, left, right}:
53      Some{NotLeaf{}}
54    case Backward.CrossEntropy{a, input}:
55      Some{NotLeaf{}}
56    case Backward.BatchedMatmul{a, b, left, right}:
57      Some{NotLeaf{}}
58    case Backward.Slice{a, input, kept, plan}:
59      Some{NotLeaf{}}
60    case Backward.Gathered{a, input, plan, entries}:
61      Some{NotLeaf{}}
62    case Backward.Constant{}:
63      None{}
64    case Backward.Frozen{id, inner}:
65      leaf_refusal(inner)

Uses (3)

Used by (3)