当前位置: 首页 > news >正文

【PyTorch】PyTorch中张量(Tensor)统计操作

PyTorch深度学习总结

第五章 PyTorch中张量(Tensor)统计操作


文章目录

  • PyTorch深度学习总结
  • 前言
  • 一、最值查找
  • 二、特殊值查询


前言

上文介绍了PyTorch中张量(Tensor)的计算操作,本文将介绍张量的统计操作。


一、最值查找

函数描述
torch.max()找出张量中的最大值
torch.argmax()输出最大值所在位置
torch.min()找出张量中的最小值
torch.argmin()输出最小值所在位置
torch.sort()对一维张量或多维(每个维度单独)进行排序
torch.topk(A, k)根据指定值k,计算出张量A取值为前k大的值,并显示所在位置
torch.kthvalue(A, k)根据指定值k,计算出张量A取值为第k小的值,并显示所在位置

创建张量:

# 引入库
import torch# 创建张量A
A = torch.arange(2., 8.).reshape(2,3)
print(A)

输出结果为:tensor([[2, 3, 4], [5, 6, 7]])


测试函数:

print(A.max())
print(A.argmax())
print(A.min())
print(A.argmin())

输出结果为(含注释):
tensor(7.)
tensor(5) # 0-5的最后一位
tensor(2.)
tensor(0) # 0-5的第一位


torch.sort()
创建随机张量B:

# 创建随机张量B
B = torch.randperm(15).reshape(3, 5) # torch.randperm(n)可以生成有n个0-10之间整数组成的张量
print(B)

输出结果为:
tensor(
[[13, 9, 1, 2, 0],
[ 4, 14, 12, 3, 7],
[ 5, 6, 8, 11, 10]])


对张量B进行排序:

# 升序输出
print(B.sort())  # 分别输出排序后的值,以及该值在原索引中不同维度的位置(列数)

输出结果为:
torch.return_types.sort(
values=tensor([[ 0, 1, 2, 9, 13],
[ 3, 4, 7, 12, 14],
[ 5, 6, 8, 10, 11]]),
indices=tensor([[4, 2, 3, 1, 0],
[3, 0, 4, 2, 1],
[0, 1, 2, 4, 3]]))


# 降序输出
print(B.sort(descending=True))

输出结果为:
torch.return_types.sort(
values=tensor([[13, 9, 2, 1, 0],
[14, 12, 7, 4, 3],
[11, 10, 8, 6, 5]]),
indices=tensor([[0, 1, 3, 2, 4],
[1, 2, 4, 0, 3],
[3, 4, 2, 1, 0]]))


测试函数torch.topk()

# 选取每个维度最大和次大的值,及其位置
print(B.topk(2))

输出结果为:
torch.return_types.topk(
values=tensor([[13, 9],
[14, 12],
[11, 10]]),
indices=tensor([[0, 1],
[1, 2],
[3, 4]]))


# 选取2-dim维度前2大的值及其位置
print(B)
print(B.topk(2, dim=0))  # 每列最大的两个值

输出结果为(含注释):
tensor([[13, 9, 1, 2, 0],
[ 4, 14, 12, 3, 7],
[ 5, 6, 8, 11, 10]])
torch.return_types.topk(
values=tensor([[13, 14, 12, 11, 10],
[ 5, 9, 8, 3, 7]]),
indices=tensor([[0, 1, 1, 2, 2],
[2, 0, 2, 1, 1]])) # indices表示对应元素的行数


# 选取2-dim最大和次大的值,及其位置
print(B.topk(2, dim=1))  # 与默认情况相同默认情况

输出结果为:
torch.return_types.topk(
values=tensor([[13, 9],
[14, 12],
[11, 10]]),
indices=tensor([[0, 1],
[1, 2],
[3, 4]]))


测试函数torch.kthvalue()

# 选取每个维度第2小的值及其位置
print(B)
print(B.kthvalue(2))

输出结果为:
tensor([[13, 9, 1, 2, 0],
[ 4, 14, 12, 3, 7],
[ 5, 6, 8, 11, 10]])
torch.return_types.kthvalue(
values=tensor([1, 4, 6]),
indices=tensor([2, 0, 1]))


