Pytorch的“autograd”如何处理非数学函数?

2024-09-28 22:58:23 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的培训过程中,我倾向于使用大量对torch.cat()的调用,并将张量复制到新的张量中。autograd如何处理这些操作?梯度值是否受这些操作的影响


Tags: 过程torchcat梯度autograd
1条回答
网友
1楼 · 发布于 2024-09-28 22:58:23

正如评论中指出的,cat是一个数学函数。例如,我们可以用更传统的数学符号来编写cat的以下(特殊情况)定义:

enter image description here

该函数的雅可比矩阵w.r.t.其任一输入可表示为

enter image description here

由于雅可比矩阵定义良好,您当然可以应用反向传播

实际上,您通常不会用这样的符号来定义这些操作,而pytorch以这种方式使用的cat操作的一般定义将很麻烦

这就是说,autograd内部使用反向算法,与任何其他函数一样,考虑了此类“索引样式”操作的梯度

相关问题 更多 >