python mobile_Python 3 & Keras 实现Mobilenet v3

本文介绍了新一代MobileNetV3网络,它结合AutoML和人工调整,提升了移动端的效率。MobileNetV3继承了V1的深度可分离卷积和V2的残差瓶颈结构,并引入了SENet的轻量级注意力模型。通过模块级搜索和网络层微调,V3实现了更高的性能。相比于MobileNetV2,V3-Large达到更高精度,而V3-Small则在保持相近精度的同时显著提高了速度。文章还提供了Keras的实现代码,包括MobileNetV3的基础类和激活函数等关键部分。
摘要由CSDN通过智能技术生成

作为移动端轻量级网络的代表,MobileNet一直是大家关注的焦点。最近,Google提出了新一代的MobileNetV3网络。这一代MobileNet结合了AutoML和人工调整,带来了更加高效的性能。

改进

MobileNetV3的网络模块结构延续了MobileNetV1的深度可分离卷积和MobileNetV2的bottleneck with residual 结构。在此基础上,还加入了SENet中的基于squeeze and excitation结构的轻量级注意力模型。

squeeze

MobileNetV3的结构是通过AutoML技术生成的。在网络结构搜索中,作者结合两种技术:资源受限的NAS与NetAdapt,前者用于在计算和参数量受限的前提下搜索网络的各个模块,所以称之为模块级的搜索(Block-wise Search) ,后者用于对各个模块确定之后网络层的微调。

MobileNetV2在预测部分使用了一个Bottleneck结构来提取特征,这种结构带来了额外的计算开销。MobileNetV3中使用两个1*1的卷积来代替了这个操作。

head

使用swish激活函数代替ReLU能够有效提高网络的精度,但是swish的计算量太大了。因此作者对swish进行了数值近似,提出h-swish(hard version of swish)函数。

activation

approximation

result

网络结构

Large MobileNetV3:

MV3-large

Small MobileNetV3:

MV3-small

效果

与前一代MobieNetV2比较,V3-Large取得了最高的精度,V3-Small 取得了V2近似的精度,速度却快很多。

compare1

compare2

与其他移动端网络比较,MobieNetV3也有着良好的性能。

compare3

Keras实现

首先实现一个基础类,定义了MobileNetV3的激活函数和各种基本结构。

"""MobileNet v3 models for Keras.

# Reference

[Searching for MobileNetV3](https://arxiv.org/abs/1905.02244?context=cs)

"""

from keras.layers import Conv2D, DepthwiseConv2D, Dense, GlobalAveragePooling2D

from keras.layers import Activation, BatchNormalization, Add, Lambda

from keras import backend as K

class MobileNetBase:

def __init__(self, shape, n_class):

self.shape = shape

self.n_class = n_class

def _relu6(self, x):

"""Relu 6

"""

return K.relu(x, max_value=6.0)

def _hard_swish(self, x):

"""Hard swish

"""

return x * K.relu(x + 3.0, max_value=6.0) / 6.0

def _return_activation(self, x, nl):

"""Convolution Block

This function defin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值