二、特殊值查询

函数描述
torch.mean(A, dim=0)根据指定维度计算均值
torch.sum(A, dim=0)根据指定维度求和
torch.cumsum(A, dim=0)根据指定维度计算累加和
torch.median(A, dim=0)根据指定维度计算中位数
torch.cumprod(A, dim=0)根据指定维度计算乘积
torch.std(A, dim=0)根据指定维度计算标准差

测试函数(维度0):

print(A)
print(A.mean(dim=0))
print(A.sum(dim=0))
print(A.cumsum(dim=0))
print(A.median(dim=0))
print(A.cumprod(dim=0))
print(A.std(dim=0))

输出结果为(含注释):
tensor([[2., 3., 4.],
[5., 6., 7.]]) # 张量A
tensor([3.5000, 4.5000, 5.5000]) # 每列均值
tensor([ 7., 9., 11.]) # 每列求和
tensor([[ 2., 3., 4.],
[ 7., 9., 11.]]) # 每列累加求和
torch.return_types.median(
values=tensor([2., 3., 4.]),
indices=tensor([0, 0, 0])) # 每列中位数及索引
tensor([[ 2., 3., 4.],
[10., 18., 28.]]) # 每列累乘
tensor([2.1213, 2.1213, 2.1213]) # 每列标准差


print(A)
print(A.mean(dim=1))
print(A.sum(dim=1))
print(A.cumsum(dim=1))
print(A.median(dim=1))
print(A.cumprod(dim=1))
print(A.std(dim=1))

输出结果为(含注释):
tensor([[2., 3., 4.],
[5., 6., 7.]]) # 张量A
tensor([3., 6.]) # 每行均值
tensor([ 9., 18.]) # 每行求和
tensor([[ 2., 5., 9.],
[ 5., 11., 18.]]) # 按行逐个累加
torch.return_types.median(
values=tensor([3., 6.]),
indices=tensor([1, 1])) # 每行中位数
tensor([[ 2., 6., 24.],
[ 5., 30., 210.]]) # 按行逐个累乘
tensor([1., 1.]) # 每行标准差

相关文章:

【PyTorch】PyTorch中张量(Tensor)统计操作

PyTorch深度学习总结 第五章 PyTorch中张量(Tensor)统计操作 文章目录 PyTorch深度学习总结前言一、最值查找二、特殊值查询 前言 上文介绍了PyTorch中张量(Tensor)的计算操作,本文将介绍张量的统计操作。 一、最值查找 函数描述torch.max()找出张量中的最大值to…...

安卓游戏开发框架应用场景以及优劣分析

一、引言 在移动游戏开发领域,选择合适的开发框架是项目成功的关键因素之一。特别是对于安卓平台,由于其开放性和庞大的用户基础,不同的游戏开发框架应运而生,旨在帮助开发者高效地构建游戏应用。以下是一些流行的安卓游戏开发框架…...

单片机学习笔记---LCD1602

LCD1602介绍 LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符(比如日文的片假名),还可以有8个自定义字符 显示容量:…...

django中实现适配器模式

在Django中实现适配器模式(Adapter Pattern)涉及到创建一个适配器类,它允许不兼容的接口之间进行交互。适配器模式通常用于将一个类的接口转换为另一个客户端期望的接口。 一:实现例子 下面是一个简单的例子,演示如何…...

题记(42)--EXCEL排序

目录 一、题目内容 二、输入描述 三、输出描述 四、输入输出示例 五、完整C语言代码 一、题目内容 Excel可以对一组纪录按任意指定列排序。现请你编写程序实现类似功能。 对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号&#…...

【学网攻】 第(28)节 -- OSPF虚链路

系列文章目录 目录 系列文章目录 文章目录 前言 一、什么是OSPF虚链路? 二、实验 1.引入 实验目标 实验背景 技术原理 实验步骤 实验设备 实验拓扑图 实验配置 扩展 实验拓扑图 实验配置 实验验证 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻…...

百面嵌入式专栏(面试题)驱动开发面试题汇总1.0

沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍驱动开发面试题 。 1、Linux驱动程序的功能是什么? 对设备初始化和释放。进行内核与硬件的数据交互。检测和处理设备出现的错误。2、内核程序中申请内存使用什么函数? 答案:kmalloc()、kzalloc()、vm…...

Starknet 的 JavaScript 库:Starknet.js、get-starknet和starknet-react

文章目录 Starknet 的 JavaScript 库Starknet.jsget-starknetstarknet-reactStarknet 的 JavaScript 库Starknet.js 官方:https://www.starknetjs.com/ Starknet.js 是一个与 Starknet 交互的 JavaScript 库,通常以脚本或去中心化形式进行交互应用程序。 Starknet.js 的灵感…...

debian11 安装 k8s,containerd ,阿里云镜像(已成功)

1. 环境准备 系统要求:至少 2GB RAM(建议 4GB 或更多),网络连接。 节点准备:至少 3 台机器,1 台作为 Master 节点,2 台作为 Worker 节点。 安装sudo apt update apt install sudo设置主机名&a…...

Spring Task定时任务

目录 1、介绍 2、cron表达式 2.1、在线生成器 2.2、通配符 3、代码示例 3.1、使用步骤 3.2、 代码开发 3.3、测试 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发…...

【设计模式】23中设计模式笔记

设计模式分类 模板方法模式 核心就是设计一个部分抽象类。 这个类具有少量具体的方法,和大量抽象的方法,具体的方法是为外界提供服务的点,具体方法中定义了抽象方法的执行序列 装饰器模式 现在有一个对象A,希望A的a方法被修饰 …...

类加载过程介绍

一、类的生命周期 类被加载到jvm虚拟机内存开始,到卸载出内存为止,他的生命周期可以分为:加载->验证->准备->解析->初始化->使用->卸载。 其中验证、准备、解析统一称为链接阶段 1、加载 将类的字节码载入方法区中&#xf…...

pytorch创建模型方式

1.继承自nn.Module的方式 from torch import nn import torch.nn.functional as F 继承自nn.Moduleclass LModel(nn.Module):def __init__(self):super().__init__()self.L1 nn.Linear(10,10)self.L2 nn.Linear(10,64)self.L3 nn.Linear(64,10)self.L4 nn.Linear(10,5)se…...

MySQL 基础知识(五)之数据增删改

目录 1 插入数据 2 删除数据 3 更改数据 创建 goods 表 drop table if exists goods; create table goods ( id int(10) primary key auto_increment, name varchar(14) unique, stockdate date )charsetutf8; 1 插入数据 当要插入的数据为日期/时间类型时,如果…...

紫微斗数双星组合:廉贞天府在辰戌

文章目录 前言内容总结 前言 紫微斗数双星组合:廉贞天府在辰戌 内容 紫微斗数双星组合:廉贞天府在辰戌 性格分析 廉贞天府同坐辰、戌宫,若无煞星冲破,为“天府朝垣格”,也为“府相朝垣格”,富贵双全&am…...

人工智能|深度学习——基于全局注意力的改进YOLOv7-AC的水下场景目标检测系统

代码下载: 基于全局注意力的改进YOLOv7-AC的水下场景目标检测系统.zip资源-CSDN文库 1.研究的背景 水下场景目标检测是水下机器人、水下无人机和水下监控等领域中的重要任务之一。然而,由于水下环境的复杂性和特殊性,水下目标检测面临着许多挑…...

使用 C++23 从零实现 RISC-V 模拟器(1):最简CPU

👉🏻 文章汇总「从零实现模拟器、操作系统、数据库、编译器…」:https://okaitserrj.feishu.cn/docx/R4tCdkEbsoFGnuxbho4cgW2Yntc 本节实现一个最简的 CPU ,最终能够解析 add 和 addi 两个指令。如果对计算机组成原理已经有所了…...

顺序表、链表(ArrayList、LinkedList)

