diff --git a/micrograd/engine.py b/micrograd/engine.py index afd82cc5..dd04763e 100644 --- a/micrograd/engine.py +++ b/micrograd/engine.py @@ -1,4 +1,6 @@ +import math + class Value: """ stores a single scalar value and its gradient """ @@ -50,6 +52,17 @@ def _backward(): out._backward = _backward return out + + def tanh(self): + x = self.data + t = (math.exp(2*x) - 1)/(math.exp(2*x)+1) + out = Value(t, (self,), 'TanH') + + def _backward(): + self.grad += (1-t**2) * out.grad + out._backward = _backward + + return out def backward(self):