def test_shape(di, dj, dk): x = self._gen_sparse(2, 20, [di, dj])[0] t = self._gen_sparse(2, 20, [di, dk])[0] y = torch.randn(dj, dk) alpha = random.random() beta = random.random() res = torch.saddmm(alpha, t, beta, x, y) expected = torch.addmm(alpha, self.safeToDense(t), beta, self.safeToDense(x), y) self.assertEqual(self.safeToDense(res), expected) res = torch.saddmm(t, x, y) expected = torch.addmm(self.safeToDense(t), self.safeToDense(x), y) self.assertEqual(self.safeToDense(res), expected) res = torch.smm(x, y) expected = torch.mm(self.safeToDense(x), y) self.assertEqual(self.safeToDense(res), expected)
def test_shape(di, dj, dk): x = self._gen_sparse(2, 20, [di, dj])[0] t = self._gen_sparse(2, 20, [di, dk])[0] y = torch.randn(dj, dk) alpha = random.random() beta = random.random() expected = torch.addmm(alpha, t.to_dense(), beta, x.to_dense(), y) res = torch.saddmm(alpha, t, beta, x, y) self.assertEqual(res.to_dense(), expected) expected = torch.addmm(t.to_dense(), x.to_dense(), y) res = torch.saddmm(t, x, y) self.assertEqual(res.to_dense(), expected) expected = torch.mm(x.to_dense(), y) res = torch.smm(x, y) self.assertEqual(res.to_dense(), expected)