PaddleHub 图像分类模型 rexnet_3_0_imagenet 实战指南:预测、Fine-tune 与 Serving 部署
人工智能大模型微调模型推理服务【免费下载链接】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 仓库中的 rexnet_3_0_imagenet 模块 为核心完整讲解基于 PaddleHub 的 ReXNet 图像分类模型的安装、命令行与 Python API 预测、Flowers 数据集 Fine-tune 以及 Serving 在线服务部署全流程。读完本文你将掌握如何在本地通过hub install/hub run快速体验 1000 类 ImageNet 分类使用Trainer完成自定义花卉分类任务的迁移学习并将训练好的模型一键封装为 HTTP 分类服务。一、模型基本信息1.1 模块速览项目内容模型名称rexnet_3_0_imagenet类别图像-图像分类网络ReXNet数据集ImageNet-2012是否支持 Fine-tuning是模型大小200MB指标-最新更新日期2021-09-14该模块由 module.py 实现通过moduleinfo声明了namerexnet_3_0_imagenet、typeCV/classification、version1.0.0等元信息并以ImageClassifierModule作为元基类因此天然继承了 PaddleHub 图像分类模块的predict、命令行hub run与 Serving 能力详见 cv_module.py。1.2 ReXNet 网络原理ReXNet 由 NAVER AI Lab 提出是一套基于新网络设计原则设计的网络。作者认为常规网络设计会产生表征瓶颈Representational Bottleneck从而影响模型性能。为研究表征瓶颈作者研究了由一万个随机网络生成的特征矩阵的秩Rank并研究了整个层的通道配置以设计更准确的网络架构最终提出了一套简单有效的设计原则来缓解表征瓶颈。从本仓库的 module.py 源码结构看模型实现与论文设计原则一一对应通道渐进式扩展input_ch16、final_ch180、width_mult3.0在构造特征层时每个 block 的通道数按inplanes final_ch / (self.depth // 3 * 1.0)线性递增确保每一层都成为扩展层expand layer避免出现表征瓶颈Linear Bottleneck 堆叠核心算子LinearBottleneckmodule.py 中定义由 1x1 扩展卷积 3x3 深度可分离卷积groupsdw_channels 可选 SE 模块 1x1 投影构成采用 Swish / ReLU6 激活SE 注意力use_seTrue、se_ratio12SE类通过全局平均池化与 1x1 卷积生成通道注意力并加权深度与宽度配置depth_mult1.0各阶段 block 数为[1, 2, 2, 3, 3, 5]步长为[1, 2, 2, 2, 1, 2]SE 使用位置为[False, False, True, True, True, True]分类头nn.Dropout(dropout_ratio)默认 0.2后接 1x1 卷积映射到class_dim默认 1000个类别。1.3 类别标签模块目录下的 label_list.txt 共包含 1000 行即 ImageNet-2012 的 1000 个类别从tench、goldfish到ear、toilet tissue。ReXNetV1.__init__中若未显式传入label_list则会自动读取该文件并据此设置class_dim len(self.labels)。二、安装与环境依赖2.1 环境依赖使用本模型需要满足paddlepaddle 2.0.0paddlehub 2.0.02.2 安装模块在终端执行$ hub install rexnet_3_0_imagenet安装时会自动下载模型权重。若安装遇到问题可参考仓库中的零基础安装文档零基础 Windows 安装零基础 Linux 安装零基础 MacOS 安装三、模型 API 预测3.1 命令行预测安装完成后直接通过hub run对单张图片进行 Top-K 分类预测$ hub run rexnet_3_0_imagenet --input_path /PATH/TO/IMAGE --top_k 5该命令最终由ImageClassifierModule.run_cmdcv_module.py 中定义解析执行--input_path指定图片路径必填--top_k指定返回概率最高的类别个数默认为 1解析后调用self.predict(images[args.input_path], top_kargs.top_k)。3.2 Python API 预测在代码中加载模型并预测import paddle import paddlehub as hub if __name__ __main__: model hub.Module(namerexnet_3_0_imagenet) result model.predict([flower.jpg])model.predict的签名与行为定义于 cv_module.py 的ImageClassifierModule.predict为images(list[np.ndarray])待预测图片元素为 BGR 格式的np.ndarraybatch_size(int)预测批大小默认 1top_k(int)每张图返回概率最高的 k 个类别默认 1。其内部流程为对每张图执行模块内置的预处理self.transformsResize 到 256x256、CenterCrop 224、按 ImageNet 均值方差 Normalize前向得到 logits 后经F.softmax转为概率再np.argsort取 Top-K最后以{类别名: 概率}字典列表形式返回。模块内置预处理与 Fine-tune 时使用的预处理完全一致定义于 module.py 的ReXNetV1.transformstransforms T.Compose([ T.Resize((256, 256)), T.CenterCrop(224), T.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225]) ], to_rgbTrue)3.3 如何开始 Fine-tune在完成 PaddlePaddle 与 PaddleHub 安装后执行python train.py即可使用 rexnet_3_0_imagenet 对 Flowers 等数据集进行 Fine-tune。完整可运行的示例可参考 demo/image_classification/train.py该示例基于resnet50_vd_imagenet_ssld将其中的name替换为rexnet_3_0_imagenet即可。下面按步骤展开。Step1定义数据预处理方式import paddlehub.vision.transforms as T transforms T.Compose([T.Resize((256, 256)), T.CenterCrop(224), T.Normalize(mean[0.485, 0.456, 0.406], std[0.229, 0.224, 0.225])], to_rgbTrue)transforms数据增强模块定义了丰富的数据预处理方式用户可按照需求替换自己需要的数据预处理方式。Step2下载数据集并使用from paddlehub.datasets import Flowers flowers Flowers(transforms) flowers_validate Flowers(transforms, modeval)参数说明transforms数据预处理方式mode选择数据模式可选项有train、test、val默认为train。数据集的准备代码可参考 flowers.pyFlowers类通过download_data(urlhttps://bj.bcebos.com/paddlehub-dataset/flower_photos.tar.gz)装饰器标注hub.datasets.Flowers()会自动从网络下载数据集并解压到用户目录下$HOME/.paddlehub/dataset目录数据集共 5 类num_classes 5train模式读取train_list.txt、test模式读取test_list.txt、其余val读取validate_list.txt。Step3加载预训练模型model hub.Module(namerexnet_3_0_imagenet, label_list[roses, tulips, daisy, sunflowers, dandelion])参数说明name选择预训练模型的名字label_list设置输出分类类别默认为 Imagenet2012 类别即读取模块目录下的 label_list.txt。传入label_list后module.py 中class_dim len(self.labels)分类头输出维度随之变为 5从而与 Flowers 数据集对齐。此外ReXNetV1构造器还暴露了input_ch、final_ch、width_mult、depth_mult、use_se、se_ratio、dropout_ratio、bn_momentum等网络结构参数默认值分别为 16、180、3.0、1.0、True、12、0.2、0.9若传入load_checkpoint会加载该路径下的model.pdparams自定义权重否则加载模块自带的 ImageNet 预训练权重。Step4选择优化策略和运行配置optimizer paddle.optimizer.Adam(learning_rate0.001, parametersmodel.parameters()) trainer Trainer(model, optimizer, checkpoint_dirimg_classification_ckpt) trainer.train(flowers, epochs100, batch_size32, eval_datasetflowers_validate, save_interval1)Trainer实现在 trainer.py主要控制 Fine-tune 的训练包含以下可控制的参数model被优化模型optimizer优化器选择use_gpu是否使用 GPU 训练默认 False为 True 时执行paddle.set_device(gpu)use_vdl是否使用 VisualDL 可视化训练过程默认 True日志写入checkpoint_dir/visualizationcheckpoint_dir保存模型参数的地址默认ckpt_{time.time()}compare_metrics保存最优模型的衡量指标默认为以validation_step返回的第一个指标比较越大越好。trainer.train主要控制具体的训练过程包含以下可控制的参数train_dataset训练时所用的数据集epochs训练轮数batch_size训练的批大小如果使用 GPU请根据实际情况调整 batch_sizenum_workers数据加载子进程数量默认为 0eval_dataset验证集设置后会在每个save_interval轮执行一次评估log_interval打印日志的间隔单位为执行批训练的次数默认 10save_interval保存模型的间隔频次单位为执行训练的轮数默认 10collate_fn自定义组 batch 函数默认 None。训练过程中Trainer会在每个save_interval轮将模型参数与优化器状态分别保存为model.pdparams、model.pdopt当验证集指标优于历史最优时将最优模型额外保存到${CHECKPOINT_DIR}/best_model目录并写入metrics.pkl。从源码看Trainer还支持断点续训启动时自动扫描checkpoint_dir下形如epoch_{N}的目录并恢复模型与优化器状态。模型预测当完成 Fine-tune 后Fine-tune 过程在验证集上表现最优的模型会被保存在${CHECKPOINT_DIR}/best_model目录下其中${CHECKPOINT_DIR}目录为 Fine-tune 时所选择的保存 checkpoint 的目录。使用该模型进行预测的 predict.py 脚本如下import paddle import paddlehub as hub if __name__ __main__: model hub.Module(namerexnet_3_0_imagenet, label_list[roses, tulips, daisy, sunflowers, dandelion], load_checkpoint/PATH/TO/CHECKPOINT) result model.predict([flower.jpg])完整示例可参考 demo/image_classification/predict.py。NOTE进行预测时所选择的 module、checkpoint_dir、dataset 必须和 Fine-tune 所用的一样否则标签对齐与权重形状可能不一致。四、服务部署PaddleHub ServingPaddleHub Serving 可以部署一个在线分类任务服务将上一步训练好的模型封装为可并发访问的 HTTP API。第一步启动 PaddleHub Serving运行启动命令$ hub serving start -m rexnet_3_0_imagenet这样就完成了一个分类任务服务化 API 的部署默认端口号为 8866。NOTE如使用 GPU 预测则需要在启动服务之前设置CUDA_VISIBLE_DEVICES环境变量否则不用设置。Serving 场景下服务端调用的是ImageClassifierModule.serving_methodcv_module.py 中定义接收 base64 编码的图片列表与top_k参数解码后经predict得到结果并转换为 float 返回。第二步发送预测请求配置好服务端以下代码即可实现发送预测请求、获取预测结果import requests import json import cv2 import base64 import numpy as np def cv2_to_base64(image): data cv2.imencode(.jpg, image)[1] return base64.b64encode(data.tostring()).decode(utf8) def base64_to_cv2(b64str): data base64.b64decode(b64str.encode(utf8)) data np.fromstring(data, np.uint8) data cv2.imdecode(data, cv2.IMREAD_COLOR) return data # 发送HTTP请求 org_im cv2.imread(/PATH/TO/IMAGE) data {images:[cv2_to_base64(org_im)], top_k:2} headers {Content-type: application/json} url http://127.0.0.1:8866/predict/rexnet_3_0_imagenet r requests.post(urlurl, headersheaders, datajson.dumps(data)) data r.json()[results][data]其中请求体images为 base64 图片列表top_k控制返回的类别数量服务地址为http://127.0.0.1:8866/predict/rexnet_3_0_imagenet返回结构为{results: {data: [...]}}。五、更新历史1.0.0初始发布2021-09-14。赞分享人工智能大模型微调模型推理服务【免费下载链接】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 HRNet40 图像分类模型实战从命令行预测到 Fine-tune 与 Serving 部署PaddleHub HRNet40 图像分类模型实战从命令行预测到 Fine tune 与 Serving 部署 本文以 PaddleHub 开源仓库中的 h人工智能大模型微调模型推理服务PaddleHub 图像分类实战基于 rexnet_1_0_imagenet 模块的预测、Fine-tune 与 Serving 部署PaddleHub 图像分类实战基于 rexnet_1_0_imagenet 模块的预测、Fine tune 与 Serving 部署 导读 rexnet_1人工智能大模型微调模型推理服务DLSS Swapper3分钟掌握游戏DLSS版本管理的终极技巧 DLSS Swapper3分钟掌握游戏DLSS版本管理的终极技巧 还在为游戏画质模糊而烦恼吗想体验最新DLSS版本带来的视觉提升却苦于复杂的文件替换人工智能大模型微调模型推理服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

I2C总线深度解析:开漏物理层、多主仲裁与RTL实现

I2C总线深度解析:开漏物理层、多主仲裁与RTL实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 5:55:08 阅读更多 →
企业专利对外宣传的法律合规风险与话术规范

企业专利对外宣传的法律合规风险与话术规范

摘要专利是制造企业对外宣传中的常见卖点,但专利宣传并非“想怎么说就怎么说”,而是受到《广告法》《反不正当竞争法》等法律法规的严格约束。本文系统梳理《广告法》关于专利宣传的三条硬性规定,分析五类高风险话术的法律风险点,…

2026/9/24 5:55:08 阅读更多 →
【雷达学习笔记 00】开篇:我怎么用 提问 + 类比 啃下《雷达成像技术》

【雷达学习笔记 00】开篇:我怎么用 提问 + 类比 啃下《雷达成像技术》

【雷达学习笔记 00】开篇:我怎么用"提问 类比"啃下《雷达成像技术》# 【雷达学习笔记 00】开篇:我怎么用"提问 类比"啃下《雷达成像技术》 一、缘起:导师给的一句话 导师给我的要求很具体,也很"轻&quo…

2026/9/24 5:55:08 阅读更多 →

最新新闻

DAB双有源桥变换器:移相控制与软开关的工程实践指南

DAB双有源桥变换器:移相控制与软开关的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 6:39:36 阅读更多 →
NLP-情感分析项目(三):RNN模型搭建

NLP-情感分析项目(三):RNN模型搭建

情感分析项目代码详解(三):textrnn.py 模型搭建前两篇完成了数据准备:词汇表建好了,文本也变成了定长的数字序列,还写好了分批读取的迭代器。这一篇开始搭建真正的"大脑"——情感分类模型。textr…

2026/9/24 6:39:36 阅读更多 →
Claude Opus 5.5 发布:更强且价降 40%

Claude Opus 5.5 发布:更强且价降 40%

Claude Opus 5.5 发布:更强且价降 40% 2026年9月22日,Anthropic 发布 Claude Opus 5.5,这是 Claude 5.5 家族的第一个成员。它把上一代 Opus 5 的 token 单价下调约 20%、缓存读取砍掉 60%,典型任务总成本反而比 Opus 5 低约 40%…

2026/9/24 6:39:36 阅读更多 →
Nginx UI 命令行接口(nginx-ui ctl)实战指南:基于管理 API 的自动化运维与配置即代码

Nginx UI 命令行接口(nginx-ui ctl)实战指南:基于管理 API 的自动化运维与配置即代码

后端前端运维MCP 服务 【免费下载链接】nginx-ui Yet another WebUI for Nginx 项目地址: https://gitcode.com/gh_mirrors/ngi/nginx-ui 点击查看 免费下载 nginx-ui ctl 是 Nginx UI 内置的远程管理客户端,它通过实例自身的管理 API 操作正在运行的 N…

2026/9/24 6:39:36 阅读更多 →
Keil MDK许可证错误排查与Arm Compiler配置实战指南

Keil MDK许可证错误排查与Arm Compiler配置实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 6:39:36 阅读更多 →
AI工具实战指南:从本地部署到AI Agent的工程化落地

AI工具实战指南:从本地部署到AI Agent的工程化落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/24 6:38:36 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →