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)

相关推荐
songyuc16 小时前
【Manskill3】TableSceneBuilder学习笔记
pytorch·笔记·学习
黑十18 小时前
PyTorch 报 “no CUDA GPUs are available“ 怎么办?3 步排查
服务器·网络·人工智能·pytorch·python
tellmewhoisi1 天前
深度学习28:PyTorch:参数更新方法(AdaGrad和RMSProp)
人工智能·pytorch·深度学习
燃烧的枫2 天前
Windows 下 YOLO11 Det 的 TensorRT C++ 部署
pytorch·windows·tensorrt·关键点识别·yolo11
田里的水稻2 天前
FA_CNN卷积神经网络十八---感知机到多层感知机PyTorch
人工智能·pytorch·python
听风吹等浪起2 天前
第27章:EfficientNet全家桶|钢材表面6类缺陷分类完整Pytorch实现
pytorch·分类·数据挖掘
Ivanqhz2 天前
MoE + LLM 应用
数据库·人工智能·pytorch·python·深度学习·算法·1024程序员节
tellmewhoisi3 天前
深度学习26:PyTorch:参数更新方法(Momentum)
人工智能·pytorch·深度学习
Zack_Liu3 天前
code样例
pytorch·python·深度学习