当前位置: 首页 > 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…...

洛雪音乐音源终极指南:5分钟解锁全网无损音乐资源

洛雪音乐音源终极指南:5分钟解锁全网无损音乐资源 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 洛雪音乐音源是专为洛雪音乐客户端设计的强大插件集合,能够帮助你轻松获取…...

YimMenu终极指南:免费GTA5辅助工具完整使用教程

YimMenu终极指南:免费GTA5辅助工具完整使用教程 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...

GEO2R数据下载太慢?试试这个国内镜像加速方案(附完整基因注释流程)

GEO数据下载加速与基因注释全流程实战指南 引言:为什么我们需要国内镜像方案 如果你曾经尝试从GEO数据库下载大型数据集,大概率经历过那种令人抓狂的等待——进度条像蜗牛爬行,下载速度以KB/s计算,甚至中途频繁断开。这不是你的网…...

XCOM 2模组管理的终极解决方案:Alternative Mod Launcher完整指南

XCOM 2模组管理的终极解决方案:Alternative Mod Launcher完整指南 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/g…...

拆解一个Buck电路实例:我是如何根据Datasheet为我的电源项目挑选MOS管的

拆解一个Buck电路实例:我是如何根据Datasheet为我的电源项目挑选MOS管的 当我在设计一款输入36V、输出12V/5A的Buck转换器时,MOS管的选择成了整个项目的关键转折点。市面上琳琅满目的型号让人眼花缭乱,而Datasheet里密密麻麻的参数表格更像是…...

UMA模型吸附能预测实战指南:从催化剂筛选到工业应用

UMA模型吸附能预测实战指南:从催化剂筛选到工业应用 【免费下载链接】ocp Open Catalyst Projects library of machine learning methods for catalysis 项目地址: https://gitcode.com/GitHub_Trending/oc/ocp 核心价值速览 在催化材料研发领域&#xff0…...

Nextcloud Android文件同步革命:实现跨设备无缝数据访问的完整指南 [特殊字符]

Nextcloud Android文件同步革命:实现跨设备无缝数据访问的完整指南 📱 【免费下载链接】android 📱 Nextcloud Android app 项目地址: https://gitcode.com/gh_mirrors/andr/android Nextcloud Android应用是一款功能强大的开源云存储…...

OnTopReplica组切换模式揭秘:自动轮换多个监控窗口的完整指南

OnTopReplica组切换模式揭秘:自动轮换多个监控窗口的完整指南 【免费下载链接】OnTopReplica A real-time always-on-top “replica” of a window of your choice (on Windows). 项目地址: https://gitcode.com/gh_mirrors/on/OnTopReplica OnTopReplica是一…...

告别显卡驱动残留困扰:Display Driver Uninstaller的深度清理全解析

告别显卡驱动残留困扰:Display Driver Uninstaller的深度清理全解析 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers…...

Sycamore与Leptos、Dioxus对比:如何选择最适合的Rust前端框架

Sycamore与Leptos、Dioxus对比:如何选择最适合的Rust前端框架 【免费下载链接】sycamore A library for creating reactive web apps in Rust and WebAssembly 项目地址: https://gitcode.com/gh_mirrors/sy/sycamore 在Rust前端开发领域,Sycamor…...