计时函数与float32 float16 int8 数据转换
个人整理常用
部分来自 ncnn
计时函数
// window 平台
#include <windows.h>double get_current_time()
{LARGE_INTEGER freq; // 频率LARGE_INTEGER pc; // 计数QueryPerformanceFrequency(&freq);QueryPerformanceCounter(&pc);return pc.QuadPart * 1000.0 / freq.QuadPart; // us
}// android 平台 ios linux 等
#include <sys/time.h>double get_current_time()
{struct timeval tv;gettimeofday(&tv, NULL);return tv.tv_sec * 1000.0 + tv.tv_usec / 1000.0;
}
float32 float16 int8 数据转换
// convert float to half precision floating point
static unsigned short float32_to_float16(float value)
{// 1 : 8 : 23union{unsigned int u;float f;} tmp;tmp.f = value;// 1 : 8 : 23unsigned short sign = (tmp.u & 0x80000000) >> 31;unsigned short exponent = (tmp.u & 0x7F800000) >> 23;unsigned int significand = tmp.u & 0x7FFFFF;// fprintf(stderr, "%d %d %d\n", sign, exponent, significand);// 1 : 5 : 10unsigned short fp16;if (exponent == 0){// zero or denormal, always underflowfp16 = (sign << 15) | (0x00 << 10) | 0x00;}else if (exponent == 0xFF){// infinity or NaNfp16 = (sign << 15) | (0x1F << 10) | (significand ? 0x200 : 0x00);}else{// normalizedshort newexp = exponent + (- 127 + 15);if (newexp >= 31){// overflow, return infinityfp16 = (sign << 15) | (0x1F << 10) | 0x00;}else if (newexp <= 0){// underflowif (newexp >= -10){// denormal half-precisionunsigned short sig = (significand | 0x800000) >> (14 - newexp);fp16 = (sign << 15) | (0x00 << 10) | sig;}else{// underflowfp16 = (sign << 15) | (0x00 << 10) | 0x00;}}else{fp16 = (sign << 15) | (newexp << 10) | (significand >> 13);}}return fp16;
}// convert half precision floating point to float
static float float16_to_float32(unsigned short value)
{// 1 : 5 : 10unsigned short sign = (value & 0x8000) >> 15;unsigned short exponent = (value & 0x7c00) >> 10;unsigned short significand = value & 0x03FF;// fprintf(stderr, "%d %d %d\n", sign, exponent, significand);// 1 : 8 : 23union{unsigned int u;float f;} tmp;if (exponent == 0){if (significand == 0){// zerotmp.u = (sign << 31);}else{// denormalexponent = 0;// find non-zero bitwhile ((significand & 0x200) == 0){significand <<= 1;exponent++;}significand <<= 1;significand &= 0x3FF;tmp.u = (sign << 31) | ((-exponent + (-15 + 127)) << 23) | (significand << 13);}}else if (exponent == 0x1F){// infinity or NaNtmp.u = (sign << 31) | (0xFF << 23) | (significand << 13);}else{// normalizedtmp.u = (sign << 31) | ((exponent + (-15 + 127)) << 23) | (significand << 13);}return tmp.f;
}// round to nearest
static signed char float32_to_int8(float value)
{float tmp;if (value >= 0.f) tmp = value + 0.5;else tmp = value - 0.5;if (tmp > 127)return 127;if (tmp < -128)return -128;return tmp;
}相关文章:
计时函数与float32 float16 int8 数据转换
个人整理常用 部分来自 ncnn 计时函数 // window 平台 #include <windows.h>double get_current_time() {LARGE_INTEGER freq; // 频率LARGE_INTEGER pc; // 计数QueryPerformanceFrequency(&freq);QueryPerformanceCounter(&pc);return pc.QuadPart * 1000…...
自身免疫疾病诊断原料——博迈伦
自身免疫疾病是一类由免疫系统攻击正常组织和器官而引起的疾病。为了准确地诊断和监测自身免疫疾病,需要使用特定的诊断原料来进行实验室检测。这些诊断原料主要包括抗体试剂、抗原试剂和试剂盒等。 抗体试剂是用于检测和定量分析体内免疫系统产生的抗体的化学试剂。…...
cpu温度监测 Turbo Boost Switcher Pro for mac最新
Turbo Boost Switcher Pro是一款Mac电脑上的应用程序,旨在帮助用户控制和管理CPU的Turbo Boost功能。Turbo Boost是Intel处理器中的一项技术,可以在需要更高性能时自动提高处理器的频率。然而,这可能会导致电池消耗更快和温度升高。 以下是T…...
spring 请求 出现实体类大小写不一致 出现的问题
目录 1.问题背景 2.解决方法 但是会存在返回的既有大写也有小写的问题,需要在get方法也添加对应的注解 3.相关资料 1.问题背景 因数据库某字段存储的为json 格式,且数据库字段要求都有客户指定,因为该功能需要和其他项目进行对接。然后出现…...
zaabix实现对nginx监控
本文使用监控模板net.tcp.listen[port]实现监听端口 实验环境: 首先搭建好zabbix-server ,zabbix-agenthttps://mp.csdn.net/mp_blog/creation/editor/132622769?spm1001.2014.3001.9457 而后在zabbix-agent主机上下载一个nginx 登录zabbix网站创建主…...
基于AI视觉的表面缺陷检测设备优势显著,加速制造业数智化转型
作为生产制造过程中不可缺少的一步,表面缺陷检测广泛应用于工业领域,包括3C电子、芯片半导体、食品医药、木材等行业。但随着智能化进程加快,制造工厂生产线的质量检测压力加剧,传统人工表面缺陷检测已经无法满足当前社会较高的检…...
操作系统权限提升(二十六)之数据库提权-MySQL UDF提权
MySQL UDF提权 MySQL介绍 MySQL是最流行的开放源码SQL数据库管理系统,相对于Oracle,DB2等大型数据库系统,MySQL由于其开源性、易用性、稳定性等特点,受到个人使用者、中小型企业甚至一些大型企业的广泛欢迎,MySQL具有…...
基于 IntelliJ 的 IDE 将提供 Wayland 支持
导读对于使用 IntelliJ 开发环境的用户,JetBrains 一直致力于提供原生 Wayland 支持。 JetBrains 正在致力于为基于 IntelliJ 的 IDE 提供 Wayland 支持,以增强 Linux 桌面体验以及在 Windows Subsystem for Linux 下运行。 Wayland 支持功能尚未完成&…...
誉天在线项目~ElementPlus Tag标签用法
效果图 页面展现 <el-form-item label"课程标签"><el-tagv-for"tag in dynamicTags":key"tag"class"mx-1"closable:disable-transitions"false"close"handleClose(tag)"style"margin:5px;">…...
iText实战--Table、cell 和 page event
5.1 使用表和单元格事件装饰表 实现PdfPTableEvent 接口 实现PdfPCellEvent 接口 合并表格和单元格事件 5.2 基本构建块的事件 通用块(Chunk)功能 段落(Paragraph)事件 章节(Chapter)和 区域(…...
WampServer下载安装+cpolar内网穿透实现公网访问本地服务【内网穿透】
文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境,是一组常用来…...
Elasticsearch 入门 索引、分词器
term, match_phrase, match查询 参考 ElasticSearch match, match_phrase, term的区别 term是对输入不分词,进行全文索引查询。存储时是否启用分词器,会影响查询效果match_phase对输入分词,但要求查询时将每个term都搜到,且顺序…...
Android NDK 中有导出 sp智能指针吗?如果没有,可以用什么方法代替 android::sp 智能指针
Android NDK 中有导出 sp智能指针吗?如果没有,可以用什么方法代替 android::sp 智能指针 Author: Lycan Note: 以下问题解答通过大模型生成,主要用于个人学习和备忘,仅供参考,若有错误或者侵权,请联系我修…...
网络爬虫-----爬虫的分类及原理
目录 爬虫的分类 1.通用网络爬虫:搜索引擎的爬虫 2.聚焦网络爬虫:针对特定网页的爬虫 3.增量式网络爬虫 4.深层网络爬虫 通用爬虫与聚焦爬虫的原理 通用爬虫: 聚焦爬虫: 爬虫的分类 网络爬虫按照系统结构和实现技术&#…...
uniapp级联菜单地点区域使用label值,web端el-cascader绑定的value
效果图 一、uniapp uniapp级联菜单地点区域使用label值 1.ui使用 <uni-forms-item label="地址" name="userArea" required><view class="" style="height: 100%;display: flex;align-items: center;">...
合肥先进光源国家重大科技基础设施项目及配套工程启动会纪念
合肥先进光源国家重大科技基础设施项目及配套工程启动会纪念 卡西莫多 合肥长丰岗集里 肥鸭从此别泥塘 先平场地设围栏 进而工地筑基忙 光阴似箭指日争 源流汇智山水长 国器西北扩新地 家校又添新区园 重器托举有群力 大步穿梭两地间 科教兴邦大国策 技术盈身坦荡行…...
力扣第47天--- 第647题、第516题
# 力扣第47天— 第647题、第516题 文章目录 一、第647题--回文子串二、第516题--最长回文子序列 一、第647题–回文子串 逻辑梳理清楚了,就还行。没有想象中那么难。注意遍历顺序,i从大到小。 class Solution { public:int countSubstrings(string …...
dll文件找不到,微软官方地址
dll文件找不到,微软官方地址 文件地址dllMicrosoft Visual C 2008 Redistributable Package ATL 安全更新https://www.microsoft.com/zh-cn/download/details.aspx?id10430Visual C Redistributable for Visual Studio 2012 Update 4https://www.microsoft.com/zh…...
【音视频】FLV封装格式
基本概念 文件头(Header)文件体(Body) flv文件头 主要是看signture和typeflags flv文件体 重点:Tag包数据 Tag结构详细说明 注意: 每个Tag的头字段DataSize只是该Tag下data部分的大小,不包括Tag的header部分的大小 音频 AudioTag Data 所在…...
别再纠结线程池池大小、线程数量了,哪有什么固定公式 | 京东云技术团队
可能很多人都看到过一个线程数设置的理论: CPU 密集型的程序 - 核心数 1 I/O 密集型的程序 - 核心数 * 2 不会吧,不会吧,真的有人按照这个理论规划线程数? 线程数和CPU利用率的小测试 抛开一些操作系统,计算机原…...
Modon与Montage Hotels Resorts合作在埃及拉斯伊尔赫克马引入超豪华酒店品牌
Montage Ras El Hekma(拉斯伊尔赫克马蒙太奇酒店)将在该地中海景区推出首批对外开放销售的品牌住宅,也是该地区的首个Montage(蒙太奇)度假村 总部位于阿布扎比的Modon Holding与Montage Hotels & Resorts…...
Win11系统下JDK1.8(jdk-8u121)环境变量配置保姆级教程,附常见报错排查
Win11系统Java开发环境配置全指南:从安装到故障排查 1. 为什么Java环境配置如此重要? 对于每一位Java开发者来说,正确配置开发环境是迈入编程世界的第一步。想象一下,当你满怀期待地写下第一个"Hello World"程序&#x…...
Linux内存管理全景解析:从伙伴系统到malloc的完整链路
1. 项目概述:从开机到应用,Linux内存管理的全景图刚接触Linux内核开发或者系统调优的朋友,经常会听到“伙伴系统”、“Slab分配器”、“vmalloc”这些名词,感觉它们既神秘又分散。实际上,这些概念串联起来,…...
Spring Scheduling定时任务:从原理到实战的完整指南
1. 项目概述与核心价值在后台系统开发中,定时任务是一个绕不开的经典需求。无论是每天凌晨的数据报表生成、每隔几分钟的缓存刷新,还是每周一次的日志归档,都需要一个稳定、可靠的任务调度机制。早期,很多开发者会选择自己撸袖子干…...
跨境电商作图不纠结!风格全覆盖, AI 工具帮你省超多心
做跨境电商这么多年,最头疼的从来不是选品和运营,而是作图!不同平台风格要求不一样、不同国家审美差异大、小白没设计基础、外包贵还改到崩溃… 相信不少跨境卖家都跟我一样,在作图这件事上踩过无数坑。今天就以老卖家的身份&…...
OpenClaw小龙虾 Windows10一键部署包|小白友好10分钟搞定本地AI智能体
适配系统:Windows10 64 位(纯小白友好版) 核心优势:免命令行、免环境配置、解压即装,内置所有运行依赖,全程可视化操作,新手也能一次成功部署 2026 爆火的开源 AI 智能体! 本文专属&…...
从Java到AI大模型:小白程序员必备转型指南,收藏学习不迷路!
本文为传统Java开发者提供了从入门到精通AI大模型的四步转型路径。首先利用成熟AI接口,其次掌握Langchain和LlamaIndex开发工具,再次深入Agent机制设计自动化流程,最后搭建本地专属模型。作者结合自身经验,分享了实战项目和避坑指…...
手把手教你用STM32F103C8T6和NTC热敏电阻DIY一个水温监测器(附完整代码)
手把手教你用STM32F103C8T6和NTC热敏电阻DIY一个水温监测器(附完整代码) 水温监测在家庭养鱼、咖啡机控制、热水器管理等场景中非常实用。本文将带你从零开始,用最常见的STM32F103C8T6最小系统板和NTC热敏电阻,打造一个低成本、高…...
开题不是写作文,是做设计——百考通AI助你交出一份真实可行的研究蓝图
开题报告是毕业论文或学位研究的“第一道学术关卡”,它不仅需要明确“研究什么”“为何研究”,更要清晰规划“如何研究”。然而,许多学生在撰写过程中常因经验不足而陷入困境:选题空泛、问题意识薄弱、文献综述缺乏主线、研究方法…...
JavaSwing社团管理系统 - MySQL版
文档末尾附 文件地址 📋 项目简介 这是一个基于Java Swing开发的社团管理系统桌面应用程序。系统采用三角色权限设计,包含管理员端、社团负责人端和普通用户端(学生),为高校或机构提供从社团创建审批、成员管理、活动…...
