\u200E
PaddleHub
便捷地获取PaddlePaddle生态下的预训练模型,完成模型的管理和一键预测。配合使用Fine-tune API,可以基于大规模预训练模型快速完成迁移学习,让预训练模型能更好地服务于用户特定场景的应用
零基础快速开始
dpn131_imagenet
类别图像 - 图像分类
网络DPN
数据集ImageNet-2012
模型概述
DPN(Dual Path Networks) 是 ImageNet 2017 目标定位冠军的图像分类模型,DPN 融合了 ResNet 和 DenseNet 的核心思想。 ResNet 通过跨层参数共享和保留中间特征的方式,可以有效地降低特征冗余度,重复利用已有特征,但缺点在于难以利用高层特征图再挖掘底层特征。 DenseNet 的每一层都在之前所有层的输出中重新提取有用信息,可以有效地利用高层信息再次挖掘底层的新特征,但却存在特征上的冗余。 DPN 有着以上两种拓扑路径的长处,可以共享公共特征,并通过双路径架构保留灵活性来探索新的特征。 该PaddleHub Module结构为 DPN131,基于ImageNet-2012数据集训练,接受输入图片大小为 224 x 224 x 3,支持直接通过命令行或者Python接口进行预测。
选择模型版本进行安装
1.0.0 (最新版)
$ hub install dpn131_imagenet==1.0.0

命令行预测示例

$ hub run dpn131_imagenet --input_path "/PATH/TO/IMAGE"
$ hub run dpn131_imagenet --input_file test.txt

test.txt 存放待分类图片的存放路径

API

 def classification(data)

用于图像分类预测

参数

data:dict类型,key为image,str类型,value为待检测的图片路径,list类型。

返回

result:list类型,每个元素为对应输入图片的预测结果。预测结果为dict类型,key为该图片分类结果label,value为该label对应的概率

预测代码示例

import paddlehub as hub

module = hub.Module(name="dpn131_imagenet")

test_img_path = "path/to/image"

# set input dict
input_dict = {"image": [test_img_path]}

# execute predict and print the result
results = module.classification(data=input_dict)
for result in results:
    print(result)

查看代码

https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/image_classification

依赖

paddlepaddle >= 1.4.0

paddlehub >= 1.0.0