【发布时间】:2020-10-21 09:45:33
【问题描述】:
我有一个看起来像的张量
coords = torch.Tensor([[0, 0, 1, 2],
[0, 2, 2, 2]])
第一行是网格上对象的 x 坐标,第二行是对应的 y 坐标。
我需要一种可微的方式(即梯度可以流动)从这个张量到相应的“网格”张量,其中 1 表示该位置存在对象(行索引,列索引),0 表示没有对象:
grid = torch.Tensor([[1, 0, 1],
[0, 0, 1],
[0, 0, 1]])
一般情况下,coords 可以很大(网格大小为 300x300)。如果coords 是稀疏张量,我可以简单地调用to_dense,但由于特定于我的应用程序的各种原因,我不能将coords 存储为稀疏。此外,我无法从 coords 创建一个新的稀疏张量并在其上调用 to_dense,因为创建一个新的张量是不可微的。
感谢任何帮助!
【问题讨论】:
-
您能否更具体地了解一种从该张量到相应网格张量的可微方法?
-
可微分是指梯度可以流动并且不会被操作阻塞(例如创建新张量)。
-
好的,那么网格将被输入到某个神经网络,坐标是需要通过网格从该神经网络接收梯度的变量?
标签: pytorch linear-algebra gradient-descent