欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

torch 张量 维度,torch 降维

墨初 知识笔记 52阅读

文章目录 一、降维和升维未完待续....

一、降维和升维

squeeze和unsqueeze是torch张量常用的降维与升维的一种方式但这种方式只能增添或减少大小为1的维度如下

x1  torch.randn(1, 8, 256, 256)x1  torch.squeeze(x1,dim0)print(x1.shape) # torch.Size([8, 256, 256])x2  torch.randn(8, 1, 256, 256)x2  torch.squeeze(x2,dim1)print(x2.shape) # torch.Size([8, 256, 256])x1  torch.randn(8, 256, 256)x1  torch.unsqueeze(x1,dim0)print(x1.shape)  # torch.Size([1, 8, 256, 256])x2  torch.randn(8, 256, 256)x2  torch.unsqueeze(x2,dim1)print(x2.shape)  # torch.Size([8, 1, 256, 256])

但如果维度大小不为1squeeze就无效了。
降维可以使用torch.mean()函数来对维度X进行求平均值相当于将维度X的所有通道合并为一个单一的通道。
升维可以使用expand()函数对需要的尺寸进行扩展其他维度传递-1作为参数表示在那个维度不进行扩展

x1  torch.randn(2, 8, 256, 256)x1  torch.mean(x1, dim0)print(x1.shape) # torch.Size([8, 256, 256])x2  torch.randn(8, 3, 256, 256)x2  torch.mean(x2, dim1)print(x2.shape) # torch.Size([8, 256, 256])x3  torch.randn(8, 256, 256)x3  x3.unsqueeze(0).expand(4,-1,-1,-1)print(x3.shape)  # torch.Size([4, 8, 256, 256])x4  torch.randn(16, 256, 256)x4  x4.unsqueeze(1).expand(-1, 8, -1, -1)print(x4.shape) # torch.Size([16, 8, 256, 256])
未完待续…

标签:
声明:无特别说明,转载请标明本文来源!