首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏AI科技时讯

    乘积量化PQ:将高维向量压缩 97%

    为什么使用乘积量化乘积量化(Product Quantization, PQ)主要用于减少索引的内存占用,这在处理大量向量时尤为重要,因为这些向量必须全部加载到内存中才能进行比较。 第二个重要因素是量化器的训练。量化器需要一个比 k 大几倍的数据集来进行有效的训练。没有乘积量化,这将需要大量的训练数据。 乘积量化是如何工作的 乘积量化是一种高效的数据压缩技术,特别适用于大规模向量数据集。 对比原始向量和量化后的向量所需的存储空间: 原始向量:128维 × 32位 = 4096位 量化向量:8维 × 8位 = 64位 这种压缩带来了64倍的存储空间减少,这是一个显著的差异。 乘积量化的优势 乘积量化技术通过将高维向量映射到较低维的离散空间,显著降低了内存使用量。

    1.4K10编辑于 2024-07-15
  • 来自专栏AI大模型应用开发炼丹房

    乘积量化解析:高效压缩向量数据的智能方案​

    乘积量化(Product Quantization, PQ)​​:分割向量为子段,为每段创建代码本(codebook),压缩表示。在图像数据库中,PQ减少了存储开销50%,同时保持高召回率。​​

    40910编辑于 2025-08-26
  • 来自专栏模型压缩

    INT8量化训练

    【导读】本文聊了两篇做INT8量化训练的文章,量化训练说的与quantization-aware Training有区别,量化训练指的是在模型训练的前向传播和后向传播都有INT8量化。 Pytorch实现卷积神经网络训练量化(QAT) 一、Distribution Adaptive INT8 文章的核心idea是:Unified INT8发现梯度的分布不遵从一个分布即不能像权重一样归于高斯分布 ,Distribution Adaptive INT8认为梯度可以channel-wise看,分成两种分布,一个高斯分布,一个是倒T形分布,这样去minimize量化后梯度与原来梯度的量化误差Error Unified INT8也是类似minimize量化后梯度与原来梯度的量化误差Error的思想,与Distribution Adaptive INT8不同的是通过收敛性分析方程,发现可以通过降低学习率和减少梯度量化误差 Unified INT8也是类似minimize量化后梯度与原来梯度的量化误差Error的思想,Unified INT8是通过收敛性分析方程,发现了可以通过降低学习率和减少梯度量化误差。

    1.6K00发布于 2021-06-06
  • 来自专栏GiantPandaCV

    INT8量化训练

    【GiantPandaCV导读】本文聊了两篇做INT8量化训练的文章,量化训练说的与quantization-aware Training有区别,量化训练指的是在模型训练的前向传播和后向传播都有INT8 Pytorch实现卷积神经网络训练量化(QAT) 一、Distribution Adaptive INT8 ? Unified INT8也是类似minimize量化后梯度与原来梯度的量化误差Error的思想,与Distribution Adaptive INT8不同的是通过收敛性分析方程,发现可以通过降低学习率和减少梯度量化误差 Unified INT8也是类似minimize量化后梯度与原来梯度的量化误差Error的思想,Unified INT8是通过收敛性分析方程,发现了可以通过降低学习率和减少梯度量化误差。 知乎链接: (量化 | INT8量化训练)https://zhuanlan.zhihu.com/p/364782854

    1.4K30发布于 2021-04-30
  • 来自专栏机器学习AI算法工程

    PyTorch模型静态量化、保存、加载int8量化模型

    所以,模型量化就是将训练好的深度神经网络的权值,激活值等从高精度转化成低精度的操作过程,例如将32位浮点数转化成8位整型数int8,同时我们期望转换后的模型准确率与转化前相近。 大体可分为几类: 16位 8位 最常见也相对成熟。各种主流框架和硬件都支持。 8位以下目前而言学界相对玩得多些,工业界有少量支持,但还没有太成熟。 一般来说,对于8量化,全局量化参数影响不明显,但到更低精度,就会对准确率有较大影响。 8量化的挑战有哪些? 1、多后端难点 不同芯片后端的量化算法实现具有不同的特点。 PyTorch模型训练完毕后静态量化、保存、加载int8量化模型 1. pth_to_int.py是对Pytorch的float32模型转成int8模型。 evaluate_model.py里加载int8模型进行推理。 3.

    8.5K42编辑于 2023-02-28
  • 来自专栏深度学习那些事儿

    一起实践量化番外篇——TensorRT-8量化细节

    一起实践量化番外篇——TensorRT-8量化细节 好久不见各位~ 这篇文章很久之前写完一直没有整理,最近终于是整理差不多了,赶紧发出来。 本文接着《必看部署系列-神经网络量化教程:第一讲!》 而后者显式量化是在8版本后才完全支持,具体就是可以加载带有QDQ信息的模型然后生成对应量化版本的engine。 两种量化模型的一些支持情况: 与隐式量化相关性较强的是训练后量化。 QDQ模块会参与训练,负责将输入的FP32张量量化为INT8,随后再进行反量化将INT8的张量在变为FP32。 ,然后在输入A这个op时会经过Q(即量化)操作,这个时候操作A我们会默认是INT8类型的操作,A操作之后会经过DQ(即反量化)操作将A输出的INT8类型的结果转化为FP32类型的结果并传给下一个FP32 Q算子负责FP32->INT8,而DQ算子负责INT8->FP32,被QDQ包起来的算子理所应当就是量化算子(或者说准备被量化、可以被量化的算子,这句话有待揣摩...)。

    4.4K51编辑于 2023-10-19
  • 来自专栏计算机视觉理论及其实现

    笛卡尔乘积

    笛卡尔乘积 笛卡尔(Descartes)乘积又叫直积。设A和B是两个集合,A到B的笛卡尔积用A×B表示,它是所有形如(a,b)的有序对作为元素的组合,其中a∈A,b∈B。

    1.7K20编辑于 2022-09-03
  • 来自专栏阿凯的Excel

    乘积求和及符合某个条件的乘积求和

    如何得到两个数组的乘积求和呢??案例如下: 已知每个地市的销售单价和销售数量,需要知道整个表的销售总金额,怎么做??? 英语好的很好理解,英语不好如我的,百度后就可以很好理解 Sum 求和 Product 乘积 合起来就是SumProduct 乘积后求和 后面接的参数就是N个数组相乘就好!

    6.5K90发布于 2018-03-08
  • 来自专栏yuyy.info技术专栏

    乘积尾零

    本文最后更新于 1163 天前,其中的信息可能已经有所发展或是发生改变。 #include<iostream> #include<cmath> using namespace std; int main(){ long long sum=1; int count=0; for(int i=0;i<100;i++){ long long temp; cin>>temp; sum=sum*temp; long long tt=sum; while(1){ cout<

    41310编辑于 2022-06-28
  • 来自专栏机器学习、深度学习

    CNN模型 int8量化实现方式(二)

    那下面简单的命令就可以完成卸载了 sudo pip uninstall tensorflow_gpu sudo pip3 uninstall tensorflow_gpu 这里介绍一个完全基于 Tensorflow 的模型量化方法 /convert_weights_pb.py 2)完全基于 Tensorflow 的量化 https://blog.csdn.net/u011961856/article/details/76736103 1.源码编译安装tensorflow 可参考 https://blog.csdn.net/u011961856/article/details/76725411 2 编译量化工具 sudo bazel build tensorflow/tools/quantization:quantize_graph 3.模型量化: sudo bazel-bin/tensorflow/tools/quantization ,处于开发阶段,tensorflow lite 是应该已经支持 量化模型的运行, 而 tensorflow 本身的支持很有限,貌似正在集成

    1.9K40发布于 2019-05-26
  • 来自专栏机器学习、深度学习

    CNN模型 INT8 量化实现方式(一)

    当前CNN模型基本都是 float32,将其转换为 INT8 可以降低模型大小,提升速度,精度降低的也不太多。那么在实际中如何实现这个量化了? 这里主要涉及两个问题:1)就是 int8量化;2)就是 int8 模型的使用 基于Caffe-Int8-Convert-Tools进行caffe模型转int8量化 在 NCNN 框架上运行 https ://blog.csdn.net/u014644466/article/details/83278954 首先是基于 Caffe-Int8-Convert-Tools 这个工具进行 int8量化 https://github.com/BUG1989/caffe-int8-convert-tools int8 模型的使用 How to use Int8 inference https://github.com /Tencent/ncnn/pull/487 https://github.com/Tencent/ncnn/wiki/quantized-int8-inference#caffe-int8-convert-tools

    5.2K20发布于 2019-05-26
  • 来自专栏GiantPandaCV

    F8Net:只有8比特乘法的神经网络量化

    【GaintPandaCV导语】F8Net用定点化量化方法对DNN进行量化,在模型推理只有8-bit的乘法,没有16-bit/32-bit的乘法,采用非学习的方法即标准差来定小数位宽。 问题2:为什么要做这样的量化,跟之前的量化有什么不同? ,F8Net想做的事情就是在量化推理中只有int8的乘法,没有16bit/32bit的乘法。 图1 首先来总结一下,F8Net做了什么事情: 1、模型量化推理只有8-bit位宽的乘法; 2、提出一个选择小数位宽的方法,对weight和activation都做定点化; 3、采用PACT的方法优化定点化的参数 做量化不外乎:什么量化方法(线性量化/非线性,对称量化/非对称量化等等),以及这么找数值阈值(也就是截断阈值)。PACT就是非常简单又非常使用的方法。我在做量化训练的时候也是用了PACT。

    1.8K20编辑于 2022-04-06
  • 来自专栏AI智韵

    YoloV8改进策略:RefConv打造轻量化YoloV8利器

    我们使用RefConv替换YoloV8中的卷积,既能提高精度,又能降低运算量,使得模型更加轻量化! spm=1001.2014.3001.5502 YoloV8官方结果 YOLOv8l summary (fused): 268 layers, 43631280 parameters, 0 gradients p3 230 105 0.99 1 0.995 0.801 p8 0.831 Speed: 0.2ms preprocess, 3.8ms inference, 0.0ms loss, 0.8ms postprocess per image 测试结果 YOLOv8l 总结 本文使用RefConv改进了YoloV8。其实我也尝试了很多种改进方式,没有效果。

    39810编辑于 2024-10-22
  • 来自专栏AI SPPECH

    129_量化技术:INT8与动态量化 - 推导压缩的精度损失公式

    和min分别是浮点数的最大值和最小值,b是量化后的位数(如INT88位)。 INT8量化技术详解 3.1 INT8量化原理 INT8量化是指将32位浮点数映射到8位整数的过程。在LLM中,主要对权重和激活值进行INT8量化。 实际实现与部署 7.1 使用PyTorch进行模型量化 PyTorch提供了完整的量化工具链,支持INT8量化和动态量化。 9.2 实验结果 量化方法 位宽 模型大小 推理速度 精度损失 内存占用 FP16基线 16 140GB 100% 0% 140GB INT8静态量化 8 70GB 185% 2.3% 70GB INT8 动态量化 8 70GB 172% 1.5% 72GB LLM.int8() 8 70GB 192% 0.8% 71GB GPTQ 4 35GB 245% 3.1% 35GB AWQ 4 35GB 258%

    59510编辑于 2025-11-16
  • 来自专栏InvQ的专栏

    求奇数的乘积

    package com.test; import java.util.*; import java.io.*; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int r,result=1; while(sc.hasNextInt()){ r=sc.nextInt()

    91910发布于 2020-09-27
  • 来自专栏尾尾部落

    构建乘积数组

    B[i]的值可以看作图中矩阵第 i 行所有元素的乘积。我们可以先算下三角中的连乘,即我们先算出B[i]中的一部分,然后倒过来按上三角中的分布规律,把另一部分也乘进去。

    74030发布于 2018-09-04
  • 来自专栏软件工程

    构建乘积数组

    B[i]的值可以看作上图的矩阵中每行的乘积。 下三角用连乘可以很容求得,上三角,从下向上也是连乘。

    45220编辑于 2022-05-13
  • 来自专栏技术集锦

    【欧拉计划第 8 题】序列中最大的乘积 Largest product in a series

    Problem 8 Largest product in a series The four adjacent digits in the 1000-digit number that have the 问题 8 序列中最大的乘积 1000 位数字中乘积最大的相邻四个数字是 9 9=5832 9∗9∗8∗9=5832 找出 1000 位数字中乘积最大的 13 个相邻数字。 这个数字的乘积是什么? Python 效率会高一些,且思路更简单 我们将所有数字存放到本地的 txt 文件中,使用 Python 导入程序并存放在一个 List 中,此时,从 List 的第 0 位一直到最后,求出十三位数字的乘积并存方到另一个

    38320编辑于 2022-06-03
  • 来自专栏数据结构与算法

    乘积最大

    活动中,主持人给所有参加活动的选手出了这样一道题目: 设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。 输  出     结果显示在屏幕上,相对于输入,应输出所求得的最大乘积(一个自然数)。    <cstring> 4 #include<cmath> 5 #define LL long long 6 using namespace std; 7 int read(int & n) 8

    1.4K100发布于 2018-04-13
  • 来自专栏前端小码农

    构建乘积数组

    构建乘积数组 题目描述 给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n- 示例: 输入: [1,2,3,4,5] 输出: [120,60,40,30,24] 提示: 所有元素乘积之和不会溢出 32 位整数 a.length <= 100000 思路分析 B[i]的意义是A数组不包括 i位置的所有乘积,分为i左边的元素乘积和i右边的所有的元素乘积。 对称遍历 从左往右遍历累乘,结果保存在数组 B 中,此时 B[i] 表示,A[i] 左边所有元素的乘积 然后从右往左遍历累乘,获取A[i] 右边所有元素的乘积 right,用 B[i]乘以right 两边遍历之后得到的 // 初始化 B[0] = 1, 是因为0左边没有元素, 所以乘积为1 B[0] = 1; for(let i = 1; i < len; i++) {

    50330发布于 2020-07-16
领券