江苏建设信息网站有时候打不开/做推广的公司一般都叫什么
系列文章目录
本系列记录自己的代码学习知识
torch.matmul的前后两个矩阵维度不同的小结
torch中的transpose和view的不同
- 系列文章目录
- 前言
- 一、torch中的transpose
- 二、torch中的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中的位置。