函数torch.bincount( )的用法

torch.bincount()函数是PyTorch中的一个函数,用于计算一维整数张量中每个非负整数值出现的频次

函数的用法 :

torch.bincount(input, weights=None, minlength=0) → Tensor

参数:

  • input:输入的一维整数张量
  • weights(可选):与input张量相同形状的张量,用于为每个值指定权重
  • minlength(可选):输出张量的最小长度

返回值:一个具有长度为max(input) + 1的一维长整型张量,其中索引i处的值表示i在输入张量中出现的频次

函数说明:

  • torch.bincount()函数 统计输入张量中每个非负整数值的频次。它适用于整数类型的张量,如torch.int8torch.int16torch.int32torch.int64
  • 输入张量可以是CPU上的张量,也可以是CUDA张量(GPU上的张量)
  • 输出张量的长度是输入张量中的最大值加1,即max(input) + 1
  • 输出张量中的元素顺序与输入张量中的非负整数值顺序相同

 例如:

import torchinput = torch.tensor([1, 2, 3, 2, 1, 1])
counts = torch.bincount(input)
print(counts)  # 输出: tensor([0, 3, 2, 1])
rrint(counts[1:]) # 输出:tensor([3,2,1])

在上面示例中,有一个输入张量input,包含一些非负整数值, 通过调用torch.bincount(input) ,计算了每个值在输入张量中出现的频次,得到了张量counts, counts[0]为0,因为0在输入张量中没有出现;counts[1]为3,因为1在输入张量中出现了3次,以此类推

注意:

在使用torch.bincount()函数时,它会计算一维整数张量中每个非负整数值的频次,包括最小值到最大值之间的所有整数值,即使某些整数值在输入张量中没有出现

在上述的例子中,input是一维张量[1, 2, 3, 2, 1, 1], 虽然 0 在 input 中没有出现,但torch.bincount(input)仍会考虑到0的存在 ,输出结果为 tensor([0, 3, 2, 1]),其中索引0 表示 0 这个整数值在input中出现的次数为0次,索引1出现了3次,索引2出现了2次,索引3出现了1次

torch.bincount()的输出张量长度与输入张量中的最大整数值相关。对于输入张量 input = torch.tensor([1, 2, 3, 2, 1, 1]),它包含了整数值1、2和3,torch.bincount(input) 的输出张量将具有长度为4,对应索引0到索引3。具体来说,输出张量的长度由输入张量中的最大整数值加1决定

在这个例子中,最大整数值是3,因此输出张量的长度为4

如果确保输入张量中不包含0,可以通过对输出进行切片来忽略索引0的值

例如,counts[1:]表示忽略索引0后的部分,得到tensor([3, 2, 1])

还可以传入一个与输入张量相同形状的权重张量 weights,可以为每个值指定权重

weights = torch.tensor([0.1, 0.2, 0.3, 0.4, 0.5, 0.6])
weighted_counts = torch.bincount(input, weights)
print(weighted_counts)  # 输出:tensor([0.0000, 1.2000, 0.6000, 0.3000])
# 对于0来说,没有出现就是0
# 对于1来说,出现了三次:第一次出现位置上对应的权重为0.1,第二次出现位置上对应的权重为0.5,第三次出现 # 位置上对应的权重为0.6,所以0.1+0.5+0.6=1.2
# 对2来说,出现两次:第一次出现位置对应的权重为0.2,第二次出现位置对应的权重为0.4,故0.2+0.4=0.6
# 对于3来说,出现了一次:第一次出现位置上对应的权重为0.3,所以为0.3

通过调用 torch.bincount(input, weights),计算了每个值在输入张量中出现的加权频次,得到了张量 weighted_counts

此外,可以通过设置 minlength 参数来指定输出张量的最小长度

minlength_counts = torch.bincount(input, minlength=5)
print(minlength_counts)  # 输出: tensor([0, 3, 2, 1, 0])

在上面的示例中,我们调用torch.bincount(input, minlength=5),将最小长度设置为5,得到了张量 minlength_counts,它的长度为5,包含了输入张量中每个非负整数值的频次

补充:对于numpy数组有 numpy.bincount( )函数的用法:   numpy.bincount( )函数的用法-CSDN博客 可以参考博文对比理解

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

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

相关文章

机器学习——支持向量机

目录 一、基于最大间隔分隔数据 二、寻找最大间隔 1. 最大间隔 2. 拉格朗日乘子法 3. 对偶问题 三、SMO高效优化算法 四、软间隔 五、SMO算法实现 1. 简化版SMO算法 2. 完整版SMO算法 3. 可视化决策结果 六、核函数 1. 线性不可分——高维可分 2. 核函数 …

设计模式 原型模式 与 Spring 原型模式源码解析(包含Bean的创建过程)

原型模式 原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象。 原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节。 工作原…

新年跨年烟花超酷炫合集【内含十八个烟花酷炫效果源码】

