长安的花

当学问走过漫漫古道
凿刻入千窟,心也从愚昧中苏醒

0%

tensor 相加介绍

不同纬度的tensor相加

直接上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
a = torch.tensor([[[ 1, 2, 3]],[[-1, 1, 4]]] , dtype= torch.float)
print(a)
print(a.shape)
#tensor([[[ 1., 2., 3.]],
#
# [[-1., 1., 4.]]])
#torch.Size([2, 1, 3])
torch.transpose(a, 1, 2)
#tensor([[[ 1.],
# [ 2.],
# [ 3.]],
#
# [[-1.],
# [ 1.],
# [ 4.]]])

神奇之处,直接进行相加操作
1
a+torch.transpose(a, 1, 2)

得到结果
1
2
3
4
5
6
7
tensor([[[ 2.,  3.,  4.],
[ 3., 4., 5.],
[ 4., 5., 6.]],

[[-2., 0., 3.],
[ 0., 2., 5.],
[ 3., 5., 8.]]])

一个是横的一个是束的,怎么能相加的呢,仔细观察,可以发现,在[[ 1., 2., 3.]][[ 1.], [ 2.],[ 3.]] 相加的时候,第一个在二三行进行了复制补齐,第二个在二三列进行了复制补齐,之后就均为两个2x3x3维度的tensor,就可以相加了。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道