def test_backward_with_broadcast(self): x0 = Variable(np.array([10, 11, 12])) x1 = Variable(np.array([5])) y = mul(x0, x1) y.backward() assert_equal(x0.grad.data, np.array([5, 5, 5])) assert_equal(x1.grad.data, np.array([10+11+12]))
def test_backward(self): a = Variable(np.array(3.0)) b = Variable(np.array(2.0)) y = mul(a, b) y.backward() self.assertEqual(a.grad.data, np.array(2.0)) self.assertEqual(b.grad.data, np.array(3.0))
def test_mul_backward_overload(self, culc_object): x0 = culc_object[0] x1 = culc_object[1] y = mul(x0, x1) y.backward() assert x0.grad.data == 3 and x1.grad.data == 2
def test_mul(self, culc_object): x0 = culc_object[0] x1 = culc_object[1] assert mul(x0, x1).data == 6
def test_forward(self): a = Variable(np.array(3.0)) b = Variable(np.array(2.0)) y = mul(a, b) self.assertEqual(y.data, np.array(6.0))