mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-21 05:34:18 +08:00
Respect TorchDispatchMode for shallow_copy_and_detach (#83372)
I noticed I was missing tensor creations with modes when I tried to delete proxy tensor. This was the cause. Hypothetically, all PyInterpreter calls could get this treatment. But I think it only matters for detach; the rest do not return Tensors and most modes will not be interested in them. Signed-off-by: Edward Z. Yang <ezyang@fb.com> Pull Request resolved: https://github.com/pytorch/pytorch/pull/83372 Approved by: https://github.com/zou3519
This commit is contained in:
committed by
PyTorch MergeBot
parent
1665715cb0
commit
a3907ca92d
@ -2144,7 +2144,8 @@ py::object torchDispatchFromTensorImpl(
|
||||
c10::intrusive_ptr<c10::TensorImpl, c10::UndefinedTensorImpl>::
|
||||
unsafe_reclaim_from_nonowning(const_cast<c10::TensorImpl*>(self)));
|
||||
auto self_p = py::reinterpret_steal<py::object>(THPVariable_Wrap(self_t));
|
||||
TORCH_INTERNAL_ASSERT(isPythonTensor(self_t));
|
||||
// NB: this may not be a python tensor if you got here from a mode!
|
||||
// TORCH_INTERNAL_ASSERT(isPythonTensor(self_t));
|
||||
append_overloaded_tensor(&overloaded_args, self_p.ptr());
|
||||
auto args = py::reinterpret_steal<py::object>(PyTuple_New(1));
|
||||
PyTuple_SET_ITEM(args.ptr(), 0, self_p.release().ptr());
|
||||
|
Reference in New Issue
Block a user