函数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 torch

input = 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博客 可以参考博文对比理解

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024免费mac苹果电脑系统电脑管家CleanMyMac X

macOS已经成为最受欢迎的桌面操作系统之一,它提供了直观、简洁的用户界面,使用户可以轻松使用和管理系统。macOS拥有丰富的应用程序生态系统;还可以与其他苹果产品和服务紧密协作,如iPhone、iPad,用户可以通过iCloud同…

CompleteFuture与Future的比较

CompleteFuture的介绍CompleteFuture的特点CompleteFuture的应用场景CompletableFuture的优缺点Future的介绍Future的特点Future的应用场景Future的优缺点CompletableFuture和Future的区别CompletableFuture和Future的关联关系CompletableFuture和Future的使用示例CompletableF…

基于点云去滤除灰尘的滤波算法调研

背景 激光雷达在恶劣天气下会影响感知识别的精度,造成误差,将灰尘,雨雪误识别为障碍物,为了降低对灰尘的误检,因此调研相关的灰尘滤波算法。 方法1 反射强度滤波+半径异常值移除 Design of a LIOR-Based De-Dust Filter for LiDAR Sensors inOff-Road Vehicles 1 上文中…

卷积神经网络的学习与实现

基于matlab的卷积神经网络(CNN)讲解及代码_matlab中如何查看cnn损失函数-CSDN博客 可以看到与BP神经网络相比,卷积神经网络更加的复杂,这里将会以cnn作为学习案例。 1.经典反向传播算法公式详细推导 这里引用经典反向传播算法公式详细推导_反向目标公…

关联规则 FP-Growth算法

FP-Growth算法 FP-growth 算法思想 FP-growth算法是韩家炜老师在2000年提出的关联分析算法,它采取如下分治策略: 将提供频繁项集的数据库压缩到一棵频繁模式树 (FP-Tree)但仍保留项集关联信息。FP-growth算法是对Apriori方法的改进。生成一个频繁模式而不需要生成…

SQLSERVER数据库主要状态和切换路径

前言 一个SQLSERVER数据库会处于很多种状态,例如 ONLINE 、RESTORING 、RECOVERING 、RECOVERY_PENDING 、SUSPECT、EMERGENCY 、OFFLINE等等。 只有在ONLINE的状态下,数据库才能被正常访问。 下图主要反映了数据库的主要状态之间的切换路径 下面说一…

【MAC】M2 安装mysql

一、docker下载地址 下载地址 二、安装docker完成 三、安装mysql 一、拉取镜像 # 拉取镜像 docker pull mysql# 或者 docker pull mysql:latest# 以上两个命令是一致的,默认拉取的就是 latest 版本的# 我们还可以用下面的命令来查看可用版本: docker…

数据结构(Chapter Two -02)—顺序表基本操作实现

在前一部分我们了解线性表和顺序表概念,如果有不清楚可以参考下面的博客: 数据结构(Chapter Two -01)—线性表及顺序表-CSDN博客 首先列出线性表的数据结构: #define MaxSize 50 //定义顺序表最大长度 typedef struct{ElemType data…

HarmonyOS4.0从零开始的开发教程19HarmonyOS应用/元服务上架

HarmonyOS(十七)HarmonyOS应用/元服务上架 概述 当您开发、调试完HarmonyOS应用/元服务,就可以前往AppGallery Connect申请上架,华为审核通过后,用户即可在华为应用市场获取您的HarmonyOS应用/元服务。 HarmonyOS会…

xxl-job 分布式调度学习笔记

1.概述 1.1什么是任务调度 业务场景: 上午10点,下午2点发放一批优惠券 银行系统需要在信用卡到期还款日的前三天进行短信提醒 财务系统需要在每天凌晨0:10分结算前一天的财务数据,统计汇总 不同系统间的数据需要保持一致,这时…

3.2 内容管理模块 - 课程分类、新增课程、修改课程

内容管理模块-课程分类、新增课程、修改课程 文章目录 内容管理模块-课程分类、新增课程、修改课程一、课程分类1.1 课程分类表1.2 查询树形结构1.2.1 表自连接1.2.2 SQL递归 1.3 Mapper1.4 Service1.5 Controller1.6 效果图 二、添加课程2.1 需求分析2.2 数据表2.2.1 课程基础…

html之CSS的高级选择器应用

文章目录 一、CSS高级选择器有哪些呢?二、高级选择器的应用1、层次选择器后代选择器子选择器相邻兄弟选择器通用兄弟选择器 2、结构伪类选择器(不常用)3、属性选择器E[attr]E[attrval]E[attr^val]E[attr$val]E[attr*val] 一、CSS高级选择器有…

LeetCode 每日一题 Day 13 || BFS

2415. 反转二叉树的奇数层 给你一棵 完美 二叉树的根节点 root ,请你反转这棵树中每个 奇数 层的节点值。 例如,假设第 3 层的节点值是 [2,1,3,4,7,11,29,18] ,那么反转后它应该变成 [18,29,11,7,4,3,1,2] 。 反转后,返回树的根…

NLP论文阅读记录-ACL 2023 | 10 Best-k Search Algorithm for Neural Text Generation

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.相关工作2.1优势2.2 挑战 三.本文方法3.1 并行探索3.2 时间衰变3.3堆修剪3.4 模型得分 四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果 五 总结 前言 用于神经文本生成…

安全生产隐患排查治理信息化系统软件

安全隐患排查系统实现对重大危险源企业、安全隐患信息的登记、整改、复查、分类和统计。系统涵盖了安全隐患排查整治工作的各项基本内容,实现以安全隐患排查整治业务流为主线,处理流程简洁清晰、快速灵活;以排查整治流程为干线,快…

Linux--学习记录(3)

G重要编译参数 -g(GDB调试) -g选项告诉gcc产生能被GNU调试器GDB使用的调试信息,以调试程序编译带调试信息的可执行文件g -g hello.c -o hello编译过程: -E(预处理) g -E hello.c -o hello.i-S(编…

基于springboot+vue 的智能物流管理系统

简介 基于springbootvue 的智能物流管理系统 适用于 设计,课程设计参考与学习用途。仅供学习参考。 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料 **项目编号:springboot074 ** **…

算法专题二:滑动窗口

算法专题二:滑动窗口 一.长度最小的子数组:1.思路一:暴力解法2.思路二:滑动窗口双指针3.GIF题目解析:思路一:思路二: 二.无重复字符的最长子串:1.思路一:滑动窗口2.GIF题…

制作一个多行时正确宽度的Textview,Android Textview 换行时宽度过长 右侧空白区域挤掉页面元素的解决方案

优化 Android 布局:创建自适应宽度的 TextView 引言 在Android应用开发中,布局优化是提升应用性能和用户体验的关键环节之一。特别是对于那些内容密集型的应用,如何高效地展示和管理文本内容成为了一个挑战。最近,在处理一个布局…

【数据结构】模式匹配之KMP算法与Bug日志—C/C++实现

​🌈个人主页:Sarapines Programmer🔥 系列专栏:《数据结构奇遇记》🔖墨香寄清辞:墨痕寄壮志,星辰梦未满。 通幽径心凝意,剑指苍穹势如山。 目录 🌞1. 模式匹配的基本概念…