张量维度改变总结

文章目录


一、view() 或 reshape()

view() 或 reshape(): 这两个函数可以用于改变张量的形状,但保持元素总数不变。它们可以接受一个新的形状作为参数,并返回一个新的张量。例如:

python 复制代码
import torch

x = torch.randn(2, 3, 4)  # 创建一个形状为 [2, 3, 4] 的张量

x_viewed = x.view(2, 12)  # 改变形状为 [2, 12]
x_reshaped = x.reshape(6, 4)  # 改变形状为 [6, 4]

二、unsqueeze()

unsqueeze(): 这个函数可以在指定位置插入一个新的维度。它接受一个整数作为参数,表示要插入的位置。例如:

python 复制代码
import torch

x = torch.randn(3, 4)  # 创建一个形状为 [3, 4] 的张量

x.unsqueeze(0)  # 在第 0 个位置插入一个新的维度,形状变为 [1, 3, 4]
x.unsqueeze(1)  # 在第 1 个位置插入一个新的维度,形状变为 [3, 1, 4]
python 复制代码
import torch

x = torch.randn(2, 3)  # 创建一个形状为 [2, 3] 的张量

x_unsqueezed = torch.unsqueeze(x, dim=0)  # 在第 0 个位置插入一个新的维度,形状变为 [1, 2, 3]

三、squeeze()

squeeze(): 这个函数可以删除维度为 1 的维度。它会返回一个新的张量,其中已删除了所有维度为 1 的维度。例如:

python 复制代码
import torch

x = torch.randn(1, 3, 1, 4)  # 创建一个形状为 [1, 3, 1, 4] 的张量

x.squeeze()  # 删除所有维度为 1 的维度,形状变为 [3, 4]

四、transpose()

transpose(): 这个函数可以交换张量的维度顺序。它接受两个整数作为参数,表示要交换的维度的位置。例如:

python 复制代码
import torch

x = torch.randn(2, 3)  # 创建一个形状为 [2, 3] 的张量

x.transpose(0, 1)  # 交换维度 0 和维度 1 的位置,形状变为 [3, 2]

五、torch.expand_dims

torch.expand_dims(input, dim): 这个函数接受一个张量 input 和一个整数 dim,表示要在 dim 位置插入一个新的维度。它会返回一个新的张量,其中插入了一个维度。例如:

python 复制代码
import torch

x = torch.randn(2, 3)  # 创建一个形状为 [2, 3] 的张量

x_expanded = torch.expand_dims(x, dim=1)  # 在第 1 个位置插入一个新的维度,形状变为 [2, 1, 3]
相关推荐
研究点啥好呢3 分钟前
3月26日Github热榜推荐 | AI代理工具链专栏
人工智能·驱动开发·python·ai
剑穗挂着新流苏3124 分钟前
200_深度学习的地基:PyTorch 数据操作与 Pandas 预处理实战
人工智能·pytorch·python·深度学习
灵机一物5 分钟前
灵机一物AI智能电商小程序(已上线)-告别“人肉电商“:我们如何用 AI 数字员工,实现智能电商小程序自动化运营
人工智能·自动化·数字员工·养龙虾·自动化运营
wanzehongsheng5 分钟前
北京万泽宏盛科技:以创新光伏产品赋能绿色生活
人工智能·科技·生活
Jackson@ML10 分钟前
2026最新版MINIMAX AI安装应用开发指南
人工智能·mini max·m2.7
guoji778810 分钟前
ChatGPT官网镜像实战:生产环境内存泄漏排查与修复全记录
人工智能·chatgpt
m0_6125919710 分钟前
尚航科技 IDC vs 其他服务商:AI 大模型部署场景对比
人工智能·科技
m0_5649149211 分钟前
极简大模型microGPT代码教学互动网页
人工智能·机器学习
Android技术之家12 分钟前
Android Studio 专属AI智能体+Skills完整版提示词(可直接复制使用)
android·ide·人工智能·android studio
weixin_6695452013 分钟前
JZ55182升压型2节锂电池充电芯片,替代SY6982
人工智能·嵌入式硬件·硬件工程·信息与通信