Pytorch中torch.unsqueeze()与torch.squeeze()函数详细解析

Pytorch 中 torch.unsqueeze() 与 torch.squeeze() 函数详细解析

1. 简介

torch.unsqueeze()torch.squeeze() 是 pytorch 中的两个常用函数,用于调整张量的形状。

  • torch.unsqueeze(input, dim=None, *, out=None):
    在指定维度上增加一个维度。返回的张量与 input 张量共享数据存储空间,即 input.storage() 与返回的张量的存储空间相同。input.dim() 的值加 1,如果 dim=None 则在第一维增加一维,否则在 dim 维度增加一维。

  • torch.squeeze(input, dim=None, *, out=None):
    在指定维度上移除一个维度。返回的张量与 input 张量共享数据存储空间,即 input.storage() 与返回的张量的存储空间相同。input.dim() 的值减 1,如果 dim=None 则移除所有大小为 1 的维度,否则移除指定维度,如果在指定维度上的大小不为 1,则返回的张量与 input 张量相同。

2. 用法举例

2.1 使用 torch.unsqueeze()

对于一个张量 A,如果要在第二个维度上增加一个维度,则可以使用以下代码:

import torch
A = torch.randn(3, 4)
B = torch.unsqueeze(A, dim=1)
print(A.shape)  # (3, 4)
print(B.shape)  # (3, 1, 4)

在代码中,我们使用 torch.randn() 生成一个形状为 (3, 4) 的随机张量 A,然后在第二个维度上增加一个维度得到张量 B,B 的形状为 (3, 1, 4)

2.2 使用 torch.squeeze()

对于一个张量 C,如果要将第二个维度上的大小为 1 的维度移除,则可以使用以下代码:

import torch
C = torch.randn(3, 1, 4)
D = torch.squeeze(C, dim=1)
print(C.shape)  # (3, 1, 4)
print(D.shape)  # (3, 4)

在代码中,我们使用 torch.randn() 生成一个形状为 (3,1,4) 的随机张量 C,然后在第二个维度上移除大小为 1 的维度得到张量 D,D 的形状为 (3, 4)。如果在第二维度上的大小不为 1,那么返回的张量与输入的张量 C 形状相同。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pytorch中torch.unsqueeze()与torch.squeeze()函数详细解析 - Python技术站

(0)
上一篇 2023年5月25日
下一篇 2023年5月25日

相关文章

  • Node.js连接MongoDB数据库产生的问题

    连接MongoDB数据库是Node.js开发的重要环节之一。下面我们将详细讲解在连接MongoDB数据库时可能会出现的问题及其解决办法,供开发者参考。 问题一:安装MongoDB驱动 在使用Node.js连接MongoDB数据库前,需要先安装MongoDB的驱动模块。可以使用npm install mongodb命令进行安装。同时,还需注意模块版本与Mong…

    人工智能概论 2023年5月25日
    00
  • Django配置MySQL数据库的完整步骤

    下面是Django配置MySQL数据库的完整步骤的攻略: 准备工作 在配置MySQL数据库之前,需要先安装MySQL并创建相应的数据库。 步骤一:安装MySQL驱动 在终端中执行以下命令: pip install mysqlclient 步骤二:修改settings.py文件 在Django项目的settings.py文件中,需要添加MySQL相关配置,示例…

    人工智能概论 2023年5月25日
    00
  • SpringCloud Config配置中心原理以及环境切换方式

    一、Spring Cloud Config配置中心原理简介 Spring Cloud Config是一个基于Spring Boot的配置管理工具,它提供集中的外部配置管理解决方案。通过Spring Cloud Config,我们可以将应用程序的配置中心独立出来,不必被绑定到特定的开发、测试、生产环境,这样我们就能够将配置独立存储并管理,方便随时更新,做到配置…

    人工智能概览 2023年5月25日
    00
  • OpenStack Ceilometer用MongoDB解决占用磁盘空间过大问题

    下面我会详细讲解”OpenStack Ceilometer用MongoDB解决占用磁盘空间过大问题”的攻略,这里我将分为以下几个部分进行说明: 问题背景 解决方案 操作步骤 示例说明 1. 问题背景 在使用OpenStack Ceilometer进行监控的过程中,由于默认情况下Ceilometer采用SQL数据库进行数据存储,数据量较大时会占用大量磁盘空间,…

    人工智能概论 2023年5月25日
    00
  • 部署django项目安装uwsgi出错的解决方法总结

    下面是详细讲解“部署django项目安装uwsgi出错的解决方法总结”的完整攻略。 部署django项目安装uwsgi出错的解决方法总结 1. 安装uwsgi时出现的错误 在对Django项目进行部署时,常常需要使用到uwsgi,但是在安装时可能会出现以下错误: Command "/usr/local/bin/python3.6 -u -c &qu…

    人工智能概览 2023年5月25日
    00
  • 使用python编写简单计算器

    使用Python编写简单计算器的完整攻略可以分为以下几个步骤: 1. 确定需求 在编写计算器之前,需要先明确计算器的需求和功能,包括支持的运算符号、输入格式、错误处理等。根据需求,我们可以创建一个”README”文件来记录计算器的功能说明和使用方法,以便其他人使用。 2. 创建代码文件 在Python中,可以使用文本编辑器或集成开发环境(IDE)创建代码文件…

    人工智能概论 2023年5月24日
    00
  • Centos6.4 编译安装 nginx php的方法

    Centos6.4 编译安装 Nginx + PHP 的方法 本文主要讲解如何在 CentOS 6.4 系统上,使用源码编译的方式安装 Nginx 和 PHP,以便于自定义编译选项和版本。下面是具体的操作步骤。 1. 安装编译环境 在编译 Nginx 和 PHP 之前,需要先安装编译环境。 $ yum install -y gcc gcc-c++ make …

    人工智能概览 2023年5月25日
    00
  • Python+OpenCv制作证件图片生成器的操作方法

    下面是“Python+OpenCv制作证件图片生成器的操作方法”的完整攻略,共分为以下几个步骤: 1. 环境搭建 首先,需要安装Python和OpenCv。Python可以从官网https://www.python.org/downloads/下载,建议下载Python 3.x版本。安装完成后,可以使用pip工具安装OpenCv,命令如下: pip inst…

    人工智能概论 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部