栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基于MindStudio对PraNet模型推理全流程

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于MindStudio对PraNet模型推理全流程

1.MindStudio介绍

MindStudio是一套基于华为昇腾AI处理器开发的AI全栈开发平台,包括基于芯片的算子开发、以及自定义算子开发,同时还包括网络层的网络移植、优化和分析,另外在业务引擎层提供了一套可视化的AI引擎拖拽式编程服务,极大的降低了AI引擎的开发门槛,全平台通过Web的方式向开发者提供以下4项服务功能。MindStudio除了具有工程管理、编译、调试、运行等一般普通功能外,还能进行性能分析,算子比对,可以有效提高工作人员的开发效率。除此之外,MIndStudio具有远端环境,运行任务在远端实现,对于近端的个人设备的要求不高,用户交互体验很好,可以让我们随时随地进行使用。MindStudio可以单独安装在Windows上。在安装MindStudio前需要在Linux服务器上安装部署好Ascend-cann-toolkit开发套件包,之后在Windows上安装MindStudio,安装完成后通过配置远程连接的方式建立MindStudio所在的Windows服务器与Ascend-cann-toolkit开发套件包所在的Linux服务器的连接,实现全流程开发功能。

2.PraNet模型概述

PraNet是一种基于并行反向注意力的网络,用于精确分割结肠镜图像中的息肉。具体来说,PraNet首先使用并行的部分解码器(PPD)在高级层中聚合特征。基于这个组合特征,该网络生成一个全局映射图作为以下组件的初始引导区域。此外,该网络还使用反向注意模块(RA)挖掘边界线索,该模块能够建立区域和边界线索之间的关系。由于区域和边界之间的迭代交互机制,PraNet能够校正预测结果中相互矛盾的区域,从而提高分割精度。在五个具有挑战性的数据集,六个指标上定量和定性的实验结果表明,PraNet显著地提高了分割精度,并且在泛化性能和分割实时性(∼50fps)方面具有明显优势。

3.服务器端推理环境准备
  1. 获取Pytorch onnx推理项目源代码仓

        git clone https://github.com/DengPingFan/PraNet.git -b master

       2. 获取模型评测脚本文件

        git clone https://github.com/plemeri/UACANet

        3. 当前目录结构

        4. 配置conda环境、安装依赖包
       

        5. 下载pth模型文件,将模型文件放入文件夹PraNet中

 

        6.准备数据集,本模型使用Kvasir数据集作为测试集

4.配置客户端MindStudio并进行推理

        1. 安装和配置环境     

        前往网页昇腾社区-官网丨昇腾万里 让智能无所不及

        并下载安装

 

        2. 创建工程

        选择Ascend App 项目

        其中CANN版本应选择远端服务器,点击change

         添加远程服务器 

         填写远端服务器信息,测试连接,连接成功后,选择CANN目录

         点击完成

         等待本地同步远端服务器CANN文件。同步成功后,选择ACL Project(python)项目,点击完成,完成新建项目

        

        配置项目结构

        选择add python SDK 

        选择ssh interpreter

        添加远程服务器

        选择python解释器

        配置本地文件夹与远程服务器映射

        从远端服务器拉取代码

        

        数据预处理

        数据预处理将原始数据集转换为模型输入的数据,使用PraNet_preprocess.py

        第一个参数是数据集路径,第二个参数是数据预处理后的输出路径

 

        数据预处理成功

        生成PNG图片输入info文件,使用benchmark推理需要输入图片数据集的info文件,用于获取数据集。使用get_info.py脚本,输入已经获得的图片文件,输出生成图片数据集的info文件 

 

        第一个参数指定数据格式,第二个参数指定数据集路径,第三个参数指定输出info文件的路径,其余参数指定读取数据的长宽,运行后获得pre_bin.info文件

        运行PraNet_pth2onnx.py文件将pth文件导出为onnx文件

        第一个参数是读入pth的路径,第二个参数是输出onnx的路径

 

        使用onnxsim优化onnx文件

        onnx 转 om

 

        转换om模型成功后,使用mindstudio remote终端执行benchmark推理

        启动ssh session,切换conda环境、工作目录 

         

        使用Benchmark工具进行推理,配置benchmark工具需要的环境 

 

        执行benchmark命令

        推理成功,需要对推理结果进行后处理,通过PraNet_postprocess.py进行后处理

        第一个参数是需要后处理文件的路径,第二个参数是处理后文件的输出路径。

 

        后处理成功后,使用Eval.py进行精度评估

        第一个参数是金标准路径,第二个参数是预测结果路径,第三个参数是评估结果输出路径

 

310执行完毕,经该模型迁移至310P,将上述流程在Ascend310P上在执行一遍

精度和性能均达标。

 5.Q&A:

Q: 使用benchmark工具时报错

./benchmark.x86_64: error while loading shared libraries: libacl_dvpp.so: cannot open shared object file: No such file or directory

A: 使用命令source /usr/local/Ascend/ascend-toolkit/set_env.sh

激活环境后,错误消失

Q: ATC转换模型后发生精度损失怎么办?

A:可以在ATC转换命令后增加参数--precision_mode=allow_fp32_to_fp16

--buffer_optimize=off_optimize

Q:pth转换onnx发生报错,找不到模型怎么办?

A:将./lib/PraNet_Res2Net.py的res2net50_v1b_26w_4s(pretrained=True)修改为res2net50_v1b_26w_4s(pretrained=False)

Q:模型的性能没有达到预期标准怎么办?

A:使用命令aoe --framework 5 --model PraNet-19_dybs_sim_n.onnx --job_type 1 --output ./test --input_shape "input:1,3,352,352"

        其中model参数后使用onnx模型,job_type可选1或者2,output参数指定输出om的路径,input_shape指定了输入格式的大小以及batch

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1002310.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号