ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

PaddleHub 图像分类模块 vgg11_imagenet 使用指南:基于 ImageNet-2012 的 VGG11 预训练模型实战

PaddleHub 图像分类模块 vgg11_imagenet 使用指南:基于 ImageNet-2012 的 VGG11 预训练模型实战 人工智能大模型微调模型推理服务【免费下载链接】PaddleFormersPaddleFormers is an easy-to-use library of pre-trained large language model zoo based on PaddlePaddle.项目地址https://gitcode.com/gh_mirrors/pa/PaddleFormers点击查看免费下载本指南围绕 PaddleFormers 仓库中 PaddleHub 图像分类模块vgg11_imagenet展开完整讲解该模块的基本信息、安装依赖、命令行与 Python 接口两种预测方式并结合仓库源码剖析其底层调用链与参数语义。读完本文你将能够在本地环境中独立完成 VGG11 分类模型的安装、图片推理与结果解析并理解 PaddleHub Module 的可运行runnable与可服务化serving机制。一、模块基本信息vgg11_imagenet是 PaddleHub 提供的一个图像分类image classification模块网络结构为 VGG11基于 ImageNet-2012 数据集训练而成。其核心元信息如下表所示来源于 modules/image/classification/vgg11_imagenet/README_en.mdModule Namevgg11_imagenetCategoryimage classificationNetworkVGGDatasetImageNet-2012Fine-tuning supported or notNoModule Size507MBLatest update date-Data indicators-VGG 网络背景VGGVisual Geometry Group系列模型由牛津大学视觉几何组与 DeepMind 于 2014 年提出是一系列用于图像分类任务的卷积神经网络。该系列模型系统性地探索了网络深度与性能之间的关系通过堆叠小尺寸卷积核3×3构建更深层网络实验证明网络越深、性能越好。时至今日VGG 仍被大量图像任务作为特征提取的 Backbone 骨干网络使用。本模块采用 VGG 家族中最轻量的 VGG11 结构接受输入图片大小为224 × 224 × 3宽 × 高 × 通道输出该图片在 ImageNet 类别上的分类概率分布。二、安装与环境依赖1、环境依赖运行该模块前需要先确认本地环境满足以下依赖版本paddlepaddle 1.4.0PaddlePaddle 深度学习框架本模块的模型推理基于其计算图执行。paddlehub 1.0.0PaddleHub 模型管理工具负责模块的下载、安装与调用。PaddleHub 的详细安装步骤可参考 PaddleHub 安装指南。由于模块依赖较老版本的框架接口若在新版本 PaddlePaddle 动态图默认开启的环境下运行仓库中的兼容层已做了静态图执行保护见下文源码分析部分。2、安装模块安装命令非常简单$ hub install vgg11_imagenet安装时若遇到问题可以参考各平台的快速上手文档Windows 快速上手Linux 快速上手Mac 快速上手此外PaddleHub 也支持指定版本号安装。该模块当前仅有 1.0.0 一个发布版本可显式指定$ hub install vgg11_imagenet1.0.0三、命令行预测1、基本用法安装完成后可以通过 PaddleHub 的命令行指令直接对单张图片进行分类$ hub run vgg11_imagenet --input_path /PATH/TO/IMAGE其中/PATH/TO/IMAGE需要替换为本地图片的绝对路径。PaddleHub 命令行指令的完整说明见 PaddleHub 命令行指令文档。2、命令行的底层执行链从源码角度理解hub run命令由 paddlehub/commands/run.py 中的RunCommand类处理。其执行流程大致如下将命令行第一个参数视为模块名或本地模块目录构造Module对象通过module.is_runnable检查该模块是否可运行——该属性定义在 paddlehub/module/module.py其内部会沿类的继承链查找被runnable装饰的方法_run_func找到则返回True调用被装饰的run_cmd方法并把剩余命令行参数传入解析。对图像分类模块而言run_cmd实现在 paddlehub/module/cv_module.py 的ImageClassifierModule中它使用argparse定义了以下参数参数类型默认值说明--input_pathstr必填待分类图片的路径属于 Input options--top_kint1输出概率最高的前 k 个分类结果属于 Config options因此如果你想一次查看图片最可能的多个类别可以使用$ hub run vgg11_imagenet --input_path /PATH/TO/IMAGE --top_k 5run_cmd最终调用self.predict(images[args.input_path], top_kargs.top_k)完成推理并打印结果见 paddlehub/commands/run.py 的print(result)。四、Python 接口预测1、预测代码示例在 Python 脚本中调用该模块同样十分简洁模块文档给出的标准示例如下import paddlehub as hub import cv2 classifier hub.Module(namevgg11_imagenet) test_img_path /PATH/TO/IMAGE input_dict {image: [test_img_path]} result classifier.classification(datainput_dict)其中hub.Module(namevgg11_imagenet)会按名称从本地缓存加载模块若本地不存在则会自动下载。input_dict的 key 固定为imagevalue 为图片路径组成的 list可一次传入多张图片进行批量预测。2、classification API 说明该模块遵循经典 PaddleHub Module V1 接口规范对外暴露classification(data)分类接口其签名与行为如下def classification(data)参数 datadictkey 为imagevalue 为图片路径的列表list。返回值 resultlist[dict]与输入图片一一对应的预测结果列表。每个元素是一个 dictkey 为类别标签名label namevalue 为对应类别的预测概率。在 paddlehub/compat/module/module_v1.py 的兼容实现中CV/classification类型的模块导出推理模型时以class_probs作为输出 fetch 变量即分类概率张量classification接口返回的正是对该概率张量按标签映射后的结果。五、predict 接口与推理细节源码级除了文档明确记载的classification接口当前仓库新版本 PaddleHub 中图像分类模块统一继承自ImageClassifierModule见 paddlehub/module/cv_module.py其核心推理方法为predict签名如下def predict(self, images, batch_size1, top_k1)参数类型默认值说明imageslist[np.ndarray]必填BGR 格式的图片数组列表batch_sizeint1预测时的批大小top_kint1每张图片输出概率最高的前 k 个类别predict的推理流程paddlehub/module/cv_module.py体现了该模块的完整数据管线先调用self.eval()将模型切换到推理模式并在paddle.no_grad()上下文中执行前向按batch_size将输入图片分批每张图片先经过self.transforms预处理含缩放、裁剪、归一化等目标输入为 224×224×3将批数据转为float32的paddle.Tensor后前向得到 logits对 logits 执行F.softmax(axis1)归一化为概率用np.argsort(...)[:, ::-1][:, :top_k]取概率最高的前 k 个索引再通过self.labels将索引映射为 ImageNet 类别名构建{类别名: 概率}字典列表返回。从这一实现可以看出模块输出是概率意义上的多类别排序结果适合直接用于 Top-k 检索、置信度筛选等下游逻辑。六、将模块部署为服务可选得益于ImageServing基类中的serving_methodpaddlehub/module/cv_module.pyvgg11_imagenet还可以通过 PaddleHub Serving 以 HTTP 服务的形式对外提供在线预测能力。服务化时客户端传入 base64 编码的图片与top_k参数服务端解码后调用predict返回结果为{data: [{label: prob}, ...]}结构。启动与停止服务的入口位于 paddlehub/commands/serving.py具体命令格式可参考 PaddleHub Serving 部署文档。七、版本与更新历史该模块当前仅有 1.0.0 一个版本1.0.0首次发布First release对应安装命令hub install vgg11_imagenet1.0.0。值得注意的是模块信息表中是否支持 Fine-tuning为否。需要说明的是虽然模块本身不支持微调但 VGG 结构常被用作其他任务的特征提取骨干若需要在自定义数据集上微调分类模型仓库提供了基于其他可微调模块如resnet50_vd_imagenet_ssld的完整示例参见 demo/image_classification 目录及其 README。八、相关模块与延伸阅读VGG 家族在该仓库中还有其他深度变体模块位于同一目录 modules/image/classification 下vgg13_imagenetvgg16_imagenetvgg19_imagenet它们的安装与调用方式与vgg11_imagenet完全一致仅网络深度与模型大小不同可按精度与速度需求选择。除此之外还可以进一步阅读PaddleHub 命令行指令文档了解hub run、hub serving等全部命令用法PaddleHub 安装指南环境准备与框架版本选择图像分类模块基类实现 paddlehub/module/cv_module.py了解predict、run_cmd、serving_method的完整定义命令调度实现 paddlehub/commands/run.py深入hub run的执行链路。小结vgg11_imagenet是一个开箱即用的 PaddleHub 图像分类模块安装一条命令、推理两种方式命令行hub run与 Pythonclassification/predict接口底层由 PaddleHub 的RunModule、ImageServing框架统一支撑。无论用于快速验证 VGG 骨干网络效果还是作为 ImageNet 特征提取器接入下游视觉任务它都是一个稳定、轻量的起点。赞分享人工智能大模型微调模型推理服务【免费下载链接】PaddleFormersPaddleFormers is an easy-to-use library of pre-trained large language model zoo based on PaddlePaddle.项目地址https://gitcode.com/gh_mirrors/pa/PaddleFormers点击查看免费下载相关推荐PaddleHub 图像分类模块 dpn107_imagenet 使用指南基于 Dual Path Networks 的 ImageNet 预训练分类模型PaddleHub 图像分类模块 dpn107_imagenet 使用指南基于 Dual Path Networks 的 ImageNet 预训练分类模型 本人工智能大模型微调模型推理服务使用 PaddleHub 部署 MobileNetV3 Large 图像分类模型基于 SSLD 蒸馏的 ImageNet 预训练模块实战指南使用 PaddleHub 部署 MobileNetV3 Large 图像分类模型基于 SSLD 蒸馏的 ImageNet 预训练模块实战指南 导读 本文围绕人工智能大模型微调模型推理服务PaddleFormers 图像分类模块实战基于 PaddleHub 的 DPN68 ImageNet 模型推理指南PaddleFormers 图像分类模块实战基于 PaddleHub 的 DPN68 ImageNet 模型推理指南 导读 本文聚焦于 PaddleForme人工智能大模型微调模型推理服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表