def test_evaluate(self): lazy_toeplitz_var = ToeplitzLazyTensor(self.toeplitz_column) res = lazy_toeplitz_var.evaluate() actual = torch.tensor([[2, 0, 4, 1], [0, 2, 0, 4], [4, 0, 2, 0], [1, 4, 0, 2]], dtype=torch.float) self.assertTrue(utils.approx_equal(res, actual)) lazy_toeplitz_var = ToeplitzLazyTensor(self.batch_toeplitz_column) res = lazy_toeplitz_var.evaluate() actual = torch.tensor( [ [[2, 0, 4, 1], [0, 2, 0, 4], [4, 0, 2, 0], [1, 4, 0, 2]], [[1, 1, -1, 3], [1, 1, 1, -1], [-1, 1, 1, 1], [3, -1, 1, 1]], ], dtype=torch.float, ) self.assertTrue(utils.approx_equal(res, actual))
def test_get_item_scalar_on_batch(self): toeplitz_var = ToeplitzLazyTensor(torch.tensor([[1, 2, 3, 4]], dtype=torch.float)) evaluated = toeplitz_var.evaluate() self.assertTrue(utils.approx_equal(toeplitz_var[0].evaluate(), evaluated[0]))
def test_get_item_on_batch(self): toeplitz_var = ToeplitzLazyTensor(self.batch_toeplitz_column) evaluated = toeplitz_var.evaluate() self.assertTrue(utils.approx_equal(toeplitz_var[0, 1:3].evaluate(), evaluated[0, 1:3]))
def test_get_item_square_on_tensor(self): toeplitz_var = ToeplitzLazyTensor(torch.tensor([1, 2, 3, 4], dtype=torch.float)) evaluated = toeplitz_var.evaluate() self.assertTrue(utils.approx_equal(toeplitz_var[2:4, 2:4].evaluate(), evaluated[2:4, 2:4]))