Tensor 基本操作1 unsqueeze, squeeze, softmax | PyTorch 深度学习实战

本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started

目录

    • 创建 Tensor
    • 常用操作
      • unsqueeze
      • squeeze
      • Softmax
        • 代码1
        • 代码2
        • 代码3
      • argmax
      • item

创建 Tensor

使用 Torch 接口创建 Tensor

import torch

参考:https://pytorch.org/tutorials/beginner/basics/tensorqs_tutorial.html

常用操作

unsqueeze

将多维数组解套,并嵌入新的一层维度。

    data = [[1, 2],[3, 4]]x_data = torch.tensor(data)print("x_data")print(x_data)x2_data = x_data.unsqueeze(-1)print("x_data>> unsqueeze -1")print(x2_data)x2_data = x_data.unsqueeze(0)print("x_data>> unsqueeze 0")print(x2_data)x2_data = x_data.unsqueeze(1)print("x_data>> unsqueeze 1")print(x2_data)x2_data = x_data.unsqueeze(2)print("x_data>> unsqueeze 2")print(x2_data)

结果:

x_data
tensor([[1, 2],[3, 4]])
x_data>> unsqueeze -1   # -1 代表最内层,将最内层的数用一个新的维度包起来
tensor([[[1],[2]],[[3],[4]]])
x_data>> unsqueeze 0 # 0 代表最外层,将原来的多维数组整个多套一层
tensor([[[1, 2],[3, 4]]])
x_data>> unsqueeze 1 # 代表原来第一维里的每个元素,套一层
tensor([[[1, 2]],[[3, 4]]])
x_data>> unsqueeze 2 # 代表原来第二维里的每个元素,套一层
tensor([[[1],        # 当前一共两维,所以效果和 -1 一样[2]],[[3],[4]]])

squeeze

去掉指定或全部的维度中只有一个元素的多维数组。

比如输入为 Ax1xBxCx1xD 维的数组,输出变成了 AxBxCxD 维的数组。

https://pytorch.org/docs/stable/generated/torch.squeeze.html
在这里插入图片描述

    data = [[1], [2],[3], [4]]x_data = torch.tensor(data)print("x_data")print(x_data)x2_data = x_data.squeeze()print("x_data>> squeeze")print(x2_data)x2_data = x_data.squeeze(1)print("x_data>> squeeze 1")print(x2_data)

结果:

x_data
tensor([[1],[2],[3],[4]])
x_data>> squeeze
tensor([1, 2, 3, 4])
x_data>> squeeze 1
tensor([1, 2, 3, 4])

Softmax

https://pytorch.org/docs/stable/generated/torch.softmax.html

归一化操作。
在这里插入图片描述

代码1
    data = torch.tensor([1,2,3], dtype=torch.float) # 维度 3; 注意,此处 dtype 是 int 或 long 接口报错x_data = torch.softmax(data, 0)print("x_data")print(x_data)

结果:

x_data
tensor([0.0900, 0.2447, 0.6652])  # 维度 3
代码2
    data = torch.tensor([[1],[2],[3]], dtype=torch.float) # 维度 3x1x_data2 = torch.softmax(data, 0)print("x_data2")print(x_data2)

结果:

x_data2  # 维度 3x1
tensor([[0.0900],[0.2447],[0.6652]])
代码3
    data = torch.tensor([[1],[2],[3]], dtype=torch.float) # 维度 3x1x_data2 = torch.softmax(data, 1) # 沿着第一维求print("x_data2")print(x_data2)

结果:

x_data2
tensor([[1.],[1.],[1.]])

此时,每维都是 1 个元素,针对自身求 softmax,所以,结果是 1.

argmax

https://pytorch.org/docs/stable/generated/torch.argmax.html

返回一个多维数组的最大值的索引,如果是多维数组,则返回第一维的索引。

在这里插入图片描述

item

https://pytorch.org/docs/stable/generated/torch.Tensor.item.html
返回一个 Tensor 中携带的 Python Number 对象。该接口只对 Tensor 是一维的有效。

x = torch.tensor([1.0])
x.item()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/5751.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计hadoop+spark股票基金推荐系统 股票基金预测系统 股票基金可视化系统 股票基金数据分析 股票基金大数据 股票基金爬虫

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

C++17 新特性深入解析:constexpr 扩展、if constexpr 和 constexpr lambda

C17 不仅增强了现有特性,还引入了一些全新的编程工具,极大地提升了代码的效率和表达力。在这篇文章中,我们将深入探讨 C17 中与 constexpr 相关的三个重要特性:constexpr 的扩展用法、if constexpr 和 constexpr lambda。这些特性…

AI 编程工具—Cursor进阶使用 Rules for AI

AI 编程工具—Cursor进阶使用 Rules for AI 这里配置是给所有的会话和内嵌模式的,你可以理解为是一个全局的配置 下面的代码是之前Cursor 给我们生成的,下面我们开始配置Rules ,来让Cursor生成的代码更加符合我们的编程习惯 def quick_sort(arr):"""使用快…

Games104——渲染中光和材质的数学魔法

原文链接 渲染方程及挑战 挑战 对于任一给定方向如何获得radiance–阴影 对于光源和表面shading的积分运算(蒙特卡洛积分) 对于反射光多Bounce的无限递归计算 基础光照解决方案 Blinn-Phong模型: 简化阴影 最常见的处理方式就是Shadow M…

RV1126+FFMPEG推流项目源码

源码在我的gitee上面,感兴趣的可以自行了解 nullhttps://gitee.com/x-lan/rv126-ffmpeg-streaming-project

150 Linux 网络编程6 ,从socket 到 epoll整理。listen函数参数再研究

一 . 只能被一个client 链接 socket例子 此例子用于socket 例子, 该例子只能用于一个客户端连接server。 不能用于多个client 连接 server socket_server_support_one_clientconnect.c /* 此例子用于socket 例子, 该例子只能用于一个客户端连接server。…

2D 超声心动图视频到 3D 心脏形状重建的临床应用| 文献速递-医学影像人工智能进展

Title 题目 2D echocardiography video to 3D heart shape reconstruction for clinicalapplication 2D 超声心动图视频到 3D 心脏形状重建的临床应用 01 文献速递介绍 超声心动图是心血管医学中一种至关重要且广泛应用的影像学技术,利用超声波技术捕捉心脏及其…

再见 Crontab!Linux 定时任务的新选择!

引言 说到 Linux 下定时执行任务,大多数人可能会想到 crontab?没错,它的确是 Linux 下比较通用和方便的方式,但是今天我来介绍一种新的方法来创建定时任务并且支持更多更强大的功能。 Systemd 很多小伙伴应该听说过 Systemd&…

windows下本地部署安装hadoop+scala+spark-【不需要虚拟机】

注意版本依赖【本实验版本如下】 Hadoop 3.1.1 spark 2.3.2 scala 2.11 1.依赖环境 1.1 java 安装java并配置环境变量【如果未安装搜索其他教程】 环境验证如下: C:\Users\wangning>java -version java version "1.8.0_261" Java(TM) SE Runti…

2.5G PoE交换机 TL-SE2109P 简单开箱评测,8个2.5G电口+1个10G光口(SFP+)

TPLINK(普联)的万兆上联的2.5G网管交换机TL-SE2109P简单开箱测评。8个PoE 2.5G电口,1个万兆SFP上联口。 2.5G交换机 TL-SE2420 简单开箱评测,16个2.5G电口4个10G光口(SFP):https://blog.zeruns.com/archives/837.html…

simulink入门学习01

文章目录 1.基本学习方法2.图形环境--模块和参数3.激活菜单---添加到模型3.1输入选项3.2添加到模型3.3更改运算3.4验证要求 4.乘以特定值--Gain模块4.1引入gain模块4.2更改增益参数4.3接入系统4.4大胆尝试 1.基本学习方法 今天突然想要学习这个simulink的相关知识,…

等变即插即用图像重建

大家读完觉得有帮助记得关注和点赞!!! 摘要 即插即用算法为解决反问题成像问题提供了一个流行的框架,该框架依赖于通过降噪器隐式定义图像先验。这些算法可以利用强大的预训练降噪器来解决各种成像任务,从而避免了在每…

ChatGPT 摘要,以 ESS 作为你的私有数据存储

作者:来自 Elastic Ryan_Earle 本教程介绍如何设置 Elasticsearch 网络爬虫,将网站索引到 Elasticsearch 中,然后利用 ChatGPT 使用我们的私人数据来总结对其提出的问题。 Python 脚本的 Github Repo:https://github.com/Gunner…

java开发,IDEA转战VSCODE配置(mac)

一、基本java开发环境配置 前提:已经安装了jdk、maven、vscode,且配置了环境变量 1、安装java相关的插件 2、安装spring相关的插件 3、vscode配置maven环境 打开 VsCode -> 首选项 -> 设置,也可以在setting.json文件中直接编辑&…

Autosar CP中SWC收发LIN消息的函数调用流程原理解析

Part 1:SWC发送 在AUTOSAR架构中,软件组件(SWC,Software Component)要发送LIN消息时,通常通过COM模块的接口来发起请求。这是因为COM模块是AUTOSAR架构中负责信号和数据传输的核心模块,它为SWC提…

Flink Gauss CDC:深度剖析存量与增量同步的创新设计

目录 设计思路 1.为什么不直接用FlinkCDC要重写Flink Gauss CDC 2.存量同步的逻辑是什么 2.1、单主键的切片策略是什么 2.2、​​​​​复合主键作切片,怎么保证扫描到所有的数据 3、增量同步的逻辑是什么 4、存量同步结束之后如何无缝衔接增量同步 5、下游数据如何落…

C#,入门教程(06)——解决方案资源管理器,代码文件与文件夹的管理工具

上一篇: C#,入门教程(05)——Visual Studio 2022源程序(源代码)自动排版的功能动画图示https://blog.csdn.net/beijinghorn/article/details/124675293 大家平时都怎么管理源代码与文件夹呢?世界上最好的集成开发环境…

【时时三省】(C语言基础)文件的顺序读写

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 文件顺序读写 示例: 这个会输出bit 如果把写文件的内容屏蔽掉 它就会把它清空 流 高度抽象的概念 可以往流里面写数据 c语言程序,只要运行起来,就默认…

Web安全攻防入门教程——hvv行动详解

Web安全攻防入门教程 Web安全攻防是指在Web应用程序的开发、部署和运行过程中,保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现,还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。 本教程将带你入门Web安全攻防…

Bigemap pro批量设置属性/填充字段

在图层里面有大量点位或者线面需要批量编辑时,可以借助bigemap pro软件来进行编辑修改 第一步:在对应图层点击右键,选择样式,选择需要修改的点线面来设置图标、大小等,如图所示: 第二步:设置要…