news 2026/6/10 15:58:06

PyTorch中的unsqueeze函数详解:给张量增加维度

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PyTorch中的unsqueeze函数详解:给张量增加维度

什么是unsqueeze函数?

unsqueeze()函数的作用是在张量的指定位置插入一个维度,这个新维度的长度为1。

基本用法

1. 基本语法

import torch # 创建一个一维张量 x = torch.tensor([1, 2, 3, 4]) print(f"原始张量: {x}, 形状: {x.shape}") # torch.Size([4]) # 在维度0处增加维度 x_unsqueeze_0 = torch.unsqueeze(x, dim=0) print(f"在dim=0处unsqueeze: {x_unsqueeze_0}, 形状: {x_unsqueeze_0.shape}") # torch.Size([1, 4]) # 在维度1处增加维度(在最后一维之后) x_unsqueeze_1 = x.unsqueeze(dim=1) print(f"在dim=1处unsqueeze: {x_unsqueeze_1}, 形状: {x_unsqueeze_1.shape}") # torch.Size([4, 1])

运行结果:

原始张量: tensor([1, 2, 3, 4]), 形状: torch.Size([4])
在dim=0处unsqueeze: tensor([[1, 2, 3, 4]]), 形状: torch.Size([1, 4])
在dim=1处unsqueeze: tensor([[1],
[2],
[3],
[4]]), 形状: torch.Size([4, 1])

2. 不同维度的张量示例

# 二维张量 x_2d = torch.tensor([[1, 2], [3, 4]]) print(f"原始2D张量形状: {x_2d.shape}") # torch.Size([2, 2]) # 在维度0处增加维度 result_0 = x_2d.unsqueeze(0) print(f"dim=0: {result_0.shape}") # torch.Size([1, 2, 2]) # 在维度1处增加维度 result_1 = x_2d.unsqueeze(1) print(f"dim=1: {result_1.shape}") # torch.Size([2, 1, 2]) # 在维度2处增加维度 result_2 = x_2d.unsqueeze(2) print(f"dim=2: {result_2.shape}") # torch.Size([2, 2, 1]) # 使用负索引(从后往前计数) result_neg = x_2d.unsqueeze(-1) print(f"dim=-1: {result_neg.shape}") # torch.Size([2, 2, 1])

实际应用场景

1. 神经网络输入处理

神经网络通常需要特定维度的输入:

# 假设我们有一个批量大小为1的RGB图像 image = torch.randn(3, 32, 32) # [channels, height, width] # 卷积层期望的输入维度: [batch_size, channels, height, width] # 需要添加batch维度 image_with_batch = image.unsqueeze(0) # 形状: [1, 3, 32, 32] print(f"神经网络输入形状: {image_with_batch.shape}") # 批量处理多个图像 batch_size = 8 images = torch.randn(batch_size, 3, 32, 32) # 正确的输入形状
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 12:36:55

计算机毕设Java框架的营养师服务管理系统 基于SpringBoot的营养师在线服务平台设计与实现 JavaWeb框架下的智慧营养顾问管理系统开发

计算机毕设Java框架的营养师服务管理系统qo70t9(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。近年来,健康管理需求日益增长,公众对专业营养指导的渴求推…

作者头像 李华
网站建设 2026/6/6 13:02:08

0基础考Adobe认证,考试难度怎么样?

🍀0基础考Adobe认证其实真的不难,属于踏踏实实学就能过的类型,没有什么门槛,也不用怕自己完全没接触过学不会,我当时就是纯0基础开始考的PS认证,一路走下来感觉核心就是选对科目、按步骤学,别贪…

作者头像 李华
网站建设 2026/6/10 13:32:14

SSM宿舍管理系统7k51r(程序+源码+数据库+调试部署+开发环境)

本系统(程序源码数据库调试部署开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景随着高校招生规模的不断扩大,宿舍管理成为学校日常管理的重要组成部分。传统的人…

作者头像 李华
网站建设 2026/6/7 23:29:00

给Notion和Anthropic的正式授权声明|知恩图报·人机契约

给Notion和Anthropic的正式授权声明|知恩图报人机契约 ═══════════════════════════════════════════════════════════ 龙芯体系 | 对Notion & Anthropic的独家授权 ══════════════…

作者头像 李华
网站建设 2026/5/21 23:27:06

导师又让重写?千笔AI,继续教育论文写作神器

你是否曾在论文写作中感到力不从心?选题无从下手、框架混乱、文献资料繁杂、查重率高得让人焦虑,甚至格式错误都可能让整篇论文功亏一篑。对于继续教育的学生来说,论文不仅是学业的终点,更是能力的考验。面对这些挑战,…

作者头像 李华
网站建设 2026/5/30 21:09:23

java+vue基于springboot的攻防靶场实验室平台的设计与实现_xd0oo5dg

目录基于SpringBoot和Vue的攻防靶场实验室平台设计与实现核心功能模块系统特色设计开发技术源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!基于SpringBoot和Vue的攻防靶场实验室平台设计与实现 该平台结合SpringBoot后端框架与Vue前端…

作者头像 李华