def vjp_relu

bendtorch-core@0.1.0.0 · src/autograd/tensor_backward.bend:454

import bendtorch-core@0.1.0.0/src/autograd/tensor_backward.bend as TensorBackward
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/tensor/core.bend as Core
import bendtorch-core@0.1.0.0/src/tensor/elementwise.bend as Elementwise

454# d relu(a)/da: the pointwise ReluBackward of the saved input x and g, g's
455# own word where x is above zero or NaN and +0.0 where x is at most zero,
456# reduced to the input's shape.
457def vjp_relu(+a: Nat, +input: Shape.Shape, saved: Saved, g: Core.Dynamic) -> Pass:
458  match saved:
459    case Unsaved{}:
460      Pass{Unsaved{}, g, Fail{TensorError{Core.StorageLengthMismatch{}}}}
461    case Operands{x, zero}:
462      relu_passed(a, input, zero, Elementwise.binary(Elementwise.ReluBackward{}, x, g))

Uses (11)

Used by (1)