函数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,一经查实,立即删除!

相关文章

JsonNode、ObjectNode和ArrayNode

我个人不喜欢fastjson,但是项目中很多地方用到json字符串转换对象但又不想创建pojo 所以使用jackson的JsonNode、ObjectNode和ArrayNode就非常好用,万能对象,这三 个对象是非常全面的,感兴趣的可以看下源码 JsonNode 只读&#x…

机器学习——支持向量机

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

【大数据面试】MapReduce常见问题与答案

目录 介绍下MapReduce MapReduce优缺点 MapReduce架构 MapReduce工作原理 MapReduce哪个阶段最费时间 ✅MapReduce中的Combine是干嘛的?有什么好出? ✅MapReduce环形缓冲区是什么 ✅MapReduce为什么一定要有环型缓冲区 MapReduce为什么一定要有Shuffle过程 MapRedu…

Autosar通信实战系列08-Com模块相关开发问题总结

本文框架 前言1. Com模块重要接口回顾2. 如何让通过Com模块配置改善发送报文周期不准问题?3. UDS 0x28服务关闭或打开APP报文与Com模块的交互?4. 如何在Com层实现接收报文的超时,ARC及信号有效性监控?4.1 信号超时监控的配置4.2 报文ARC校验4.3 报文信号值有效性校验前言 …

linux命令绕过

WAF绕过命令执行 1 命令分隔符2 命令执行绕过2.1 绕过空格2.2 拼接2.3 编码2.4 单引号、双引号绕过2.5 反斜线绕过2.6 通配符绕过 1 命令分隔符 linux: && || & | ; # &&绕过 [rootlocalhost ~]# echo 123&& cat /etc/passwd 123 root:…

拾壹[11],缩放形状匹配,函数CreateScaledShapeModel/FindScaledShapeModel

函数CreateScaledShapeModel 函数功能 创建可缩放比例的形状匹配模板 C形式 LIntExport void CreateScaledShapeModel( const HObject& Template, const HTuple& NumLevels, const HTuple& AngleStart, const HTuple& AngleExtent, const HTuple& …

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

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

threejs 内置变量函数

参考glsl文档 threejs 内置变量 vertex shader highp vec4 gl_PointSize 点大小mediump float gl_Position 不用多说 fragment shader mediump vec4 gl_FragCoord 屏幕坐标系bool gl_FrontFacingmediump vec4 gl_FragColor 最重要的mediump vec4 gl_FragData[gl_MaxDrawBu…

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

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

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

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

springboot的配置文件,以及spring boot自动装配的原理,bean的管理。

配置优先级&#xff1a; spring boot中自此三种格式的配置文件&#xff1a; server.port&#xff1a;8081 server.port&#xff1a;8082 server.port&#xff1a;8083 spring boot还支持两种外部配置&#xff1a; java系统属性&#x…

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

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

【大数据面试】YARN常见问题与答案

目录 介绍下YARN YARN有几个模块 YARN工作机制 YARN有什么优势&#xff0c;能解决什么问题? YARN容错机制 YARN高可用 YARN调度器 YARN中Container是如何启动的? YARN的改进之处&#xff0c;Hadoop3.x相对于Hadoop 2.x? YARN监控 介绍下YARN YARN有几个模块 Yar…

74.搜索二维矩阵

题目 法1&#xff1a;二分搜索 剑指原题 class Solution {public boolean searchMatrix(int[][] matrix, int target) {int m matrix.length, n matrix[0].length;int i 0, j n - 1;while (i < m && j > 0) {if (matrix[i][j] target) {return true;} el…

从零开始在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 代码实现 前言 前面我们通过几个题目…