模型压缩

为了将tensorflow深度学习模型部署到移动/嵌入式设备上,我们应该致力于减少模型的内存占用,缩短推断时间,减少耗电。有几种方法可以实现这些要求,如量化、权重剪枝或将大模型提炼成小模型。

在这个项目中,我使用了 TensorFlow 中的量化工具来进行模型压缩。目前我只使用权重量化来减小模型大小,因为根据 Mac 上的测试结果,完整 8 位转换没有提供额外的好处,比如缩短推断时间。(由于 requant_range 中的错误,无法在 Pixel 上运行完整的 8 位模型)。由于 8 位量化工具不适合 CPU,时间甚至翻了一倍。如果你有兴趣了解更多关于量化的实用建议,可以阅读 Pete Warden 这篇很棒的文章(https://petewarden.com/2017/06/22/what-ive-learned-about-neural-network-quantization/)。

对模型进行权重量化:

  1. 将模型写入协议缓冲区文件。
  2. 从源安装和配置 TensorFlow(https://www.tensorflow.org/install/install_sources)。
  3. 在 TensorFlow 目录下运行下列命令行:
  1. bazel build tensorflow/tools/graph_transforms:transform_graph
  2. bazel-bin/tensorflow/tools/graph_transforms/transform_graph --in_graph=/your/.pb/file  --outputs="output_node_name"  --out_graph=/the/quantized/.pb/file  --transforms='quantize_weights'

以我的项目为例,在量化权重后,预训练的 WaveNet 模型的大小从 15.5Mb 下降到了 4.0Mb。现在可以将这个模型文件移动到安卓项目中的「assets」文件夹。

转载于:https://www.cnblogs.com/bonelee/p/8453052.html

tensorflow 模型压缩相关推荐

  1. bazel tensorflow模型压缩

    准备 msys:https://repo.msys2.org/distrib/x86_64/msys2-x86_64-20200720.exe(windows 安装必备) bazel:https:// ...

  2. 双精度浮点数转换_模型压缩一半,精度几乎无损,TensorFlow推出半精度浮点量化工具包,还有在线Demo...

    鱼羊 发自 凹非寺  量子位 报道 | 公众号 QbitAI 近日,TensorFlow模型优化工具包又添一员大将,训练后的半精度浮点量化(float16 quantization)工具. 有了它,就 ...

  3. TensorFlow Mobilenet SSD模型压缩并移植安卓上以达到实时检测效果

    之前使用TensorFlow object detect API实现了目标检测(14个手势的识别),使用的是轻量级模型Mobilenet-ssd,Mobilenet-ssd本身检测速率相较于其他模型会 ...

  4. tensorflow手机端模型压缩

    最近因为项目的需要,我们需要将tensorflow模型部署到手机端,所以必不可少的就是模型的优化加速和模型压缩,我这个文章主要是为了记录一下使用到的方法. https://github.com/ten ...

  5. 【嵌入式AI】CNN模型压缩(剪枝,量化)详解与tensorflow实验

    1,CNN模型压缩综述 1 模型压缩的必要性及可行性 (1)必要性:首先是资源受限,其次在许多网络结构中,如VGG-16网络,参数数量1亿3千多万,占用500MB空间,需要进行309亿次浮点运算才能完 ...

  6. 将人工智能模型压缩到微控制器中

    将人工智能模型压缩到微控制器中 Squeezing AI models into microcontrollers 当你把人工智能与物联网交叉时,你得到了什么?人工智能事物(AIoT)是一个简单的答案 ...

  7. 降低预测过程计算成本,这些NLP模型压缩方法要知道

    编译 | 凯隐 出品 | AI科技大本营(ID:rgznai100) 近年来,基于谷歌Transformer的语言模型在神经机器翻译,自然语言推理和其他自然语言理解任务上取得了长足进展. 通过多种语言 ...

  8. 对话腾讯AI Lab:即将开源自动化模型压缩框架PocketFlow,加速效果可达50%

    整理 | Jane 出品 | AI科技大本营 [导语]腾讯 AI Lab 机器学习中心今日宣布成功研发出世界上首款自动化深度学习模型压缩框架--PocketFlow,并即将在今年10-11月发布开源代 ...

  9. 性能不打折,内存占用减少90%,Facebook提出极致模型压缩方法Quant-Noise

    对于动辄上百 M 大小的神经网络来说,模型压缩能够减少它们的内存占用.通信带宽和计算复杂度等,以便更好地进行应用部署.最近,来自 Facebook AI 的研究者提出了一种新的模型量化压缩技术 Qua ...

最新文章

  1. 戴尔服务器重装系统优盘启动不了怎么办,U盘重装系统,开机按F12选择USB启动项无法进入PE系统怎么办?...
  2. 如何让弹窗不影响主界面_如何压缩视频大小不影响画质
  3. ML之SVM:随机产生100个点,建立SVM模型,找出超平面方程
  4. android Android-PullToRefresh 下拉刷新
  5. 微信小程序点击按钮实现手机振动功能
  6. 调整latex表格_选择LaTeX还是Word的建议
  7. macos下载的安装包在哪里_macbook任意降级,为您带来mac os完美降级教程
  8. TVP5158的多路复用技术
  9. CCPC-Wannafly Comet OJ 夏季欢乐赛(2019)E
  10. 函数的练习1——python编程从入门到实践
  11. mysql查询单个员工信息_PHP+MySQL实现模糊查询员工信息功能示例
  12. ORACLE建表语句转化为MySQL建表语句
  13. gradle教程_Gradle教程
  14. kubernetes面试题汇总
  15. 深大计算机与软件学院学生,深圳大学
  16. 《有效的单元测试》第三章
  17. android 传感器 频率,Android加速度传感器数值的过滤
  18. Java 8 stream 流获取 list 中最大值、最小值、总和值、平均值
  19. Edge浏览器中不输oneTab的标签整理插件
  20. eval()函数的使用

热门文章

  1. origin数据平滑_独门绝技!Origin挑战绘制细胞分化轨迹热图
  2. vue component created没有触发_详解在Vue中使用TypeScript的一些思考(实践)
  3. mysql 约束 域_MySQL-约束
  4. 安装linux系统结果,Linux 系统安装[Redhat]
  5. python不支持以下哪种数据类型_Python 不支持以下哪种数据类型?
  6. 二叉搜索树的第k个节点java_剑指Offer62:二叉搜索树的第k个结点(Java)
  7. 如何做到微信机器人不封号_微信如何做到一键群发所有群
  8. 字体设置_word字体设置:如何为常用字体设置快捷键
  9. 每天一个linux命令(36):diff 命令
  10. linux下,每次git pull 或者git push都需要输入账号密码的问题以及git remote 的一些基本操作