系列文章目录
本系列记录自己的代码学习知识
torch中的transpose和view的不同
前言
一、torch中的transpose
transpose
转置矩阵
c = ([[[1,2,3],[1,2,3],[1,2,3]]])
c=torch.tensor(c)
print('c.shape',c.shape)
c.shape torch.Size([1, 3, 3])
d=c.transpose(0, 2)
print(d)
tensor([[[1],
[1],
[1]],
[[2],
[2],
[2]],
[[3],
[3],
[3]]])
print(d.size())
torch.Size([3, 3, 1])
二、torch中的view
c = ([[[1,2,3],[1,2,3],[1,2,3]]])
c=torch.tensor(c)
e=c.view(3, 3, 1)
print(e)
tensor([[[1],
[2],
[3]],
[[1],
[2],
[3]],
[[1],
[2],
[3]]])
print(e.size())
torch.Size([3, 3, 1])
解释:
总结
结合看到的知识,自己重新整理。
我们将原来的矩阵c中元素映射到一个一维的列表,那么一维列表如下
[[1,2,3,1,2,3,1,2,3]
transpose是对原来矩阵的转置,它会按照转置规则使矩阵c中元素在一维列表中的位置发生改变
而view则不会,view只是将元素按照原来的位置顺序重新划分在矩阵c中的位置。