What is `__torch_function__`? Why would I want to use it? What does it have to do with keeping extra metadata on Tensors or torch.fx? How is it implemented? Why is `__torch_function__` a really popular way of extending functionality in PyTorch? What makes it different from the dispatcher extensibility mechanism? What are some downsides of it being written this way? What are we doing about it?
What is __torch_function__
? Why would I want to use it? What does it have to do with keeping extra metadata on Tensors or torch.fx? How is it implemented? Why is __torch_function__
a really popular way of extending functionality in PyTorch? What makes it different from the dispatcher extensibility mechanism? What are some downsides of it being written this way? What are we doing about it?
Further reading.
__torch_function__
RFC: https://github.com/pytorch/rfcs/blob/master/RFC-0001-torch-function-for-methods.md__torch_function__
https://pytorch.org/docs/stable/notes/extending.html#extending-torch