diff --git a/aten/src/ATen/native/TensorFactories.cpp b/aten/src/ATen/native/TensorFactories.cpp index db4fbdfb1925..82d7363a1b32 100644 --- a/aten/src/ATen/native/TensorFactories.cpp +++ b/aten/src/ATen/native/TensorFactories.cpp @@ -348,7 +348,7 @@ Tensor empty_like( if (memory_format == MemoryFormat::Preserve) { if (self.is_non_overlapping_and_dense()) { result = at::empty_strided(self.sizes(), self.strides(), options.memory_format(c10::nullopt)); - } else if (self.layout() == kStrided) { + } else if (self.unsafeGetTensorImpl()->support_as_strided() && self.layout() == kStrided) { // If input tensor is not dense and non-overlapping but strided, we will infer an output strides // which keeps the layout permutation of the input tensor. std::vector strides = infer_dense_strides(self.sizes(), self.strides());