• 欢迎访问佰阅部落
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

图像分类训练-使用ResNeSt50残差网络分类CIFAR10

人工智能 佰阅 3年前 (2020-07-25) 4500次浏览

参考paperswithcode关于图像分类训练排行榜,我挨个尝试了各种神经网络,其中ResNeSt50残差网络的表现非常令人满意,精度从LetNet的72%提高到了86%左右。查阅资料才发现,虽然在该项目在今年4月份才诞生,但是GitHub已经标星2K多,下面就来具体介绍为啥这么厉害。

0. ResNeSt50残差网络


在测试ResNeSt50后,我也去测试了ResNet,后者内存和CUDA都非常高,而且计算时间比LetNet大多了,前者的CPU消耗很低,在bache_size=128的情况下,只有30%。

因此对CPU要求比其他的都低,资料显示,该模型曾在4月份登顶目标检测/实例分割/全景分割。
项目开源地址:zhanghang1989/ResNeSt
论文参见文章结尾附录。

1. 安装

ResNeSt的作者已经将该模型做成了pypi库,因此安装非常简单。

pip install resnest --pre

2. 使用

from resnest.torch import resnest50
net = resnest50(pretrained=True)

或者使用torch远程加载

import torch
# get list of models
torch.hub.list('zhanghang1989/ResNeSt', force_reload=True)

# load pretrained models, using ResNeSt-50 as an example
net = torch.hub.load('zhanghang1989/ResNeSt', 'resnest50', pretrained=True)

3. 讨论

关于实验背景知识,可以参考上一篇文章。

在分类CIFAR10的训练上,我们继续使用上一篇文章的代码结构,然后直接调用resnest50模型.在《图像分类训练-使用LetNet卷积网络分类CIFAR10》里,最优秀的训练结果是72%的精度。而resnest50模型下,第一个Epoch时就给出了81.3%的精度,10次训练后更是给出了86.66%的精度,结果非常令人满意。


然年继续在上面训练的结果是,把学习率从0.001调整到0.0001时,精度会达到89%左右。

最后再来谈谈训练后的模型大小,LetNet在72%优化精度下,大小为2.12Mb.而resnest50的模型大小为105Mb。这些模型的大小是固定的!这点也是神经网络的特殊之处。

4. 小结

到目前为止我都没有实现99.99%的精度,虽然文献资料摆在那里,但是入手还是比较困难的,目前已经尝试过五六种神经网络了,后续等我理清了排行第一的BiT-L(ResNet)后再来写文章。另外ResNeSt的作者除了resnest50模型外,还有resnest101resnest200resnest269可选,相应的模型体积也倍增,需要更多算力,至于精度提升,实测比较微小。

4. 相关参考


佰阅部落 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:图像分类训练-使用ResNeSt50残差网络分类CIFAR10
喜欢 (3)