def test_add(): INT_OVERFLOW = 2**30 A = np.ones((INT_OVERFLOW, 2)) B = np.ones((INT_OVERFLOW, 2)) A.attach_grad() with mx.autograd.record(): C = np.add(A, B) assert C.shape == (INT_OVERFLOW, 2) assert C[0][0] == 2 C.backward() assert A.grad.shape == (INT_OVERFLOW, 2) assert A.grad[0][0] == 1
def test_add(): A = np.ones((INT_OVERFLOW, 2)) B = np.ones((INT_OVERFLOW, 2)) A[-1, -1] = 2 A.attach_grad() with mx.autograd.record(): C = np.add(A, B) C.backward() assert C.shape == (INT_OVERFLOW, 2) assert C[-1, -1] == 3 assert A.grad.shape == (INT_OVERFLOW, 2) assert A.grad[-1, -1] == 1
def test_binary_broadcast(): A = np.ones((INT_OVERFLOW, 2)) B = np.ones((INT_OVERFLOW, 1)) C = np.add(A, B) assert C.shape == (INT_OVERFLOW, 2) assert C[0][0] == 2