Sha256: 0108a832f053d58482ecffe5d9f9045d113107e553981aadd53b62751babb50c
Contents?: true
Size: 742 Bytes
Versions: 1
Compression:
Stored size: 742 Bytes
Contents
# frozen_string_literal: true module Micrograd class NullOp def backward(_anything) = nil end class AddOp < Struct.new(:x, :y) def backward(value) x.grad += value.grad y.grad += value.grad x.backward y.backward end end class MulOp < Struct.new(:x, :y) def backward(value) x.grad += y.data * value.grad y.grad += x.data * value.grad x.backward y.backward end end class TanhOp < Struct.new(:x) def backward(value) x.grad += (1 - value.data**2) * value.grad x.backward rescue end end class PowOp < Struct.new(:x, :n) def backward(value) x.grad += n * (x.data ** (n-1)) * value.grad x.backward end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
micrograd-0.1.0 | lib/micrograd/op.rb |