我已经为此苦苦挣扎了一段时间。我想要的只是一个 torch.diff() 函数。然而,许多矩阵运算似乎并不容易与张量运算兼容。
我尝试了大量的各种 pytorch 操作组合,但都没有奏效。
由于 pytorch 尚未实现此基本功能,因此我首先尝试沿特定轴i+1从元素中减去元素i。
但是,您不能简单地按元素执行此操作(由于张量限制),因此我尝试构建另一个张量,其中元素沿一个轴移动:
ix_plus_one = [0]+list(range(0,prediction.size(1)-1))
ix_differential_tensor = torch.LongTensor(ix_plus_one)
diff_one_tensor = prediction[:,ix_differential_tensor]
但是现在我们遇到了一个不同的问题 - 索引并不能真正在 pytorch 中模仿 numpy 广告,所以你不能用这样的“类似列表”的张量来索引。我也尝试使用张量scatter函数
所以我仍然被这个试图在 pytoch 张量上获得梯度的简单问题所困扰。
我所有的搜索都导致了 pytorchs 的“autograd”功能的奇妙功能——这与这个问题无关。
BIG阳
相关分类