【pytorch算子】torch.ger / torch.outer算子的用法,以及与torch库版本的关系

1,499 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

torch.ger 的用法

torch.ger 用于实现两个 Tensor 的内积,即 ger(a,b)= a^T *b (其中 a^T 表示 a 的转置)

example:

a=torch.tensor([2,3,4,5])
b=torch.tensor([1,2,3])
c=torch.ger(a,b)
print(c)

输出c:

tensor([[ 2,  4,  6],
        [ 3,  6,  9],
        [ 4,  8, 12],
        [ 5, 10, 15]])

a 是 14 的 Tensor,转置后形状为 41 ;b 是 13 的 Tensor,因此 c = ger(a,b) 是 43 的 Tensor

pytorch版本

查看 pytorch 官方文档可以看到, torch.ger 算子即将被删除,用 torch.outer 代替:

torch

程序运行报错:显示torch没有outer算子

在这里插入图片描述

查看torch版本发现我的torch版本是1.5.0

在这里插入图片描述

关键点来了:

在pytorch1.7.0之后,torch.ger算子被删掉了,用torch.outer代替。

也就是说,只有pytorch1.7.0的torch.outer与torch.ger功能等价,因此torch1.5.0没有outer算子。

于是我安装了最新的torch1.8.1,当然原来的torch1.5.0也自动被uninstalled了

在这里插入图片描述

安装好之后,再次运行程序,没有报错,问题解决。