张量维度改变总结

文章目录


一、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]
相关推荐
SimLine芯见4 分钟前
以可靠性为中心的RCM KVM远程管控在多行业高端制造中的应用
大数据·人工智能·制造
前端开发江鸟17 分钟前
Agent 已经能跑起来了,我却不知道怎样判断它好不好
人工智能
IT_陈寒36 分钟前
SpringBoot自动配置失效?这个隐藏配置坑了我一整晚
前端·人工智能·后端
蓝速科技1 小时前
蓝速科技 AI 数字人一体机:大厂算法与实体落地的务实权衡评测
人工智能·科技
产品设计大观1 小时前
构建低消耗的产研AI工作流:Workbuddy生态 + 墨刀AI 落地实践
人工智能·ai·产品经理·墨刀·腾讯·产品设计·workbuddy
阿里云大数据AI技术1 小时前
Hologres 长记忆服务 LoCoMo 评测登顶世界第一,刷新多项 SOTA
人工智能
achong1 小时前
PenguinHarness实测:LlamaFactory作者新作,0.2元造自进化Agent
人工智能·深度学习
AlloyTeamZy1 小时前
我发现,一个人做小游戏最难的,根本不是写代码
前端·人工智能·程序员
Hotchip_MEMS1 小时前
当雾化器遇上MEMS:一场从交互到制造的全链路效率提升
人工智能·笔记·物联网·电脑·制造
是上好佳佳佳呀2 小时前
【深度学习|Day02】PyTorch 深度学习笔记(下):张量运算与自动微分
pytorch·笔记·深度学习