目录 前言: 顺序表(ArrayList): 顺序表的原理: ArrayList源码: 的含义:​编辑 ArrayList的相关方法:​编辑 向上转型List: 练习题(杨辉三角&#x…...

第11讲投票创建后端实现

投票创建页面实现 文件选择上传组件 uni-file-picker 扩展组件 安装 https://ext.dcloud.net.cn/plugin?nameuni-file-picker 日期选择器uni-datetime-picker组件 安装 https://ext.dcloud.net.cn/plugin?nameuni-datetime-picker iconfont小图标 https://www.iconfont…...

SNMP 简单网络管理协议、网络管理

目录 1 网络管理 1.1 网络管理的五大功能 1.2 网络管理的一般模型 1.3 网络管理模型中的主要构件 1.4 被管对象 (Managed Object) 1.5 代理 (agent) 1.6 网络管理协议 1.6.1 简单网络管理协议 SNMP 1.6.2 SNMP 的指导思想 1.6.3 SNMP 的管理站和委托代理 1.6.4 SNMP…...

word删除空白页

行距固定值,1磅...

体验Taotoken多模型路由带来的高稳定性与低延迟感受

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 体验Taotoken多模型路由带来的高稳定性与低延迟感受 1. 引言:开发中的稳定性与延迟挑战 在将大模型能力集成到应用的过…...

H5GG完整指南:如何用JavaScript和HTML5轻松修改iOS游戏内存

H5GG完整指南:如何用JavaScript和HTML5轻松修改iOS游戏内存 【免费下载链接】H5GG an iOS Mod Engine with JavaScript APIs & Html5 UI 项目地址: https://gitcode.com/gh_mirrors/h5/H5GG 你是否曾经想过修改iOS游戏中的数值,却因为复杂的越…...

python系列【仅供参考】:mongo4.0.0 加用户认证 motor和pymongo的auth连接

mongo4.0.0 加用户认证 && motor和pymongo的auth连接 mongo4.0.0 加用户认证 摘要 一. 数据库版本 二. 为mongo 添加用户认证 1. 创建超级用户 3. 开启auth 4.重启mongo 5. 添加库用户 三.验证 四.pymongo,motor连接 摘要 正文 mongo4.0.0 加用户认证 摘要 本文介绍…...

Artisan:开源咖啡烘焙软件的终极指南,从入门到精通的完整解决方案

Artisan:开源咖啡烘焙软件的终极指南,从入门到精通的完整解决方案 【免费下载链接】artisan artisan: the worlds most trusted roasting software 项目地址: https://gitcode.com/gh_mirrors/ar/artisan 你是否曾为咖啡烘焙的不可预测性而烦恼&a…...

Unity HDRP 2023.2水系统实战:从清澈泳池到湍急溪流,5分钟调出电影感水体

Unity HDRP 2023.2水系统实战:从清澈泳池到湍急溪流,5分钟调出电影感水体 在游戏和影视级实时渲染中,水体的表现力往往决定了场景的沉浸感上限。Unity 2023.2的HDRP Water Surface系统通过物理参数的艺术化组合,让开发者无需编写着…...

告别Hello World:用Scala REPL在Ubuntu上实战计算级数,附完整代码与权限避坑

从Hello World到实战:用Scala REPL在Ubuntu上高效计算级数 当Java开发者第一次接触Scala时,往往会被其函数式编程范式和简洁语法所吸引。但真正要将其应用于实际问题解决时,却常因环境配置和实战经验不足而却步。本文将带你跳过传统语法学习阶…...

测试09测试09测试09测试09测试09

测试09测试09测试09测试09测试09...

STM32 FSMC/FMC接口配置与调试:从时序参数到实战应用

1. 项目概述:为什么FSMC/FMC是STM32开发者绕不开的“硬骨头”?在STM32的众多外设中,FSMC(Flexible Static Memory Controller,灵活静态存储器控制器)及其升级版FMC(Flexible Memory Controller&…...

Cling实时编码音乐应用:探索编程与艺术的跨界融合

Cling实时编码音乐应用:探索编程与艺术的跨界融合 【免费下载链接】cling The interactive C interpreter Cling 项目地址: https://gitcode.com/gh_mirrors/cli/cling Cling作为一款强大的交互式C解释器,不仅能提升编程效率,更能成为…...