前言

想要读取动态量化后模型的int8分布,但是发现模型内部已经是float,很诧异。。

pytorch量化简介

在深度学习中,量化指的是使用更少的 bit 来存储原本以浮点数存储的 tensor,以及使用更少的 bit 来完成原本以浮点数完成的计算。这么做的好处主要有如下几点:

  • 更少的模型体积,接近 4 倍的减少;
  • 可以更快的计算,由于更少的内存访问和更快的 int8 计算,可以快 2~4 倍。

一个量化后的模型,其部分或者全部的 tensor 操作会使用 int 类型来计算,而不是使用量化之前的 float 类型。当然,量化还需要底层硬件支持,x86 CPU(支持AVX2)、ARM CPU、Google TPU、Nvidia Volta/Turing/Ampere、Qualcomm DSP 这些主流硬件都对量化提供了支持。

发展历程

PyTorch 1.1 : 开始添加 torch.qint8 dtype、torch.quantize_linear 转换函数来开始对量化提供有限的实验性支持。
PyTorch 1.3 : 开始正式支持量化,在可量化的 Tensor 之外,PyTorch 开始支持 CNN 中最常见的 operator 的量化操作,包括:

  1. Tensor 上的函数: view, clone, resize, slice, add, multiply, cat, mean, max, sort, topk;
  2. 常见的模块(在 torch.nn.quant

详解pytorch动态量化相关推荐

  1. python 动态执行 内存变化_详解Pytorch显存动态分配规律探索

    下面通过实验来探索Pytorch分配显存的方式. 实验显存到主存 我使用VSCode的jupyter来进行实验,首先只导入pytorch,代码如下: import torch 打开任务管理器查看主存与 ...

  2. 详解pytorch实现猫狗识别98%附代码

    详解pytorch实现猫狗识别98%附代码 前言 一.为什么选用pytorch这个框架? 二.实现效果 三.神经网络从头到尾 1.来源:仿照人为处理图片的流程,模拟人们的神经元处理信息的方式 2.总览 ...

  3. vue动态设置文字布局方式_详解Vue动态添加模板的几种方法

    动态添加模板需要收集原始数据的页面,这个时候我们需要很多原始数据收集模板,下面给大家详解Vue 动态添加模板的几种方法,希望对你学习这方面知识有所帮助. 通常我们会在组件里的 template 属性定 ...

  4. render注册一个链接组件_详解vue 动态加载并注册组件且通过 render动态创建该组件...

    基于 iview Tabs 组件实现 功能:为每个 tab 动态创建不同的.特定的组件内容,而不需要大量的 import 组件并进行 component 注册 Index.vue import loa ...

  5. python中squeeze函数_详解pytorch中squeeze()和unsqueeze()函数介绍

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  6. 一文详解Mybatis动态SQL,建议收藏

    一文详解Mybatis动态SQL,建议收藏 1.动态 SQL 2.IF 3.choose.when.otherwise 4.where 5.set 6.trim 7.SQL片段 8.foreach 1 ...

  7. YOLOV1详解——Pytorch版

    YOLOV1详解--Pytorch版 1 YOLOV1 1 数据处理 1.1 数据集划分 1.2 读入xml文件 1.3 数据增强 2 训练 2.1 Backbone 2.2 Loss 2.3 tra ...

  8. 超详解pytorch实战Kaggle比赛:房价预测

    详解pytorch实战Kaggle比赛:房价预测 教程名称 教程地址 机器学习/深度学习 [李宏毅]机器学习/深度学习国语教程(双语字幕) 生成对抗网络 [李宏毅]生成对抗网络国语教程(双语字幕) 目 ...

  9. 极智AI | 量化实现分享二:详解 KL 对称量化算法实现

      欢迎关注我的公众号 [极智视界],回复001获取Google编程规范   O_o   >_<   o_O   O_o   ~_~   o_O   大家好,我是极智视界,本文剖析一下 K ...

最新文章

  1. Java11 新特性
  2. leetcode1090. 受标签影响的最大值(贪心算法)
  3. java writebytes()_Java ObjectOutputStream writeBytes()方法与示例
  4. codis codis-ha主从切换后服务器标记为offline
  5. 算法导论 - 函数的增长。
  6. php 测试数据整数,PHP中将字符串转化为整数(int) intval() printf() 性能测试
  7. JSON如何序列图片
  8. java hashtable 修改_Java Hashtable computeIfAbsent()用法及代码示例
  9. 笨办法学R编程(4)
  10. springboot菜鸟入门
  11. wps如何使用ppt美化大师_WPS的ppt一键美化软件怎么用
  12. Adobe Creative Cloud官方卸载工具
  13. 网站ICP备案和公安备案流程
  14. Sorted Adjacent Differences
  15. 物联网通信技术|课堂笔记|week8|网络安全学习|加密逻辑|加密算法
  16. matlab线性代数(diag)
  17. 博弈论——2.4古诺模型练习题
  18. 数字逻辑课程设计电子钟
  19. discuz gbk php在utf8,Discuz从GBK转码UTF-8的最佳方法
  20. Android-MVP模式详解,一篇文章帮你解答

热门文章

  1. socket.io实现聊天功能——第一章 、群聊
  2. .net平台SqlSuger学习之旅——1、安装SqlSugar
  3. 一位游戏大厂测试的一些知识分享
  4. 噩梦射手(SurvivalShooter)教程(二)
  5. Java使用465端口发送邮件(绕过25端口限制)
  6. 【重庆大学917计算机专业基础综合】复习攻略
  7. 为什么计算机屏幕出现黄色,电脑为什么会出现显示器屏幕发黄
  8. 写一个块linux设备驱动
  9. HDOJ 4239 - Decoding EDSAC Data 模拟
  10. python五分制转分数档_五分制绩点换算四分制(5.0绩点计算器在线)