【发布时间】:2021-01-05 21:21:23
【问题描述】:
我阅读了Pytorch的源代码,发现它没有实现convolution_backward函数很奇怪,唯一的convolution_backward_overrideable函数是直接引发错误,应该不会落在这里。
所以我提到了 CuDNN / MKLDNN 的实现,它们都实现了像cudnn_convolution_backward 这样的功能。
我有以下问题:
-
CUDA/CPU 的原生实现是什么?我可以找到类似
thnn_conv2d_backward_out的东西,但我找不到它在哪里调用。 -
为什么 PyTorch 没有将
convolution_backward函数放在 Convolution.cpp 中?它提供了_convolution_double_backward()功能。但这是双后退,是梯度的梯度。为什么他们不提供单一的后向功能? -
如果我想为我的纯 cpu/cuda 张量调用原生卷积/convolution_backward 函数,我应该如何编写代码?或者我可以参考哪里?我找不到这方面的例子。
谢谢!
【问题讨论】:
标签: pytorch convolution