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])
相关推荐
ZH154558913112 分钟前
Flutter for OpenHarmony Python学习助手实战:Web开发框架应用的实现
python·学习·flutter
DeniuHe14 分钟前
Pytorch中的直方图
pytorch
哈__16 分钟前
CANN多模型并发部署方案
人工智能·pytorch
深鱼~16 分钟前
Attention机制加速实战:基于ops-transformer的性能优化
深度学习·性能优化·transformer·cann
慢半拍iii18 分钟前
对比分析:ops-nn与传统深度学习框架算子的差异
人工智能·深度学习·ai·cann
心疼你的一切20 分钟前
解构CANN仓库:AIGC API从底层逻辑到实战落地,解锁国产化AI生成算力
数据仓库·人工智能·深度学习·aigc·cann
百锦再25 分钟前
Vue高阶知识:利用 defineModel 特性开发搜索组件组合
前端·vue.js·学习·flutter·typescript·前端框架
薯一个蜂蜜牛奶味的愿29 分钟前
模块化显示神经网络结构的可视化工具--BlockShow
人工智能·深度学习·神经网络
心疼你的一切32 分钟前
基于CANN仓库算力手把手实现Stable Diffusion图像生成(附完整代码+流程图)
数据仓库·深度学习·stable diffusion·aigc·流程图·cann
CappuccinoRose1 小时前
JavaScript 学习文档(二)
前端·javascript·学习·数据类型·运算符·箭头函数·变量声明