Python numpy.argsort和torch.argsort之间的差异
我已经检查了pytorch和numpy的argsort函数的定义是否相同 然而,当我沿着不同大小的随机张量(或ndarray)使用这些函数时,会产生不同。我不知道为什么会观察到这种差异 示例代码: 结果如下: 。。。通常,实际实现会因数据类型而异Python numpy.argsort和torch.argsort之间的差异,python,numpy,pytorch,Python,Numpy,Pytorch,我已经检查了pytorch和numpy的argsort函数的定义是否相同 然而,当我沿着不同大小的随机张量(或ndarray)使用这些函数时,会产生不同。我不知道为什么会观察到这种差异 示例代码: 结果如下: 。。。通常,实际实现会因数据类型而异 从。由于PyTorch张量默认为32位浮点精度,numpy数组为64位,因此无法保证行为一致。argsort默认情况下不稳定,numpy和torch。即使在使用同一库的两次运行之间,也可能存在差异。也就是说,浮点精度似乎也是一个因素。将dtype=
从。由于PyTorch张量默认为32位浮点精度,numpy数组为64位,因此无法保证行为一致。
argsort
默认情况下不稳定,numpy
和torch
。即使在使用同一库的两次运行之间,也可能存在差异。也就是说,浮点精度似乎也是一个因素。将dtype=torch.float64
传递到torch.rand
将删除未对齐的索引。嗨!这是一个很好的问题,但是你能用正确格式的文本代码替换图片吗?其他人更容易复制和使用它,而且它比图像更具可伸缩性:)@Proko好主意:)我现在正确编辑了我的帖子。@QuangHoang当我从float64类型开始时,就像你说的,火炬和numpy之间没有区别。但是,其他情况(float32或float32的float64 cast)仍有不同。根据我的经验,我在大尺寸的float32张量中使用torch.argsort观察到一些错误指数。无论如何,我能理解这两个函数都“不准确”吗?