【PyTorch】改变张量(Tensor)形状操作

PyTorch深度学习总结

第二章 PyTorch中改变张量(Tensor)形状操作


文章目录

  • PyTorch深度学习总结
  • 一、前言
  • 二、改变张量形状


一、前言

上文讲解了张量生成信息获取的知识,本文将针对张量的操作进行详细讲解。


二、改变张量形状

1、改变张量形状的函数总结:

函数 描述
A.reshape(3, 4) 改变张量A形状为3*4
A.resize_(3, 4) 改变张量A形状为3*4
A.resize_as_(B) 改变张量A形状与张量B相同
torch.unsqueeze(A, dim=0) 在A的0维度添加尺寸为1的新张量
torch.unsqueeze(A, dim=0) 移除A的维度为1的维度
torch.unsqueeze(A) 移除A中所有维度为1的维度
A.expand(3, -1) 将张量A扩充为3行
A.expand_as(C ) 将张量A根据C的大小形状进行扩充
A.repeat(1, 2, 2) 对张量A的对应维度进行扩充

2、部分函数细节讲解

针对unsqueeze的讲解:

# 引入库
import torch

# 生成张量A
A = torch.arange(start=0, end=2, step=1) 

# 使用torch.unsqueeze函数添加维度
B = torch.unsqueeze(A, dim=0)
print(A, B)
print(A.shape, B.shape)

输出结果为:
tensor([0, 1]) , tensor([[0, 1]])
torch.Size([2]), torch.Size([1, 2])

针对squeeze的讲解:

# 生成多维度的张量C
C = torch.unsqueeze(B, dim=0)

# 对维度为1的维度进行裁剪
D = torch.squeeze(C, dim=0)
E = torch.squeeze(C)

# 输出结果
print(C, D, E)
print(C.shape, D.shape, E.shape)

输出结果:
tensor([[[0, 1]]]) , tensor([[0, 1]]), tensor([0, 1])
torch.Size([1, 1, 2]), torch.Size([1, 2]) , torch.Size([2])


你可能感兴趣的:(PyTorch,pytorch,人工智能,python)