PyTorch学习之 torch.squeeze 函数

PyTorch学习之 torch.squeeze 函数

一、功能

torch.squeeze 的主要作用是从给定的张量 input 中移除所有尺寸为1的维度。

二、基本语法

python 复制代码
torch.squeeze(input, dim=None)

三、参数说明

  • input (Tensor): 输入的张量。
  • dim (int, 可选): 指定要移除的尺寸为1的维度
    • 如果未指定,函数将移除所有尺寸为1的维度。
    • 如果指定的维度不为1,则 torch.squeeze 不会对该维度进行操作
    • 如果所有维度都不为1且未指定 dim 参数,则返回的张量与输入张量相同

四、返回值

  • 返回一个新的张量,移除了指定的尺寸为1的维度。
  • ⚠️如果没有可以移除的维度,则返回与输入相同的张量。

五、示例

以下是一些使用 torch.squeeze 的示例,以帮助更好地理解其用法。

示例 1: 移除所有尺寸为1的维度
python 复制代码
import torch

# 创建一个张量,其形状为 (1, 3, 1, 5)
x = torch.randn(1, 3, 1, 5)
print("原始张量形状:", x.shape)

# 使用 torch.squeeze 移除所有尺寸为1的维度
y = x.squeeze()
print("移除后张量形状:", y.shape)

输出:

复制代码
原始张量形状: torch.Size([1, 3, 1, 5])
移除后张量形状: torch.Size([3, 5])
示例 2: 移除指定维度(该维度尺寸为1)
python 复制代码
import torch

# 创建一个张量,其形状为 (1, 3, 1, 5)
x = torch.randn(1, 3, 1, 5)
print("原始张量形状:", x.shape)

# 指定维度移除,尝试移除第0维
y = x.squeeze(0)
print("移除第0维后的张量形状:", y.shape)

# 尝试移除第2维
z = x.squeeze(2)
print("移除第2维后的张量形状:", z.shape)

输出:

复制代码
原始张量形状: torch.Size([1, 3, 1, 5])
移除第0维后的张量形状: torch.Size([3, 1, 5])
移除第2维后的张量形状: torch.Size([1, 3, 5])
相关推荐
逆境不可逃4 分钟前
Pi Agent 学习笔记:一次提问背后的工具调用循环
java·笔记·学习
2601_9622935325 分钟前
人工智能 & 神经网络完整入门路线(零基础可走,分阶段)
人工智能·python·深度学习·神经网络·机器学习
纪伊路上盛名在1 小时前
MISATO:基于结构的药物发现的蛋白-配体复合物机器学习数据集
深度学习·机器学习·数据集·分子动力学模拟·蛋白质结构·药物发现·蛋白质-配体互作
Peng7112 小时前
浙大数据可视化课程学习笔记
笔记·学习·信息可视化
笨鸟先飞的橘猫2 小时前
slg游戏面试复盘
学习·面试
Rocky Ding*2 小时前
一文读懂LLM Agent Skills 的运行时本质:从能力路由到渐进式披露
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·agent skills
你想知道什么?2 小时前
神经网络-学习笔记
笔记·神经网络·学习
大江东去浪淘尽千古风流人物3 小时前
【LoMa】局部特征匹配重访:从LoMa-B到旋转不变LoMa-R的架构与工程实践
开发语言·深度学习·计算机视觉·r语言·视觉定位·sfm·局部特征匹配
江润舟3 小时前
万物 | 炼器 从零手搓工业级旋转目标检测网络 · 卷2 —— 计算图、梯度与反向传播(三)
人工智能·深度学习
zhurui_xiaozhuzaizai3 小时前
github上关于节省token的项目一览,上下文压缩,节省token,agent优化skill,热门项目
人工智能·深度学习·github