torch中的transpose和view的不同

系列文章目录

本系列记录自己的代码学习知识


torch.matmul的前后两个矩阵维度不同的小结


前言


一、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中的位置。


版权声明:本文为qq_43605708原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。