ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

PaddleHub 看图写诗(reading_pictures_writing_poems)模型实战指南:图像分类驱动的古诗词自动生成

PaddleHub 看图写诗(reading_pictures_writing_poems)模型实战指南:图像分类驱动的古诗词自动生成 人工智能大模型微调模型推理服务【免费下载链接】PaddleFormersPaddleFormers is an easy-to-use library of pre-trained large language model zoo based on PaddlePaddle.项目地址https://gitcode.com/gh_mirrors/pa/PaddleFormers点击查看免费下载导读reading_pictures_writing_poems是 PaddleFormers 仓库中基于 PaddleHub 构建的文本生成类模块能够看图写诗——输入一张图片自动输出一首古诗词。本指南以该模块的官方文档为主体结合仓库内 module.py 源码完整讲解模型基本信息、多网络级联的工作原理、环境依赖与安装步骤、命令行与 Python API 两种预测方式以及参数细节与更新历史帮助读者快速上手并理解其底层调用链。一、模型基本信息模型名称reading_pictures_writing_poems类别文本-文本生成网络多网络级联数据集-是否支持 Fine-tuning否模型大小3.16K最新更新日期2021-04-26数据指标-从基本信息表可以看出该模块本质上是多个 PaddleHub 预训练模型的级联编排多网络级联自身不携带完整网络权重因此模型大小仅 3.16K且不支持 Fine-tuning仅用于预测推理。模型介绍看图写诗reading_pictures_writing_poems模型可自动根据图像生成古诗词该 PaddleHub Module 支持预测。官方文档给出的运行效果示例如下输入一张风景图片模型生成的古诗为蕾蕾海河海岳峰岳麓蔓。不萌枝上春自结心中线。二、工作原理多网络级联的生成链路要真正理解该模块需要先看清其内部调用关系。虽然官方文档将网络标注为多网络级联但并未展开细节这里从仓库源码 module.py 出发还原完整链路。2.1 级联的三个子模型模块在__init__中初始化了三个 PaddleHub 子模块见 module.py模块属性实际加载的子模型作用module_imageefficientnetb4_imagenet图像分类识别图片内容module_similarernie_gen_couplet对联生成为古诗提供近义词语料module_poemernie_gen_poetry古诗生成产出完整诗篇需要特别说明官方文档 readme.md 中写的是依赖xception71_imagenet、ernie_gen_couplet、ernie_gen_poetry这 3 个模型但从当前仓库的源码结构看module.py第 24 行实际加载的是efficientnetb4_imagenet对应仓库目录 modules/image/classification/efficientnetb4_imagenet。结合 1.1.0 版本更新说明中更换分类模型的描述可以推断文档正文可能未随 1.1.0 版本同步更新实际以源码为准。若本地未安装这 3 个子模型代码运行时会自动下载。2.2 WritingPoem 的四步生成流水线WritingPoem方法的完整流程module.py如下图像分类调用module_image.classification(paths[image])取分类结果中得分最高的类别PictureClassification。类别翻译使用translate库的Translator(to_langchinese)将英文类别名翻译为中文作为后续生成的关键词。近义词生成将中文类别作为文本调用module_similar.generate(textstexts, use_gpuuse_gpu, beam_width20)生成 20 条候选对联/近义词再通过is_chinese方法过滤仅保留全为中文且长度大于 1的字符串存入Words列表。古诗组装与续写取前 8 个合法词语两两拼接为FirstWord~FourthWord进而组成出句ChuJu上句和对句DuiJu下句用{:.5}{:.5}。的格式约束上下句各取 5 个字符得到上阕FirstPoetry调用module_poem.generate(textsFirstPoetry, use_gpuuse_gpu, beam_width5)续写下阕并用{:.12}截取 12 个字符最终合并上阕与下阕返回结构化结果。is_chinese校验逻辑module.py通过 Unicode 区间\u4e00\u9fff逐一判断字符并剔除长度小于等于 1 的字符串确保拼接出的诗句均为纯中文词语。2.3 底层古诗生成实现级联链路的最后一环ernie_gen_poetry对应仓库 modules/text/text_generation/ernie_gen_poetry其generate接口module.py展示了更多实现细节加载ErnieForGeneration.from_pretrained(ernie-1.0)并用本地微调权重ernie_gen_poetry.pdparams覆盖模型参数使用ErnieTokenizer编码输入文本通过beam_search_infillingdecode.py执行束搜索填充式生成关键解码参数包括max_decode_len80、max_encode_len20、beam_width默认 5、tgt_type_id1输入校验会对缺少逗号句号上下句不对仗含非中文字符的文本给出告警提示可能产生不符合预期的输出——这也解释了为什么看图写诗模块要精心拼装出对仗工整的 5 字上阕再交给该模型续写。三、环境依赖与安装3.1 环境依赖官方文档要求的依赖如下paddlepaddle 1.8.2paddlehub 1.8.0安装方法可参考 PaddleHub 安装文档translate用于将图像分类结果翻译为中文$ pip install translate仓库内 requirements.txt 内容为translate与文档描述一致可一键安装$ pip install -r modules/text/text_generation/reading_pictures_writing_poems/requirements.txt3.2 安装模块$ hub install reading_pictures_writing_poems安装说明本模型运行还需要用到efficientnetb4_imagenet源码实际引用、ernie_gen_couplet、ernie_gen_poetry这 3 个模型依赖清单以 module.py 源码为准若未预先安装这 3 个模型代码运行时会自动下载如安装遇到问题可参考仓库内的零基础安装指南Windows 安装、Linux 安装、MacOS 安装。四、模型 API 预测4.1 命令行预测安装完成后可通过hub run直接对图片进行看图写诗$ hub run reading_pictures_writing_poems --input_image /PATH/TO/IMAGE命令行参数在源码 module.py 中定义--input_image必选输入参数类型str为待检测图片的路径若文件不存在会抛出RuntimeError(File %s is not exist.)--use_gpu可选配置参数类型经ast.literal_eval解析即支持传入True/False默认False用于控制是否使用 GPU 推理。4.2 预测代码示例import paddlehub as hub readingPicturesWritingPoems hub.Module(namereading_pictures_writing_poems) results readingPicturesWritingPoems.WritingPoem(image/PATH/TO/IMAGE, use_gpuFalse) for result in results: print(result)代码要点通过hub.Module(namereading_pictures_writing_poems)加载模块调用WritingPoem(image..., use_gpu...)完成一次预测返回结果为列表逐条打印即可看到生成的古诗词。4.3 API 详解def WritingPoem(image, use_gpuFalse):看图写诗预测接口输入一张图像输出一首古诗词。参数参数类型说明imagestr待检测的图片路径use_gpubool是否使用 GPU 进行预测默认False返回resultslist[dict]识别结果的列表列表中每一个元素为 dict包含以下关键字image原输入图片的路径poetry输出的古诗词文本。从源码 module.py 可以看到最终返回值形如[{image: /PATH/TO/IMAGE, poetry: 上阕五言两句下阕续写十二字}]五、服务部署说明官方文档明确指出本模型不支持 hub serving 部署。原因可以从模型架构推断——WritingPoem内部依赖translate库的在线翻译服务以及三个级联子模型生成流程包含外部服务调用与多步文本处理无法被 PaddleHub Serving 的标准服务化流程直接封装。因此如需将其集成到线上服务只能在自己的应用代码中按上文示例调用。六、更新历史1.0.0初始发布。1.1.0移除 Fluid API更换分类模型从源码看图像分类模型已更换为efficientnetb4_imagenet模块版本号在 module.py 的moduleinfo中登记为1.1.0作者为 Mr.郑先生_。注意官方文档更新历史一节末尾附带的安装命令疑似为笔误hub install porn_detection_lstm1.1.0与看图写诗模块无关实际安装请以第二节中的hub install reading_pictures_writing_poems为准。七、实践要点总结级联思想看图写诗不是一个端到端大模型而是图像分类 → 类别翻译 → 对联近义词生成 → 古诗续写四条子链路的编排理解 module.py 的调用顺序是二次开发的关键依赖完整性首次运行前确保已安装translate库以及efficientnetb4_imagenet、ernie_gen_couplet、ernie_gen_poetry三个子模型缺失时 PaddleHub 会尝试自动下载文本质量约束底层ernie_gen_poetry对输入文本的对仗性与中文纯净度敏感见 ernie_gen_poetry/module.py 的告警逻辑这也是模块源码用is_chinese过滤、用固定格式拼装上阕的原因部署边界该模块不支持 hub serving需要在线服务时应在自身应用中调用 Python API 自行封装。赞分享人工智能大模型微调模型推理服务【免费下载链接】PaddleFormersPaddleFormers is an easy-to-use library of pre-trained large language model zoo based on PaddlePaddle.项目地址https://gitcode.com/gh_mirrors/pa/PaddleFormers点击查看免费下载相关推荐古诗词生成API终极指南三步快速上手AI诗词创作古诗词生成API终极指南三步快速上手AI诗词创作 一言·古诗词 API 是一个可以随机返回一句古诗词名句的接口采用 Vert.x Redis 全异步开发后端深入理解TSDProxy工作原理端口转发与流量路由的实现机制深入理解TSDProxy工作原理端口转发与流量路由的实现机制 TSDProxyTailscale Docker Proxy是一款强大的端口转发与流量路由工【免费下载】 探索古诗词之美《诗词》—— 一个开源的古诗词数据库探索古诗词之美《诗词》—— 一个开源的古诗词数据库 在这个快节奏的时代我们常常忘记停下来欣赏传统文化的魅力。而【诗词】是一个由开发者 michaell后端全文检索API网关上一篇拯救你的命令行效率PowerShell中CTRLBackspace的终极优化指南下一篇Remmina远程桌面客户端技术文档创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表