\u200E
PaddleHub
便捷地获取PaddlePaddle生态下的预训练模型,完成模型的管理和一键预测。配合使用Fine-tune API,可以基于大规模预训练模型快速完成迁移学习,让预训练模型能更好地服务于用户特定场景的应用
零基础快速开始
yolov3_darknet53_venus
类别图像 - 目标检测
网络YOLOv3
数据集百度自建数据集
模型概述
YOLOv3是由Joseph Redmon和Ali Farhadi提出的单阶段检测器, 该检测器与达到同样精度的传统目标检测方法相比,推断速度能达到接近两倍。 YOLOv3将输入图像分成S*S个格子,每个格子预测B个bounding box,每个bounding box预测内容包括: Location(x, y, w, h)、Confidence Score和C个类别的概率,因此YOLOv3输出层的channel数为S*S*B*(5 + C)。YOLOv3的loss函数由三部分组成:Location误差,Confidence误差和分类误差。该PaddleHub Module是由800+tag,170w图片,1000w+检测框训练的大规模通用检测模型,在8个数据集上MAP平均提升5.36%,iou=0.5的准确率提升4.53%。对比于其他通用检测模型,使用该Module进行finetune,可以更快收敛,达到较优效果。
选择模型版本进行安装
1.0.0 (最新版)
$ hub install yolov3_darknet53_venus==1.0.0

API

def context(trainable=True,
            pretrained=True,
            get_prediction=False)

提取特征,用于迁移学习。

参数

  • trainable(bool): 参数是否可训练;
  • pretrained (bool): 是否加载预训练模型;
  • get_prediction (bool): 是否执行预测。

返回

  • inputs (dict): 模型的输入,keys 包括 'image', 'im_size',相应的取值为:
    • image (Variable): 图像变量
    • im_size (Variable): 图片的尺寸
  • outputs (dict): 模型的输出。如果 get_prediction 为 False,输出 'head_features'、'body_features',否则输出 'bbox_out'。
  • context_prog (Program): 用于迁移学习的 Program.
def save_inference_model(dirname,
                         model_filename=None,
                         params_filename=None,
                         combined=True)

将模型保存到指定路径。

参数

  • dirname: 存在模型的目录名称
  • model_filename: 模型文件名称,默认为__model__
  • params_filename: 参数文件名称,默认为__params__(仅当combined为True时生效)
  • combined: 是否将参数保存到统一的一个文件中

依赖

paddlepaddle >= 1.6.2

paddlehub >= 1.6.0