Pytorch Tensor张量的类型转换与squeeze,unsqueeze的应用

tensor的类型转换

data=torch.Tensor(1,2,2,1)#初始化一个形状为(1,2,2,1)的全部为0的Tensor,系统默认为'torch.FloatTensor' 类型
data.type()#-->'torch.FloatTensor' ,显示Tensor的类型
#转换tensor的类型
data.long()
data.int()
data.float()
data.double()#float64
data.byte()
#等,或者直接tpye()函数里加类型,记住类型首字符必须大写
data.type(torch.IntTensor)
#GPU与CPUtensor,决定tensor是否由GPU或者cpu计算
data.cpu()#cpu
data.cuda()#gpu
#Tensor与numpy array之间的转换
data.numpy()#Tensor->numpy,data为Tensor变量
torch.from_numpy(data)#Numpy->Tensor ,data为numpy变量
#tensor的尺寸
data.size()
data.shape

squeeze与unsqueeze的降维与升维

#squeeze()降维
data.squeeze()#若是没有指定维度,则是去掉所有维度为1的维度(1,2,2,1)—>(2,2)
data.squeeze(0)#去掉指定维度为1的维度(1,2,2,1)->(2,2,1)指定范围为(-4,3)
#unsqueeze()升维
data.unsqueeze(3)#必须指定维度,由(1,2,2,1)->(1,2,2,1,1) 指定范围为(-5,4)
# unsqueeze()使得原tensor多一个维度为1的维度
#squeeze()使得原tensor去掉一个维度为1的维度 
#二者均不会改变tensor的值,表现形式由[[[....]]]->[[....]]

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