6.8.1 交换维度
1.transpose()交换两个维度
import torch
tensor1 = torch.randint(1, 9, (2, 3, 6))
print(tensor1)
print(tensor1.transpose(1, 2)) # 交换第1维和第2维
2.permute()重新排列多个维度
import torch
tensor1 = torch.randint(1, 9, (2, 3, 6))
print(tensor1)
print(tensor1.permute(2, 0, 1)) # (2, 3, 6)->(6, 2, 3)
6.8.2 调整形状
1.reshape()调整张量的形状
import torch
tensor1 = torch.randint(1, 9, (3, 5, 4))
print(tensor1)
print(tensor1.reshape(6, 10))
print(tensor1.reshape(3, -1))
2.view()调整张量的形状,需要内存连续。共享内存
is_contiguous()判断是否内存连续
contiguous()转换为内存连续
import torch
tensor1 = torch.randint(1, 9, (3, 5, 4))
print(tensor1)
print(tensor1.is_contiguous()) # is_contiguous()判断是否内存连续
print(tensor1.view(-1, 10))
tensor1 = tensor1.T
print(tensor1.is_contiguous()) # is_contiguous()判断是否内存连续
print(tensor1.contiguous().view(-1)) # contiguous()强制内存连续
6.8.3 增加或删除维度
1.unsqueeze()在指定维度上增加1个维度
import torch
tensor1 = torch.tensor([1, 2, 3, 4, 5])
print(tensor1)
# 在0维上增加一个维度
print(tensor1.unsqueeze(dim=0))
# 在1维上增加一个维度
print(tensor1.unsqueeze(dim=1))
# 在-1维上增加一个维度
print(tensor1.unsqueeze(dim=-1))
2.squeeze()删除大小为1的维度
import torch
tensor1 = torch.tensor([1, 2, 3, 4, 5])
print(tensor1.unsqueeze_(dim=0))
print(tensor1.squeeze())
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END















请登录后查看评论内容