pytorch中的tensor实现数据降维以及通道数转换

        首先导入torch包,利用torch.narrow()函数实现数据通道数转换,具体实例见下图

        利用torch.rand(5,6)随机生成一个5X6的二维矩阵,利用torch.narrow(x,dim,start,length)进行通道数转化,narrow()函数里第一个参数是你需要转换的原始数据,必须是tensor形式。第二个变量dim是你需要转换的具体维度。第三个变量为所选维度中的第几个通道为起点。第四个变量为保留的通道数个数。
    pytorch中的tensor实现数据降维以及通道数转换_第1张图片

pytorch中的tensor实现数据降维以及通道数转换_第2张图片      上例中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个通道,如下图。

pytorch中的tensor实现数据降维以及通道数转换_第3张图片

 成功将第一维通道数减小至3。

如果在深度学习中图像处理中常遇到思维tensor,即x.shape=[9,3,256,256],3代表彩色图片RGB的三个通道数,如想实现降维操作,可将x的第二维的通道数3变为1,再使用x=torch.squeeze(x,dim=1)实现降维,降维后shape变为[9,256,256]

pytorch中的tensor实现数据降维以及通道数转换_第4张图片

 pytorch中的tensor实现数据降维以及通道数转换_第5张图片

 

 

你可能感兴趣的:(pytorch,深度学习,人工智能)