使用MindStudio进行Moco-v2推理迁移

使用MindStudio进行Moco-v2推理迁移

本次实验在MindStudio上进行,请先按照教程 配置环境,安装MindStudio。

MindStudio是一套华为自行研发的基于昇腾AI处理器的AI全栈开发工具,这个IDE上的功能很多,包含的面也很广,用户友好性也非常不错,可以进行网络模型的训练、移植、应用的开发 、自定义算子的开发等等事情。可以帮助用户在一个工具上完成AI应用的开发,同时此IDE也有插件化拓展机制,开发者可以自行开发插件来拓展功能,存在无限可能。

一、概述

对比无监督学习最近取得了令人鼓舞的进展,例如在动量对比(MoCo)和SimCLR中。而    Moco-v2模型通过在MoCo框架中实现SimCLR的两个设计改进,验证了它们的有效性。通过对MoCo的简单修改(即使用MLP投影头和更多的数据增强),建立了比SimCLR性能更好的更强基线,而且不需要大规模批量训练。

二、服务器端推理环境准备

1、获取Pytorch onnx推理项目源代码仓

git clone https://gitee.com/ascend/modelzoo.git

2、 获取Moco-v2模型的github开源仓

3、配置conda环境、安装依赖包

依赖名称

版本

ONNX

1.7.0

Torch

1.5.0

TorchVision

0.6.0

numpy

1.18.5

Pillow

7.2.0

4、准备数据集,本模型使用ILSVRC2012中50000张验证集ILSVRC2012_img_val.tar。

5、在数据集的目录下,使用命令tar -xvf ./ILSVRC2012_img_val.tar将其解压,并将原压缩包删除。

6、准备val_label.txt存放到项目根目录下

三、 客户端Mindstudio

3.1 下载Mindstudio

访问网址https://www.hiascend.com/software/mindstudio/download 根据设备下载对应版本的软件,本人下载的版本为MindStudio_5.0.RC1_win.exe。

3.2 安装和配置环境

按照Mindstudio用户手册中的安装指南—>安装操作来安装Mindstudio。

本人在Mindstudio安装过程中遇到了一些问题,但都在MindStudio昇腾论坛上得到了解答,论坛地址为https://bbs.huaweicloud.com/forum/forum-945-1.html ,如果读者遇到无法解决的问题也可尝试寻找答案。

推理环境在远端服务器上已经配置完成。

3.3 创建工程

选择Ascend App 项目

点击change选取远程服务器

点击指示位置的加号,添加远程连接,并测试

连接成功后,选择CANN目录。

耐心等待本地文件同步CANN文件

同步成功后,选择Ascend Operator中的ACL Project(python)项目,点击完成,完成新建项目。

下面进行python SDK的配置

选择add python SDK

选择ssh interpreter

添加远程服务器

选择python解释器

选择interpreter所在位置并确认

将其余地方的sdk也改为远程服务器

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

从远端服务器拉取代码

拉取代码运行中

数据预处理

先在项目根目录下新建文件夹prep_dataset

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

第一个参数为原始数据验证集(.jpeg)所在路径。,第二个参数为输出的二进制文件(.bin)所在路径。每个图像对应生成一个二进制文件。运行成功后,在当前目录下“prep_dataset”文件夹里生成文件

数据预处理成功之后

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

第一个参数为生成的数据集文件格式,第二个参数为预处理后的数据文件的路径,第三个参数为生成的数据集文件保存的路径。运行成功后,在当前目录中生成“ImageNet.info”

模型转换

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

运行成功后获得“moco-v2-bs1.onnx”文件

onnx 转om

从Ascend选项中找到Model Converter来进行模型转换

自动生成atc命令

命令参数为:

model:为ONNX模型文件

framework:代表ONNX模型

output:输出的OM模型

input_format:输入数据的格式

input_shape:输入数据的shape

log:日志级别

soc_version:处理器型号

insert_op_conf=aipp_resnet34.config: AIPP插入节点,通过config文件配置算子信息,功能包括图片色域转换、裁剪、归一化,主要用于处理原图输入数据,常与DVPP配合使用,详见下文数据预处理

运行成功后生成moco-v2-bs1.om模型文件.

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

启动ssh session

连接成功后的remote终端如图

切换工作目录以及环境

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

执行benchmark命令

参数说明:-model_type:模型类型

- om_path:om文件路径

-device_id:NPU设备编号

-batch_size:参数规模

-input_text_path:图片二进制信息

-input_width:输入图片宽度

-input_height:输入图片高度

-useDvpp:是否使用Dvpp

-output_binary:输出二进制形式

推理后的输出默认在当前目录result下。

推理成功,使用vision_metric_ImageNet.py进行精度评估

第一个参数为生成推理结果所在路径,第二个参数为标签数据,第三个参数为生成结果文件。

精度评估结果为

310上模型的推理到此结束,经该模型迁移至710,将上述流程在Ascend710上再执行一遍。精度和性能均达标。

FAQ:

Q:找不到set_env.sh文件,出现错误

A:未将set_env.sh文件放到根目录下,可以cd到路径usr/local/Ascend/ascend-toolkit目录下运行./set-env.sh命令。

Q:设置sdk时明明按照步骤选取了正确路径,却报错

A:设置完以后点击Apply然后再Finish

Q:运行命令行时出现python版本不匹配的问题

A:通过conda list检查自己python版本是否为3.7.5,作者通过conda创建3.7环境创建出来的python版本为3.7.11,若版本不对可以通过pip install python==3.7.5更改版本

Q:执行生成数据集info文件步骤报错。

A:prep_dataset文件夹中存在除.bin外其他文件,删除即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值