张量维度改变总结

文章目录


一、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]
相关推荐
feasibility.几秒前
AI 解牛:刀刃不再需要手——技艺、判断与一次学习机制的重构
人工智能·职场发展·具身智能·skill·道·术
大嘴皮猴儿1 分钟前
为跨境电商卖家分析目前AI跨境翻译网站哪个好
大数据·人工智能·教育电商·ai图片翻译工具哪个好·ai图片翻译软件免费
秦先生在广东3 分钟前
《科技爱好者周刊》内容全景:从AI机制到开源协作的200期观察
人工智能
小宋10218 分钟前
Agent Skills 从零实战:SKILL.md、渐进式加载、测试与版本治理
大数据·网络·人工智能
释厄6239 分钟前
BSD 基础论——不要忘记连接·不要停滞循环·AI基础算法
人工智能·算法
悟天特斯12 分钟前
楼宇自控的“最后一公里“:从设备控制到数据驱动的建筑智能体
人工智能·物联网
程序猿阿森12 分钟前
FastText 全面解析:从文本张量表示到文本分类实战
人工智能·分类·数据挖掘
故七月13 分钟前
生成式引擎优化 (GEO) 跨区域落地实战:陕西金贝儿母婴家政全域 AI 品牌信源搭建案例
大数据·人工智能
张小姐的猫15 分钟前
【Linux】网络编程 —— 五种IO模型
linux·运维·服务器·网络·c++·人工智能·php
qq_3691736319 分钟前
一句话将 Word、PPT、PDF 发布成链接
人工智能·pdf·word·powerpoint·效率工具·ai 办公