卷积神经网络演变:
AlexNet 2012:
5+3=8层,60M个可学习参数
提出Relu,替代Sigmoid
开源cuda-convnet,使GPU训练神经网络成为主流
VGG 2014:
19层,138M个参数
大卷积核替换成多层3x3
GoogLeNet 2015:
22层,7M
ResNet 2015:
提出残差范式:深层网络有更大的潜力,但优化算法难以找到更优的模型解,导致加深网络准确率下降。引入残差范式后,深层网络性能不会弱于浅层网络,且梯度可按照浅层网络反传,优化更容易。
以VGG-19为基础,增加层数,跨层连接
5级,每级分辨率减半,通道倍增
层数:34,50,101,152 。 50之后,用bottleneck替换basic模块:将2个3x3换成1x1+3x3+1x1
残差范式也可理解为多模型集成,2^n个隐式路径
后续改进:局部残差改进ResNet B/C/D ;ResNeXt分组卷积;SEResNet引入通道注意力机制
神经结构搜索 2016+:强化学习方法
NASNet 2017
MnasNet 2018
EfficientNet 2019
RegNet 2020
Vision Transformers 2020
Swin-Transformer 2021
ConvNeXt 2022
将Swin Transformer 模型元素迁移到卷积网络中
轻量化网络:
降低通道数C'和C
减小卷积核尺寸K ,平方级别
MMClassification:
Python推理API:
from mmcls.apis import init_model, inference_model, show_result_pyplot
model = init_model(cfg, pth, device='cuda:0')
result = inference_model(model, img_file)
show_result_pyplot(model, img_file, result)
推理工具:
python demo/image_demo.py img_file cfg ckpt
MIM 为所有OpenMMLab工具提供了统一的命令行接口
mim train mmcls
mim test mmcls