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)

相关推荐
Smoothcloud润云8 小时前
PyTorch推理服务动态批处理实战:兼顾吞吐与延迟
人工智能·pytorch·python·深度学习·ai·gpu算力
Smoothcloud润云11 小时前
PyTorch推理请求超时与取消处理实战
人工智能·pytorch·python·深度学习·机器学习·gpu算力·gpu
czq_268671948713 小时前
Python打卡第36天
pytorch·python·深度学习
程序猿阿森2 天前
混合精度详解:FP16 vs BF16,Loss Scaling 与 PyTorch 实战
人工智能·pytorch·python
Είναι η κοπέλα3 天前
模型量化完全指南:GGUF、GPTQ、AWQ 怎么选
人工智能·pytorch·python
Soonyang Zhang4 天前
根据时戳从pytorch trace中获取kernel信息
pytorch
承渊政道4 天前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(开源大模型ChatGLM使用详解)
人工智能·pytorch·开源·llm·chatglm
129Lab5 天前
电池热管理仿真的AI加速:用Python+PINN物理信息神经网络替代传统CFD的可行性探索
pytorch·python·cfd·pinn·物理信息神经网络·仿真加速·电池热管理
Είναι η κοπέλα5 天前
llama.cpp 与 GGUF 格式:本地大模型的“裸引擎“
开发语言·人工智能·pytorch·python·conda
头发够用的程序员5 天前
TensorRT 自定义算子插件实战(三):手搓 2×2 最大池化 customMaxpool
人工智能·pytorch·python·深度学习·神经网络·边缘计算·jetson