PaddlePaddle在不断增加官方支持的模型的同时,也在关注预训练模型的丰富度。
在过去的版本中,我们已经发布了目标检测Faster-RCNN、MobileNet-SSD、PyramidBox和场景文字识别CRNN-CTC、OCR Attention共计5个预训练模型。
近期,在图像分类领域我们一口气发布了四个系列共十个预训练模型,丰富扩充了预训练模型库,助力用户提高构建模型的效率,大大减轻“炼丹”的烦恼。
下载安装命令
CPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle
GPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu
MobileNet v1
针对亟需在移动端应用深度学习技术的需求,MobileNet v1在存储空间和能耗低的地方表现优秀,在损失精度很小的情况下,计算量,存储空间,准确率方面都有明显提升。
ResNet 系列模型
ResNet创新性的提出了残差结构,一举在ILSVRC2015比赛中取得冠军,top5错误率为3.57%。斯坦福大学的Joyce Xu将ResNet称为「真正重新定义了我们看待神经网络的方式」的三大架构之一。
在最新发布的PaddlePaddle 预训练模型包括有ResNet50,ResNet101和ResNet152。
SE_ResNet 系列模型
SE 全称 Sequeeze-and-Excitation,在ILSVRC 2017 的分类项目中取得 了第一名的成绩。在 ImageNet 数据集上将 top-5 错误率从原先的最好成绩 2.991% 降低到 2.251%。
在最新发布的PaddlePaddle 预训练模型包括有SE_ResNeXt50_32x4d和SE_ResNeXt101_32x4d。
VGG 系列模型
VGGNet是牛津大学计算机视觉组和DeepMind公司共同研发一种深度卷积网络,2014年在ILSVRC比赛上获得了分类项目的第二名和定位项目的第一名。
在最新发布的PaddlePaddle预训练模型包括有VGG11,VGG13,VGG16,VGG19。
PaddlePaddle****复现结果
以上预训练模型均经过官方测试验证,在精度上皆达到了应用要求。
您可以在他们的基础上进行开发,省却自己训练参数的过程,具体加载方式参考使用说明书。
Model
top-1/top-5 accuracy
VGG11
69.22%/89.09%
VGG13
70.14%/89.48%
VGG16
72.08%/90.63%
VGG19
72.56%/90.83%
MobileNetV1
70.91%/89.54%
ResNet50
76.35%/92.80%
ResNet101
77.49%/93.57%
ResNet152
78.12%/93.93%
SE_ResNeXt50_32x4d
78.50%/94.01%
SE_ResNeXt101_32x4d
79.26%/94.22%
PaddlePaddle预训练模型使用说明书
1. 安装PaddlePaddle和模型库
在PaddlePaddle的模型库中已经包含了最新的相关训练代码,经过简单的配置与加载,即可快速部署研发,首先请安装最新版的PaddlePaddle并且下载PaddlePaddle模型库:
pip install -U paddlepaddle
#推荐使用pip方式安装,目前支持Windows、MacOS、CentOS、Ubuntu多种操作系统
#如果您希望使用其他安装方式,可以按照官网文档的引导操作:
#http://www.paddlepaddle.org/documentation/docs/zh/1.2/beginners\_guide/install/index\_cn.html
git clone https://github.com/PaddlePaddle/models.git
当模型成功克隆后,您可以在fluid/PaddleCV/image_classification下看到用于训练的train.py代码。
2. 加载预训练模型
使用我们之前在ImageNet数据集上训练的预训练模型,可以直接使用相应的结构和权重,将它们应用到您正在面对的问题上。
预训练模型从哪里下载呢?首先进入官方模型介绍链接
https://github.com/PaddlePaddle/models/tree/develop/fluid/PaddleCV/image\_classification
下拉到readme页面的最下方:
可以看到一个Released models的表格。在表格的model一列是模型的名称,这个名称是一个超链接,链接对应的是这个模型的预训练权重下载地址,点击模型名称即可下载相应的预训练模型。
在train.py文件中,
通过fluid.io.load_vars加载相关预训练参数。
运行train.py, 通过指定 **pretrained_model= "****下载好的预训练模型路径"**,加载相应预训练模型进行训练。您可以更改调整预训练模型参数,来适应具体工作方向,例如检测,图像分类等。
例如,加载MobileNet v1预训练模型进行微调:
结语
对于想学习算法或者尝试现有框架的人来说,使用预训练模型能够提供很好的帮助。因为时间与计算量方面的诸多限制,不方便随时从头开始训练一个模型,这也正是预训练模型存在的原因。您可以运用预训练作为基准来改进现有模型,或者根据它测试自己的模型。
年后我们还会继续发布几组新的图像分类预训练模型(包括GoogleNet,MobileNetV2,ShuffleNet系列等),敬请期待,也欢迎大家留言告诉我们您最期待的预训练模型。
>> 访问 PaddlePaddle 官网,了解更多相关内容。
下载安装命令
CPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle
GPU版本安装命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu