2 使用Python训练和部署低精度模型 张校捷
使用Python训练和部署低精度模型 (TensorFlow版) 张校捷 2019/9/21 目录 CONTENTS 低精度的概念和意义 TensorFlow的FP16模型 TensorRT的FP16/Int8模型 总结 1 低精度的概念和意义 实数的16-bit半精度浮点数和8-bit定点数表示 使用低精度的意义 深度学习模型中实数的表示 FP32: E8M23 FP16: FP16: E5M10 Int8 (TPU, tf.bfloat16) (tf.float32) (GPU, tf.float16) 低精度浮点数的优点 1.节约内存/显存的使用(FP16为原来的1/2,int8为原来的1/4) 2.特殊的硬件专门用于低精度浮点数的计算加速(TensorCore) Model Speedup BERT Q&A 3.3X speedup GNMT 1.7X 5X speedup FP16浮点数(E5M10)的表示范围 FP16模型的训练方法 Int8模型的推断过程 2 TensorFlow的FP16模型 实数的16-bit半精度浮点数和8-bit定点数表示 使用低精度的意义 TensorCores适用条件 1. 卷积:K(输入通道),C(输出通道) 2. 通用矩阵乘法(GEMM):MxK,KxN,(M,N,K) FP16: 大小为8x Int8:0 码力 | 24 页 | 981.45 KB | 1 年前3RISC-V 开放架构设计之道 1.0.0
AMOMAXU.W rd,rs2,(rs1) 谓词不等 R VPNE rd,rs1,rs2 谓词小于 R VPLT rd,rs1,rs2 类别 名称 类型 RV32{F|D} ( 单/双精度浮点) 谓词大于等于 R VPGE rd,rs1,rs2 传送 从整数传送 R FMV.W.X rd,rs1 FMV.D.X rd,rs1 谓词与 R VPAND 错误的调试难度;RISC-V 并未像 MIPS 那样采用延迟分支技术,是因为该技术违反 架构和实现分离的原则。同时,本书还介绍 x86、ARM 和 MIPS 的设计,并通过插 入排序和 DAXPY(双精度乘加)程序量化对比它们,突出 RISC-V 的优势,深入阐 释指令集设计对计算机系统的影响。 我们将本书强烈推荐给计算机专业和电子专业数字电路方向的师生,以及处理器 1“一生一芯” 计划是由中 ........................ 32 4 RV32M:乘法和除法指令 ..................................... 44 5 RV32FD:单/双精度浮点数 ................................... 48 6 RV32A:原子指令 ..........................................0 码力 | 223 页 | 15.31 MB | 1 年前3RISC-V 手册 v2(一本开源指令集的指南)
........................................................................ 53 第五章 RV32F 和 RV32D:单精度和双精度浮点数.................................................................... 55 5.1 导言 ............. 113 11.7 “P”标准扩展:封装的单指令多数据(Packed-SIMD)指令 ................................... 114 11.8 “Q”标准扩展:四精度浮点 ................................................................................................ 点,而这对于嵌入式应用可能至关重要。RISC-V编译器得知当前硬件包含哪些扩展后,便 可以生成当前硬件条件下的最佳代码。惯例是把代表扩展的字母附加到指令集名称之后作 为指示。例如,RV32IMFD将乘法(RV32M),单精度浮点(RV32F)和双精度浮点 (RV32D)的扩展添加到了基础指令集(RV32I)中。 继续用我们刚才的类比来说,RISC-V提供的是菜单,而不是一顿应有尽有的自助餐。 主厨只需要烹饪顾客需要的东西(而不0 码力 | 164 页 | 8.85 MB | 1 年前32020美团技术年货 算法篇
蒸馏压缩 BERT 模型,优化排序服务 架构支持蒸馏模型上线。 模型轻量化 为了解决 BERT 模型参数量过大、前向计算耗时的问题,常用轻量化方法有三种: ● 知识蒸馏:模型蒸馏是在一定精度要求下,将大模型学到的知识迁移到另一 个轻量级小模型上,目的是降低预测计算量的同时保证预测效果。Hinton 在 2015 年的论文中阐述了核心思想 [35],大模型一般称作 Teacher Model, 的蒸馏模型都取得了 不错的效果,在保证效果的情况下极大地提升了模型的性能。 ● 模型裁剪:通过模型剪枝减少参数的规模。 算法 < 53 ● 低精度量化:在模型训练和推理中使用低精度(FP16 甚至 INT8、二值网络) 表示取代原有精度(FP32)表示。 在 Query 意 图 分 类 任 务 [2] 中, 我 们 基 于 MT-BERT 裁 剪 为 4 层 小 模 型 达 到 了 督学习 通过频繁序列产生候选集,并通过计算紧密度和自由度指标进行筛选,这种方法虽然 可以产生充分的候选集合,但仅通过特征阈值过滤无法有效地平衡精确率与召回率, 现实应用中通常挑选较高的阈值保证精度而牺牲召回。先进的新词挖掘算法大多为有 监督学习,这类算法通常涉及复杂的语法分析模型或深度网络模型,且依赖领域专家 设计繁多规则或大量的人工标记数据。远程监督学习通过开源知识库生成少量的标记0 码力 | 317 页 | 16.57 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 10 从稀疏数据结构到量化数据类型
对于右边这种内存瓶颈的循环体,从 4 字节的 int 改成 int8_t ,理论上可以增加 4 倍速度! • 这就是量化数据类型的思想,把占空间大的数据 类型转换成较小的(损失一定精度,换来性能) 。 • 因此如果你的程序不需要那么高精度,可以考虑 用小点的数据类型。 8 个 bit 合并进一个 int8_t :每个占据 1/8 字节 • 考虑到我们的 i % 2 只可能是 0 和 1 ,也就是 实际只占据了 double :每个占据 8 字节 • 很多 CFD 玩家喜欢用 double 表示浮点 数。 • 然而 double 是双精度浮点数,会占据 8 字节!虽然精度更高,但是在不需要精度 的图形学应用中,就非常浪费内存带宽。 使用 float :每个占据 4 字节 • 可以用单精度的 float ,只占据 4 字节。 • 因为这里的循环体是内存瓶颈( membound ), 就直接加快了 2 倍! 0.01 = 1234000.0 ( 0.1 加上去没有任何变化),是因为 第一个数太大了,要表示 1234000.01 需要 9 位有效位数。 • 而单精度浮点数 float 的底数有 23 位,指数有 8 位(图 1 )。 • 双精度浮点数 float 的底数有 52 位,指数有 11 位(图 2 )。 double: float: http://c.biancheng.net/view/3140 码力 | 102 页 | 9.50 MB | 1 年前32022年美团技术年货 合辑
概述 YOLOv6 是美团视觉智能部研发的一款目标检测框架,致力于工业应用。本框架 同时专注于检测的精度和推理效率,在工业界常用的尺寸模型中:YOLOv6-nano 在 COCO 上精度可达 35.0% AP,在 T4 上推理速度可达 1242 FPS;YOLOv6-s 在 COCO 上精度可达 43.1% AP,在 T4 上推理速度可达 520 FPS。在部署方面, YOLOv6 支 持 (MNN、TNN、 NCNN)等不同平台的部署,极大地简化工程部署时的适配工作。 目前,项目已开源至 Github,传送门:YOLOv6。欢迎有需要的小伙伴们 Star 收 藏,随时取用。 精度与速度远超 YOLOv5 和 YOLOX 的新框架 目标检测作为计算机视觉领域的一项基础性技术,在工业界得到了广泛的应用,其 中 YOLO 系列算法因其较好的综合性能,逐渐成为大多数工业应用时的首选框 最具代表性,但在实际使用中,我们发现上述框架在速度和精度方面 仍有很大的提升的空间。基于此,我们通过研究并借鉴了业界已有的先进技术,开发 了一套新的目标检测框架——YOLOv6。该框架支持模型训练、推理及多平台部署 等全链条的工业应用需求,并在网络结构、训练策略等算法层面进行了多项改进和优 化,在 COCO 数据集上,YOLOv6 在精度和速度方面均超越其他同体量算法,相关 结果如下图 10 码力 | 1356 页 | 45.90 MB | 1 年前3TiDB中文技术文档
书栈(BookStack.CN) 构建 字符串函数 数值函数与操作符 日期和时间函数 位函数和操作符 Cast 函数和操作符 加密和压缩函数 信息函数 JSON 函数 GROUP BY 聚合函数 其他函数 精度数学 SQL 语句语法 数据定义语句 (DDL) 数据操作语句 (DML) 事务语句 数据库管理语句 Prepared SQL 语句语法 实用工具语句 JSON 支持 Connectors 和 API 表达式求值的类型转换 操作符 控制流程函数 字符串函数 数值函数与操作符 日期和时间函数 位函数和操作符 Cast 函数和操作符 加密和压缩函数 信息函数 JSON 函数 GROUP BY 聚合函数 其他函数 精度数学 SQL 语句语法 数据定义语句 (DDL) 数据操作语句 (DML) 事务语句 数据库管理语句 Prepared SQL 语句语法 实用工具语句 TiDB SQL 语法图 JSON 支持 Connectors 注意这里没有单引号或者双引号,是一个数字。例如 20170824104520 表 示为 '2017-08-24 10:45:20' 。 DATETIME 或者 TIMESTAMP 值可以接一个小数部分,用来表示微秒(精度最多到小数点后 6 位),用小数点 . 分隔。 Dates 如果 year 部分只有两个数字,这是有歧义的(推荐使用四个数字的格式),TiDB 会尝试用以下的规则来 解释: year 值如果在0 码力 | 444 页 | 4.89 MB | 5 月前3Blender v4.0 参考手册(简体中文版)
API中的矩阵和向量改进,新的 插件,以及⼤量bug修复。 2.63 -- 2012年4⽉: 合并Bmesh到主⼲,开启n边多边形的全⾯⽀持,雕刻隐藏,为Cycles准备 的全景相机,镜⼦球环境纹理和浮点数精度纹理,渲染层遮罩层、环境光 遮蔽和背景图像与渲染层的视⼜显⽰,新增新的导⼊和导出插件,和 150 处bug 修复。 2.64 -- 2012年10⽉: 遮罩编辑器,改进的运动跟踪器,OpenColorIO,Cycles渲染器改进,序 的数据块和属性的数据路 径。 需要注意在⼤多数情况下,最好根据正⽂⽽不是名称来访问值。 拖拽 Ctrl -- 拖动时吸附倍数步长。 Shift -- 精确控制拖拽的值。 Shift-Ctrl -- 伴随⾼精度的移动物体时的精确捕捉约束。 ⽂本编辑 Home -- 转到该⾏的开头。 End -- 转到该⾏的结尾。 Left, Right -- 把光标移动⼀个字符距离。 Ctrl-Left, Ctrl-Right 直⽅图 ⼀样,但允许从⼀条线中获得采样数据。 采样线 Used to draw a line to read the sample data from. 采样 全采样 对每个像素采样。 精度 Proportion of image pixels to sample if Full Sample is disabled. 叠加层 The Overlays pop-over configures0 码力 | 5352 页 | 306.21 MB | 1 年前3Blender v3.6 参考手册(简体中文版)
API中的矩阵和向量改进,新的插 件,以及⼤量bug修复。 2.63 -- 2012年4⽉: 合并Bmesh到主⼲,开启n边多边形的全⾯⽀持,雕刻隐藏,为Cycles准备 的全景相机,镜⼦球环境纹理和浮点数精度纹理,渲染层遮罩层、环境光 遮蔽和背景图像与渲染层的视⼜显⽰,新增新的导⼊和导出插件,和 150 处bug 修复。 2.64 -- 2012年10⽉: 遮罩编辑器,改进的运动跟踪器,OpenCo 的数据块和属性的数据路 径。 需要注意在⼤多数情况下,最好根据正⽂⽽不是名称来访问值。 拖拽 Ctrl -- 拖动时吸附倍数步长。 Shift -- 精确控制拖拽的值。 Shift-Ctrl -- 伴随⾼精度的移动物体时的精确捕捉约束。 ⽂本编辑 Home -- 转到该⾏的开头。 End -- 转到该⾏的结尾。 Left, Right -- 把光标移动⼀个字符距离。 Ctrl-Left, Ctrl-Right 调整⼏何体可见的最⼩和最⼤距离。⼏何体近于 开始点 或远于 结束点 将 不会显⽰。 Note 在正交视图中,视⼜使⽤负 结束点 ⽽不是 开始点 。 Warning 较⼤的裁剪范围将允许您同时看到近距离和远距离物体,但会降低深度 精度,从⽽导致伪影。 在某些情况下,⾮常⼤的范围可能会导致依赖于深度缓冲区的操作变得 不可靠,尽管这取决于显卡和驱动程序。 更多信息见 排除深度缓冲区故障 。 局部摄像机 允许此3D视⼜具有⾃⼰的0 码力 | 4850 页 | 304.16 MB | 1 年前3Blender v3.3 参考手册(简体中文版)
API中的矩阵和向量改进,新的插 件,以及⼤量bug修复。 2.63 -- 2012年4⽉: 合并Bmesh到主⼲,开启n边多边形的全⾯⽀持,雕刻隐藏,为Cycles准备 的全景相机,镜⼦球环境纹理和浮点数精度纹理,渲染层遮罩层、环境光 遮蔽和背景图像与渲染层的视⼜显⽰,新增新的导⼊和导出插件,和 150 处bug 修复。 2.64 -- 2012年10⽉: A mask editor was added 的数据块和属性的数据路 径。 需要注意在⼤多数情况下,最好根据正⽂⽽不是名称来访问值。 拖拽 Ctrl -- 拖动时吸附倍数步长。 Shift -- 精确控制拖拽的值。 Shift-Ctrl -- 伴随⾼精度的移动物体时的精确捕捉约束。 ⽂本编辑 Home -- 转到该⾏的开头。 End -- 转到该⾏的结尾。 Left, Right -- 把光标移动⼀个字符距离。 Ctrl-Left, Ctrl-Right 调整⼏何体可见的最⼩和最⼤距离。⼏何体近于 开始点 或远于 结束点 将 不会显⽰。 Note 在正交视图中,视⼜使⽤负 结束点 ⽽不是 开始点 。 Warning 较⼤的裁剪范围将允许您同时看到近距离和远距离物体,但会降低深度 精度,从⽽导致伪影。 在某些情况下,⾮常⼤的范围可能会导致依赖于深度缓冲区的操作变得 不可靠,尽管这取决于显卡和驱动程序。 更多信息见 排除深度缓冲区故障 。 局部摄像机 允许此3D视⼜具有⾃⼰的0 码力 | 4560 页 | 265.10 MB | 1 年前3
共 349 条
- 1
- 2
- 3
- 4
- 5
- 6
- 35