【发布时间】:2021-06-12 11:24:23
【问题描述】:
我正在查看Spatial Transformer Network 论文,我正在尝试在 PyTorch 中为整数采样内核实现一个自定义 grid_sample 函数(继承 autograd.Function 类)。
在定义后向函数时,我遇到了以下难题。
鉴于整数采样的工作原理如下:
我认为梯度 w.r.t 输入地图和转换后的网格 (x_i^s, y_i^s) 应该如下所示:
因为 Kronecker delta 函数的导数为零(我不确定!!-帮助)
克罗内克三角洲的导数?
因此我得出一个结论,输入的梯度应该是:一个与输入相同大小的张量,如果像素被采样,则填充为 0,如果未采样,则为 0,梯度 wrt转换后的网格应该是一个充满零的张量。
但是,如果变换后的网格的梯度为 0,那么由于链式法则,没有信息将传递到整数采样器之前的层。因此我认为关于网格的导数应该是别的东西。谁能指出我做错了什么?
非常感谢!
【问题讨论】:
标签: math image-processing deep-learning pytorch