当前位置:网站首页 > Haskell函数式编程 > 正文

conv2d函数(conv2函数代码)



1.介绍
    ShuffleNet V2也是由旷视科技提出的,它是ShuffleNet v1的升级版(可参见我的一篇博客ShuffleNet 神经网络简介与代码实战),旷视科技是根据四个规则来改进ShuffleNet v1,更加详细的介绍可以参见:ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design。

 
2.模型结构
   下图中分析了ShuffleNet v1和MobileNets V2在GPU和ARM上的耗时分布,从图中可看出Conv操作占了其时间的绝大多数,但Elemwise/Data IO等内存读写密集型操作也占了相当比例的时间,因此,我们在设计网络的时候,不仅要考虑Conv的个数也要考虑其他操作。

aedf12725c5e39f560cafb9742bc106e.png

文中总结了四个准则来指导优化网络:

1)卷积层的输入和输出特征通道数相等时MAC(内存访问消耗时间)最小,此时模型速度最快。

2)过多的group操作会增大MAC,从而使模型速度变慢。

3)模型中的网络分支数量越少,模型速度越快。

4 )element-wise操作所带来的时间消耗远比在FLOPs上的体现的数值要多,因此要尽可能减少element-wise操作。

接下里,我具体来看下图中网络结构的改变,是怎样对应着这四个准则,其中(a)和(b)是ShuffleNet v1文章中两种结构,(c)和(d)则是根据(a)和(b)改进而来。(c)结构相对于(a)结构,增加了channel split操作,就是为了保证concat操作之后满足前面第1)点。(c)中取消了GCconv是为了满足前面第2)点,同时把channel shuffle的操作移到了concat后面,和前面第3)点对应。将将element-wise add操作替换成concat,和和前面第4)点对应。

4bb4de01b3807c00e65cd18822261b50.png

 

3.模型特点

  通过四个上面所提到的四个准则设计网络,而不是盲目的设计网络,这样做的好处,可以减少计算量和运算时间。

 

4.代码实现 pytorch

 
  

 

 

 

到此这篇conv2d函数(conv2函数代码)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • ifstream open函数(ifstream.open返回值)2025-07-05 13:36:09
  • mysql窗口函数有哪些(mysqldos命令窗口)2025-07-05 13:36:09
  • 字符串转编码格式(编码实现字符串转整型的函数)2025-07-05 13:36:09
  • 摩斯密码加密方式(摩斯密码加密解密)2025-07-05 13:36:09
  • 指数和对数的所有公式(指数和对数的所有公式)2025-07-05 13:36:09
  • 反激电路输出电压公式推导(反激电路输出电压计算)2025-07-05 13:36:09
  • 单向链表反转函数(单链表反转问题)2025-07-05 13:36:09
  • 制作启动盘的u盘(制作启动盘的u盘格式是什么)2025-07-05 13:36:09
  • 单片机编程入门基础知识(单片机编程入门基础知识考试题目)2025-07-05 13:36:09
  • pdf界面怎么截图(pdf模式下怎么截图)2025-07-05 13:36:09
  • 全屏图片