예제 #1
0
    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))
예제 #2
0
 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]))
예제 #3
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]))
예제 #4
0
    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]))