Pytorch :维度转化

在PyTorch里,维度转换是常见的操作,以下是一些常用的维度转换方法:

1. view 方法

view 方法能够对张量的形状进行重塑,不过要保证重塑前后元素总数相同。

python 复制代码
import torch


# 创建一个张量
x = torch.arange(12)
print("原始张量:", x)


# 使用view方法进行维度转换
y = x.view(3, 4)
print("转换后的张量:", y)

2. reshape 方法

reshape 方法和 view 方法功能类似,也用于重塑张量形状,但 reshape 更灵活,即使原张量不连续也能使用。

python 复制代码
import torch


# 创建一个张量
x = torch.arange(12)
print("原始张量:", x)


# 使用reshape方法进行维度转换
y = x.reshape(3, 4)
print("转换后的张量:", y)

3. transpose 方法

transpose 方法可以交换张量的两个指定维度。

python 复制代码
import torch


# 创建一个二维张量
x = torch.arange(12).view(3, 4)
print("原始张量:", x)


# 使用transpose方法交换维度
y = x.transpose(0, 1)
print("转换后的张量:", y)

4. permute 方法

permute 方法能对张量的所有维度进行重排。

python 复制代码
import torch


# 创建一个三维张量
x = torch.arange(24).view(2, 3, 4)
print("原始张量形状:", x.shape)


# 使用permute方法重排维度
y = x.permute(1, 2, 0)
print("转换后的张量形状:", y.shape)

5. unsqueezesqueeze 方法

  • unsqueeze 方法用于在指定位置插入一个维度。
  • squeeze 方法用于移除所有维度为1的维度。
python 复制代码
import torch


# 创建一个一维张量
x = torch.arange(3)
print("原始张量形状:", x.shape)


# 使用unsqueeze方法插入维度
y = x.unsqueeze(0)
print("插入维度后的张量形状:", y.shape)


# 使用squeeze方法移除维度
z = y.squeeze(0)
print("移除维度后的张量形状:", z.shape)

这些方法能帮你在PyTorch里灵活地进行维度转换。实际使用时,要依据具体需求选择合适的方法。

相关推荐
2501_9153743512 分钟前
数据清洗的艺术:如何为AI模型准备高质量数据集?
人工智能·机器学习
山北雨夜漫步15 分钟前
机器学习 Day17 朴素贝叶斯算法-----概率论知识
人工智能·算法·机器学习
愚公搬代码28 分钟前
【愚公系列】《Manus极简入门》038-数字孪生设计师:“虚实映射师”
人工智能·agi·ai agent·智能体·manus
chilavert3181 小时前
关于Python 实现接口安全防护:限流、熔断降级与认证授权的深度实践
python·网络安全
tongxianchao1 小时前
精简大语言模型:用于定制语言模型的自适应知识蒸馏
人工智能·语言模型·自然语言处理
PaperTen论文查重1 小时前
反向操作:如何用AI检测工具优化自己的论文“人味”?
人工智能
能来帮帮蒟蒻吗1 小时前
Python -将MP4文件转为GIF图片
开发语言·python·学习·视频
OpenVINO生态社区1 小时前
【美国将取消对能源之星支持 严重影响AI服务器】
服务器·人工智能·能源
suoxiao7771 小时前
通过anaconda安装jupyter
ide·python·jupyter
終不似少年遊*1 小时前
MindSpore框架学习项目-ResNet药物分类-数据增强
人工智能·深度学习·分类·数据挖掘·华为云·resnet·modelart