❤️以下展示为全部烟花特效效果 ❤️下方仅展示部分代码 ❤️源码获取见文末 🎀HTML5烟花喷泉 <style> * {padding:0;margin:0; } html,body {positi

清华提出ViLa,揭秘 GPT-4V 在机器人视觉规划中的潜力

人类在面对简洁的语言指令时&#xff0c;可以根据上下文进行一连串的操作。对于“拿一罐可乐”的指令&#xff0c;若可乐近在眼前&#xff0c;下意识的反应会是迅速去拿&#xff1b;而当没看到可乐时&#xff0c;人们会主动去冰箱或储物柜中寻找。这种自适应的能力源于对场景的…

软件测试人才稀缺!揭秘为什么你找不到软件测试工作?

最近后台很多粉丝给我留言&#xff1a; 2023年软件测试已经崩盘了吗&#xff0c;为什么都找不到工作了&#xff1f; 确实&#xff0c;今年经济大环境不好&#xff0c;企业也都在降本增效&#xff0c;如果技术能力还在被应届生竞争岗位的阶段&#xff0c;只会越来越难。 找不…

从零开始在Linux服务器配置并运行YOLO8+Web项目

✅作者简介&#xff1a;大家好&#xff0c;我是 Meteors., 向往着更加简洁高效的代码写法与编程方式&#xff0c;持续分享Java技术内容。 &#x1f34e;个人主页&#xff1a;Meteors.的博客 &#x1f49e;当前专栏&#xff1a; 神经网络&#xff08;随缘更新&#xff09; ✨特色…

『OPEN3D』1.5.4 动手实现点云八叉树(OctoTree)最近邻

本专栏地址: https://blog.csdn.net/qq_41366026/category_12186023.html?spm=1001.2014.3001.5482 在二维和三维空间中,我们可以采用四叉树(Quad tree)和八叉树(Octree)这两种特定的数据结构来处理空间分割。这些树形结构可以看作是K-d树在不同维度下的扩展。…

SpringBoot的多环境开发

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…

JS - 闭包(Closure)

目录 1&#xff0c;什么是闭包2&#xff0c;创建闭包3&#xff0c;如何销毁闭包2.1&#xff0c;自动创建的闭包2.2&#xff0c;手动创建的闭包 4&#xff0c;闭包的特点和使用场景3.1&#xff0c;特点3.2&#xff0c;使用场景避免全局变量污染函数柯里化 5&#xff0c;闭包经典…

【高级网络程序设计】Block1总结

这一个Block分为四个部分&#xff0c;第一部分是Introduction to Threads and Concurrency &#xff0c;第二部分是Interruptting and Terminating a Thread&#xff0c;第三部分是Keep Threads safety&#xff1a;the volatile variable and locks&#xff0c;第四部分是Beyon…

【算法系列篇】递归、搜索和回溯(四)

文章目录 前言什么是决策树1. 全排列1.1 题目要求1.2 做题思路1.3 代码实现 2. 子集2.1 题目要求2.2 做题思路2.3 代码实现 3. 找出所有子集的异或总和再求和3.1 题目要求3.2 做题思路3.3 代码实现 4. 全排列II4.1 题目要求4.2 做题思路4.3 代码实现 前言 前面我们通过几个题目…

提升研究效率,尽在EndNote 21 forMac/win!

在科研领域&#xff0c;文献管理是一项至关重要的任务。研究人员需要快速而准确地收集、整理和引用大量的文献资料&#xff0c;以支持他们的研究工作。而EndNote 21作为一款功能强大的文献管理软件&#xff0c;能够帮助研究人员高效地管理文献资源&#xff0c;提升研究工作的效…

【Linux基础】1. Linux 启动过程

文章目录 【 1. 内核的引导 】【 2. 运行init 】 运行级别 【 3. 系统初始化 】【 4. 建立终端 】【 5. 用户登录系统 】【 6. 图形模式与文字模式的切换方式 】【 7. Linux关机 】 Linux系统的启动过程分为 5个阶段&#xff1a; &#xff08;1&#xff09;内核的引导。 &#…

Java中线程状态的描述

多线程-基础方法的认识 截止目前线程的复习 Thread 类 创建Thread类的方法 继承Thread类,重写run方法实现Runnable接口,重写run方法使用匿名内部类继承Thread类,重写run方法使用匿名内部类实现Runnable接口,重写run方法使用Lambda表达式 run方法中的所有的代码是当前线程对…

第二百一十六回 分享一种更新页面数据的方法

文章目录 1. 概念介绍2. 实现方法2.1 实现思路2.2 实现方法3. 示例代码4. 内容总结我们在上一章回中介绍了"如何创建单例模式"相关的内容,本章回中将 分享一种更新页面数据的方法.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍一种更新页…

测站坐标系统 -- 东北天(ENU)坐标系、站心坐标系

目录 一、测站坐标系的定义 二、测站坐标系与地心地固坐标系的转换 2.1地心地固坐标系转到测站坐标系 2.2测站坐标系转到地心地固坐标系 三、方位角和高度角的计算 一、测站坐标系的定义 测站坐标系统以观测站( 或地面上某一个观测点 ) 为中心建立坐标系统&#xff0c;将这…

SQL基础:记录的基本操作

在上一节中&#xff0c;我们进行了表的新建&#xff0c;这一节我们讲一下记录的增加、修改、删除、查询。 增加 增加即使用insert语句&#xff0c; INSERT INTO users (user_id, username, password, email) VALUES (2, jane_smith, pass456, janeexample.com);查看插入的数…

代码随想录第三十六天(一刷C语言)|背包问题理论基础分割等和子集

创作目的&#xff1a;为了方便自己后续复习重点&#xff0c;以及养成写博客的习惯。 一、背包问题 题目&#xff1a;有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装…

Docker的安装及使用

目录 安装Docker 安装yum工具 更新本地镜像源 安装docker 启动docker 关闭防火墙 docker启动命令 配置镜像加速 docker的使用 拉取nginx 查看本地镜像 把镜像文件nginx导出成tar文件 查看是否导出成功 ​编辑 删除本地镜像nginx:latest 导入镜像文件nginx 拉取…

Java项目-瑞吉外卖项目优化Day1

创建新仓库 push项目 新建分支v1.0做优化 导入Redis相关配置 导入坐标。 实现配置类&#xff0c;重写序列化器&#xff0c;也可以直接用StringRedisTemplate。 application.xml配置&#xff1a; 实现缓存短信验证码 将手机号与验证码存进redis。 从redis中获取验证码&…