2020-05-27 更新

  1. PyTorch已经官方支持了合并操作:

Captain Jack:MergeBN && Quantization PyTorch 官方解决方案​zhuanlan.zhihu.com

2. 有用户爸爸/妈妈(我是讲女权的)在用我的这套代码的时候出现了各种错误,如果还是打算用这套,我将最新版同步到了github上,后面也会不定期同步:

https://github.com/qinjian623/pytorch_toys/blob/master/post_quant/fusion.py​github.com

原文:2018-11-11(本文最后一次更新的时间,神tm的日子...)

融合Conv和BatchNorm是个很基本的优化提速方法,很多框架应该都提供了功能。自己因为一个Weekend Project的需求,需要在PyTorch的Python里直接这个事情给做了。

这个融合优化属于经济上净赚的事情,精度理论上无损(实际上有损,但是很小,既然都提速了,八成要弄量化,这个精度掉的更夸张),速度有大幅度提升,尤其是BN层接的特别多的情况。


融合原理

卷积的工作:

BN的工作:

带入的话可以推出来,融合后的新卷积:

新的卷积就直接顺路完成BN的工作。

测试结果:

在我的笔记本上的测试,CPU版本应该是同步的吧,否则这个结果也是不靠谱的,当然这个结果也不是严肃结果,没平均,没热机。不过能定性说明问题就OK,单位是秒。


import 

mseloss pytorch_PyTorch 卷积与BatchNorm的融合相关推荐

  1. python实现conv(卷积),dept_conv(通道卷积),batchnorm(批量归一化)的前向过程(一)

    神经网络已经在各行各业都得到了普遍的应用,然而在工程落地以及一些验证过程中有必要自己实现一些常用的模块,比如卷积,池化,批量归一化等常规的神经网络模块.尽管现在都是各种调库的天下,自己在做相关工程发现 ...

  2. Automatic Modulation Classification UsingConvolutional Neural Network 解读(基于SPWVD和BJD特征融合的卷积神经网络调制自动)

    摘要:自动调制分类(AMC)在频谱监测和认知无线电中越来越重要.然而,现有的调制分类算法大多忽略了不同特征之间的互补性和特征融合的重要性.为了弥补这些缺陷,该文提出了一种基于卷积神经网络(CNN)的A ...

  3. 卷积神经网络训练模拟量化实践

    为什么80%的码农都做不了架构师?>>>    前言 深度学习在移动端的应用是越来越广泛,由于移动端的运算力与服务器相比还是有差距,所以在移动端 部署深度学习模型的难点就在于如何保证 ...

  4. MobileNets:用于移动视觉应用的高效卷积神经网络

    MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications[翻译] {howarda,meng ...

  5. 注意力机制又一大作!DCANet:学习卷积神经网络的连接注意力

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 [导读]今天给大家分享一篇关于注意力机制方面的优秀论文,该论文提出了深度连接注意力网络(DCA ...

  6. 3*3卷积+1*3卷积+3*1卷积=白给的精度提升

    2019-11-28 04:33:41 作者 | BBuf 编辑 | 唐里 ICCV2019: 通过非对称卷积块增强CNN的核骨架 下面要介绍的论文发于ICCV2019,题为「ACNet:Streng ...

  7. 【ICCV-2019】ACNet:通过非对称卷积块增强CNN的核骨架 3*3卷积==>1*3卷积+3*1卷积=白给的精度提升

    论文:https://arxiv.org/pdf/1908.03930v1.pdf 代码:https://github.com/ShawnDing1994/ACN 通过非对称卷积块增强CNN的核骨架 ...

  8. ConvMLP:你见过长得像CNN的MLP吗?UOUIUC提出了用于视觉任务的层次卷积MLP

    关注公众号,发现CV技术之美 本文分享论文『ConvMLP: Hierarchical Convolutional MLPs for Vision』,由 UO&UIUC 提出 ConvMLP: ...

  9. 【CV】MobileNet:使用深度可分离卷积实现用于嵌入式设备的 CNN 架构

    论文名称:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications 论文下载:https:/ ...

最新文章

  1. webpack项目中使用vue
  2. 一名优秀的初创企业员工怎么做好工作计划
  3. 如果两个对象具有相同的哈希码,但是不相等的,它们可以在HashMap中同时存在吗?...
  4. ABBYY FineReader 12中怎样禁用自动处理
  5. Python3 字符串format使用代码示例
  6. Scala学习之特殊符号,及函数
  7. Tomcat 总体结构
  8. 实践卡尔曼滤波--小球追踪
  9. [zz]4.1.5 进程的处理器亲和性和vCPU的绑定
  10. 一个寄存器有几个字节_STM32f103ZET6 学习资料 (连载2 寄存器的操作界限)
  11. PacVim:一个学习vim命令的游戏,再也不怕记不住了!
  12. 常见问题及解决方案(后端篇)
  13. php程序员工具箱v0.6,php程序员工具箱官方版
  14. YY淘宝商品数据库设计
  15. 苹果手机微信消息备份
  16. Educational Codeforces Round 61 (Rated for Div. 2) D. Stressful Training(贪心+二分)
  17. 大数据热的冷思考:无法取代传统的新闻传播科研方法
  18. 四 . LeetCode标签刷题——树/二叉树(一) 算法部分
  19. N76E003合并boot和app
  20. Python课实例5:身体质量指数BMI

热门文章

  1. 20211018 一些特殊矩阵
  2. 20210831 Ubuntu安装Gnome图形界面
  3. Mac终端Terminal使用
  4. Html img 标签
  5. 我曾七次鄙视自己的灵魂
  6. POJ 1655 Balancing Act (求树的重心)【树形DP】(经典)
  7. centos7下nginx配置
  8. 个人日报0701-0703
  9. mysql处理存在则更新,不存在则插入(多列唯一索引)
  10. vs2008 添加头文件路径