1. ResNet50简介
ResNet50网络是2015年由微软实验室的何恺明提出,获得ILSVRC2015图像分类竞赛第一名。在ResNet网络提出之前,传统的卷积神经网络都是将一系列的卷积层和池化层堆叠得到的,但当网络堆叠到一定深度时,就会出现退化问题。 残差网络的特点是容易优化,并且能够通过增加相当的深度来提高准确率。其内部的残差块使用了跳跃连接,缓解了在深度神经网络中增加深度带来的梯度消失问题。
本教程基于图像分类算法ResNet50的训练和部署到EASY-EAI-Nano(RV1126)进行说明。
2. 准备数据集
2.1 数据集下载
本教程以车辆分类算法为例,数据集的百度网盘下载链接为:
https://pan.baidu.com/s/1pkYm9AA3s3WDM7GecShlbQ 提取码:6666
解压完成后得到以下两个文件夹:
打开可以看到一共10类汽车:
类别名称与类别索引关系如下所示:
类别名称 | 类别索引号 |
SUV | 0 |
BUS | 1 |
family sedan | 2 |
fire engine | 3 |
heavy truck | 4 |
jeep | 5 |
mini bus | 6 |
racing car | 7 |
taxi | 8 |
truck | 9 |
3. ResNet50图像分类训练
3.1 训练源码下载
训练源码的百度网盘下载链接为:
https://pan.baidu.com/s/1slgFo12Hoy0_copi1MFmXg 提取码:6666
得到下图所示目录:
把数据集解压到当前目录:
3.2 训练模型
进入anconda的pyTorch环境,切换到训练源码目录执行以下指令开始训练:
python train.py
执行结果如下图所示:
训练结束后test loss结果如下所示:
训练结束后test accuracy结果如下所示:
生成的最优模型如下所示:
3. 在PC端测试模型
在训练源码目录执行以下指令,测试模型(生成模型名称不一致则修改predict.py脚本):
python predi