diff --git a/test/test_namedtensor.py b/test/test_namedtensor.py index 0076da2da485..c8a9ca33efb0 100644 --- a/test/test_namedtensor.py +++ b/test/test_namedtensor.py @@ -280,6 +280,11 @@ class TestNamedTensor(TestCase): self.assertEqual(named_tensor.diagonal(outdim='E', dim1='B', dim2='D').names, ['A', 'C', 'E']) + def test_empty_names(self): + ref_tensor = torch.tensor([[1, 2, 3, 4], [4, 3, 2, 1]]) + empty_named_tensor = torch.tensor([[1, 2, 3, 4], [4, 3, 2, 1]], names=[]) + self.assertEqual(ref_tensor, empty_named_tensor) + def test_max_pooling(self): def check_tuple_return(op, inputs, expected_names): values, indices = op(*inputs) diff --git a/torch/csrc/utils/tensor_new.cpp b/torch/csrc/utils/tensor_new.cpp index 77a22568a3fd..c422e8af0ecd 100644 --- a/torch/csrc/utils/tensor_new.cpp +++ b/torch/csrc/utils/tensor_new.cpp @@ -1497,7 +1497,7 @@ Tensor tensor_ctor( pin_memory); auto names = r.toDimnameListOptional(5); if (names) { - at::namedinference::propagate_names( + at::namedinference::propagate_names_if_nonempty( new_tensor, *names, /*validate_names=*/true); } new_tensor.detach_(); // ensure new_tensor a leaf node