龙空技术网

图像分类任务不用冷启动,PaddlePaddle一口气发布十大预训练模型

百度AI 268

前言:

当前姐妹们对“centos7安装paddle”大约比较关怀,看官们都想要了解一些“centos7安装paddle”的相关知识。那么小编同时在网上收集了一些有关“centos7安装paddle””的相关文章,希望各位老铁们能喜欢,小伙伴们快快来了解一下吧!

PaddlePaddle在不断增加官方支持的模型的同时,也在关注预训练模型的丰富度。

在过去的版本中,我们已经发布了目标检测Faster-RCNN、MobileNet-SSD、PyramidBox和场景文字识别CRNN-CTC、OCR Attention共计5个预训练模型。

近期,在图像分类领域我们一口气发布了四个系列共十个预训练模型,丰富扩充了预训练模型库,助力用户提高构建模型的效率,大大减轻“炼丹”的烦恼。

主要包括:

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多种操作系统

#如果您希望使用其他安装方式,可以按照官网文档的引导操作:

#

2.git clone

当模型成功克隆后,您可以在fluid/PaddleCV/image_classification下看到用于训练的train.py代码。

2. 加载预训练模型

使用我们之前在ImageNet数据集上训练的预训练模型,可以直接使用相应的结构和权重,将它们应用到您正在面对的问题上。

预训练模型从哪里下载呢?首先进入官方模型介绍链接

下拉到readme页面的最下方:

可以看到一个Released models的表格。在表格的model一列是模型的名称,这个名称是一个超链接,链接对应的是这个模型的预训练权重下载地址,点击模型名称即可下载相应的预训练模型。

在train.py文件中,

1.if pretrained_model:

2. def if_exist(var):

3. return os.path.exists(os.path.join(pretrained_model, var.name))

4.# 加载预训练模型参数

fluid.io.load_vars(exe, pretrained_model, main_program=train_prog, predicate=if_exist)

通过fluid.io.load_vars加载相关预训练参数。

运行train.py, 通过指定 pretrained_model= "下载好的预训练模型路径",加载相应预训练模型进行训练。

例如,加载MobileNet v1预训练模型进行微调:

python train.py --model=MobileNetV1 \ --pretrained_model=${path_to_pretrain_model} \ --batch_size=32 \ --total_images=1281167 \ --class_dim=1000 \ --image_shape=3,224,224 \ --model_save_dir=output/ \ --with_mem_opt=True \ --lr_strategy=piecewise_decay \ --model_category=models_name \ --lr=0.1

您可以更改调整预训练模型参数,来适应具体工作方向,例如检测,图像分类等。

结语

对于想学习算法或者尝试现有框架的人来说,使用预训练模型能够提供很好的帮助。因为时间与计算量方面的诸多限制,不方便随时从头开始训练一个模型,这也正是预训练模型存在的原因。您可以运用预训练作为基准来改进现有模型,或者根据它测试自己的模型。

年后我们还会继续发布几组新的图像分类预训练模型(包括GoogleNet,MobileNetV2,ShuffleNet系列等),敬请期待,也欢迎大家留言告诉我们您最期待的预训练模型。

标签: #centos7安装paddle