Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pytorch中np.multiply.at的等价物_Pytorch_Tensor_Torch_Numpy Ufunc - Fatal编程技术网

Pytorch中np.multiply.at的等价物

Pytorch中np.multiply.at的等价物,pytorch,tensor,torch,numpy-ufunc,Pytorch,Tensor,Torch,Numpy Ufunc,Pytork中是否有np.multiply.at的等价物?我有两个4d数组和一个2d索引数组: base = torch.ones((2, 3, 5, 5)) to_multiply = torch.arange(120).view(2, 3, 4, 5) index = torch.tensor([[0, 2, 4, 2], [0, 3, 3, 2]]) 如我前面所问的(在Numpy中),索引数组的行索引对应于base的第一维和_乘法,索引数组的值对应于base的第三维。我想根据索引从基中取

Pytork中是否有np.multiply.at的等价物?我有两个4d数组和一个2d索引数组:

base = torch.ones((2, 3, 5, 5))
to_multiply = torch.arange(120).view(2, 3, 4, 5)
index = torch.tensor([[0, 2, 4, 2], [0, 3, 3, 2]])
如我前面所问的(在Numpy中),索引数组的行索引对应于base的第一维和_乘法,索引数组的值对应于base的第三维。我想根据索引从基中取出切片,并与to_乘法相乘,它可以在Numpy中实现,如下所示:

np.multiply.at(base1, (np.arange(2)[:,None,None],np.arange(3)[:,None],index[:,None,:]), to_multiply)
但是,现在当我想将其转换为PyTorch时,我找不到与np.multiply等价的方法。在PyTorch中,我只能找到“index\u add\u”方法,但没有“index\u multiply”。我希望避免执行显式for循环


那么我如何在PyTorch中实现上述目标?谢谢

如果其他人也有同样的问题,找到了解决方案:torch scatter软件包有一个scatter\u mul,它可以做到这一点:检查一下:根据您实际计划的乘法值和所需的精度,您总是可以先获取日志,然后应用index\u add,然后对结果进行幂运算。