【2023 · CANN训练营第一季】笔记

举报
shuiqinger 发表于 2023/05/16 17:22:12 2023/05/16
【摘要】 模型离线推理步骤:步骤解析如下:1、Host&Device内存管理与数据传输:Host&Device上的内存申请与释放,内存间的相互拷贝;2、模型加载:将离线的om文件加载到Device上;在样例的资源初始化模块中进行。3、模型输入输出准备:根据离线om的输入输出,在Device上申请好模型的输入输出内存;在样例的资源初始化模块中进行。4、执行推理:当模型的输入内存获取到有效数据后,便可以调...

模型离线推理步骤:

步骤解析如下:

1、Host&Device内存管理与数据传输:Host&Device上的内存申请与释放,内存间的相互拷贝;

2、模型加载:将离线的om文件加载到Device上;在样例的资源初始化模块中进行。

3、模型输入输出准备:根据离线om的输入输出,在Device上申请好模型的输入输出内存;在样例的资源初始化模块中进行。

4、执行推理:当模型的输入内存获取到有效数据后,便可以调用AscendCL接口执行模型推理,推理完成后结果生成到输出内存中;在样例的模型推理模块中进行。

5、输出解析:使用AscendCL接口,将模型输出数据从特定格式中解析出来;在输出数据处理模块中进行。 下面将按步骤进行说明。

AIPP(Artificial Intelligence Pre-Processing)

AIPP(Artificial Intelligence Pre-Processing)人工智能预处理,用于在AI Core上完成数据预处理,包括改变图像尺寸、色域转换(转换图像格式)、减均值/乘系数(改变图像像素),数据预处理之后再进行真正的模型推理。

该模块功能与DVPP相似,都是用于图像数据预处理,但与DVPP相比,由于DVPP各组件基于处理速度和处理占有量的考虑,对输入、输出有特殊的限制,如对输出图片的宽高有对齐要求,且其输出格式通常为YUV420SP等格式。这样的设定虽在视频分析的场景下有非常广阔的输入,但深度学习模型的输入通常为RGB或BRG,且输入图片尺寸各异,因此ATC工具流程中提供了AIPP功能模块。

静态AIPP:模型转换时设置AIPP模式为静态,同时设置AIPP参数,模型生成后,AIPP参数值被保存在离线模型中,每次模型推理过程采用固定的AIPP预处理参数进行处理,而且在之后的推理过程中无法通过业务代码进行直接的修改。

如果使用静态AIPP方式,多batch情况下共用同一份AIPP参数。

动态AIPP:模型转换时设置AIPP模式为动态,每次在执行推理前,根据需求动态修改AIPP参数值,然后在模型执行时可使用不同的AIPP参数。动态AIPP参数值会根据需求在不同的业务场景下选用合适的参数(如不同摄像头采用不同的归一化参数,输入图片格式需要兼容YUV420和RGB等)。

AscendCL(Ascend Computing Language)

是一套用于在昇腾平台上开发深度神经网络推理应用的C语言API库,提供运行资源管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等API,能够实现利用昇腾硬件计算资源、在昇腾CANN平台上进行深度学习推理计算、图形图像预处理、单算子加速计算等能力。

由于DVPP(Digital Video Pre-Processor)图像处理单元硬件上的限制,调用AscendCL提供的媒体数据处理接口时,输入或输出图片的格式、宽高以及内存地址需满足一定的要求,可查阅对应版本的文档。

运行管理资源:

您需要按顺序依次申请如下资源:Device、Context、Stream,确保可以使用这些资源执行运算、管理任务。

显式创建Context和Stream时,需调用aclrtDestroyStream接口释放Stream,再调用aclrtDestroyContext接口释放Context。

有运行管理资源的申请,自然也有对应的释放接口,需关注资源的释放顺序。

创建Context、Stream的方式分为隐式创建和显式创建,推荐显式,适合大型、复杂交互逻辑的应用,且便于提高程序的可读性、可维护性

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。