首先导入torch包,利用torch.narrow()函数实现数据通道数转换,具体实例见下图
利用torch.rand(5,6)随机生成一个5X6的二维矩阵,利用torch.narrow(x,dim,start,length)进行通道数转化,narrow()函数里第一个参数是你需要转换的原始数据,必须是tensor形式。第二个变量dim是你需要转换的具体维度。第三个变量为所选维度中的第几个通道为起点。第四个变量为保留的通道数个数。
![](https://img-blog.csdnimg.cn/2f263ce97c0743eb929a3be680eb9c4d.png)
上例中torch.narrow(x,0,2,3),因x为5X6的二维tensor,由两个维度[0,1],0表示第一维,横向,1表示第二维,纵向;且第一维通道数为5,第二维通道数为6。narrow函数中dim=0,选择第一维;start=2表示从第一维的第二个通道开始,python中均是以0开始计数,即0.6467这一行向量为起始通道;length=3表示通道数为3,即从0.6467这一行向量向下保留3个通道,如下图。
成功将第一维通道数减小至3。
如果在深度学习中图像处理中常遇到思维tensor,即x.shape=[9,3,256,256],3代表彩色图片RGB的三个通道数,如想实现降维操作,可将x的第二维的通道数3变为1,再使用x=torch.squeeze(x,dim=1)实现降维,降维后shape变为[9,256,256]
版权归原作者 机械不深度学习 所有, 如有侵权,请联系我们删除。