sequeeze()和unsequeeze()

1. 概述

作为 PyTorch 张量函数

这是最常见的用法,作用是‌去掉张量中维度为 1 的轴‌。‌

  1. 基本用法 ‌:x.squeeze() 会移除所有大小为 1 的维度;x.squeeze(dim) 只压缩指定维度。
  2. 注意事项‌:只有该维度大小确实是 1 时才会被移除,否则张量形状不变。
  3. 反操作 ‌:unsqueeze() 是在指定位置增加一个维度为 1 的轴,两者常配合使用。
  4. 常见场景‌:处理单样本数据(去掉 batch 维度)、匹配损失函数输入、模型输出后处理等。‌

2. sequeeze()

import torch

x = torch.randn(1, 3, 1, 4)

print(x.shape) # torch.Size(1, 3, 1, 4)

print(x.squeeze().shape) # torch.Size(3, 4)

3. unsequeeze()

import torch

x = torch.randn(3, 4)

print(x.shape) # torch.Size(3, 4)

在第0维前插入新维度,变成 (1, 3, 4)

y = x.unsqueeze(0)

print(y.shape) # torch.Size(1, 3, 4)

在第1维插入新维度,变成 (3, 1, 4)

z = x.unsqueeze(1)

print(z.shape) # torch.Size(3, 1, 4)

在最后一维后插入,变成 (3, 4, 1)

w = x.unsqueeze(-1)

print(w.shape) # torch.Size(3, 4, 1)

相关推荐
Thomas.Sir7 小时前
第21课:PyTorch|GPU多卡训练与分布式训练基础【让多卡并行成为你的加速引擎】
人工智能·pytorch·分布式
CODER03049 小时前
ubuntu22.04部署完整deepseek局域网web服务全过程(RTX5090安装黑屏+web端多人并发)
pytorch·webui·ubuntu22.04·ollama·deepseek·rtx5090·自然语言模型
宿州派大星1 天前
[NLP实战] 基于PyTorch实现N-gram词嵌入模型:输入4个词预测第5个词
人工智能·pytorch·深度学习·nlp
Liaiyang661 天前
空圈容错视角下的无人机全链路审计:从理论框架到耦合式检验
人工智能·pytorch·python·深度学习·系统架构·自动驾驶·无人机
AI模力圈1 天前
Pytorch图模式技术原理解析
pytorch·深度学习·torch.compile
Tancenter1 天前
gather和scatter API
pytorch·tensor
磁场转动100万匹1 天前
基于 dlib 与 OpenCV 的疲劳驾驶检测:眼睛纵横比(EAR)原理与代码逐段解析
pytorch·python
Dr_Fourier1 天前
AWQ量化
c++·人工智能·pytorch·ai
就叫你天选之人啦2 天前
安装torch+vllm+flash_attn的prompt
人工智能·pytorch·python