提出了MobileNetv3-Large和MobileNetv3-Small两种不同大小的网络结构,主要的区别是通道数的变化与bneck的次数。
网络的创新点:
(1)更新Block(bneck)
(2)使用NAS搜索参数(Neural Architecture Search)
(3)重新设计耗时层结构

与MobileNetv2相比,MobileNetv3的倒残差结构加入了轻量级的注意力机制:

调整方式:特征矩阵的channel等于多少,得到的一维向量就有多少个元素;然后通过两个全连接层得到输出的向量。第一个全连接层,其节点个数为特征矩阵的channel的1/4;。第二个全连接层,其节点个数等于特征矩阵的channel;输出的向量可以理解为对特征矩阵的每一个channel分析出的一个权重关系,对于重要的channel就赋予一个比较大的权重。
利用h-swish代替swish函数:



略

使用NAS搜索出来的网络结构的最后一部分为Original Last Stage,但作者在使用过程中发现这一部分比较耗时,因此对其进行精简为Efficient Last Stage,精简后准确率不变且节省7毫秒时间。


注:112x112x16这一层,输入特征矩阵的channel等于exp size,所以在这一层的倒残差结构里不需要升维,没有1x1的卷积层

文件结构:
定义卷积结构:
定义注意力机制模块:
定义网络的参数配置:
MobileNetv3的倒残差结构:
定义MobileNetv3(large)网络结构:
定义MobileNetv3(large)网络参数:
MobileNetv3(small)同理
下载完成后将其名称改为mobilenet_v3_large.pth,存放在当前文件夹
数据集采用花分类数据集:使用pytorch搭建AlexNet并训练花分类数据集
实例化网络的更改
保存路径更改:
不使用预训练权重:

同样更改导入模块、实例化模块和载入权重部分代码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/182084.html