Swin-Transformer适配昇腾开源验证任务心得

举报
huyanbo 发表于 2024/12/07 14:45:38 2024/12/07
【摘要】 此文章是把swin-transformer使用昇腾npu加速推理的经历心得


首先看了一下任务计划书:https://bbs.huaweicloud.cn/blogs/440522主要目的是将 Swin-Transformer 项目适配至华为的 Ascend(昇腾)和 Kunpeng(鲲鹏)处理器,确保其在这些硬件平台上的高效运行,也就是说验证Swin-Transformer能不能在使用Ascend(昇腾)运行。

开发过程

明确目的后开始熟悉模型,Swin-Transformer github网址:https://github.com/microsoft/Swin-Transformer,官方没有直接给出预训练模型,代码仓库的get_started.md文件有模型训练方法,网络上也可以搜索到其它的模型训练方法,如:https://gitcode.com/gh_mirrors/de/deep-learning-for-image-processing/tree/master/pytorch_classification/swin_transformer。为了方便后续使用,我把代码库中的代码文件fork到了我自己的代码仓库,class_indices.json文件需要根据自己的训练数据集进行编写,格式如下图:


模型文件训练好之后就可以从本地的图片之中选择进行推理。

 

编写推理代码,使用NPU推理模型:

官方并没有直接提供模型在NPU的推理代码,需要自己编写,可以参考:https://gitcode.com/huyanbo/Swin-Transformer/overview

使用conda创建python虚拟环境:本人python版本3.10,然后再安装numpy,本人numpy版本1.23.5。再把predict_npu.py里面表明的依赖库安装下来,其他的依赖库按照提示安装即可。

 

使用NPU推理模型需要安装pytorchCANNtorch_npu,版本要相对应,还要额外安装psutil库和attrs库。

先安装CANN,参考:https://www.hiascend.com/zh/developer/download/community/result?module=cann

pytorch和torch_npu的安装参考:https://github.com/Ascend/pytorch/blob/master/README.zh.md

依赖安装完成后,就可以运行推理代码文件实现模型的使用。输入需要识别的图片路径,模型会对该图片进行分析并返回属于各个类别的置信度。

 

1       验收材料

1)验证DEMO地址:https://gitcode.com/huyanbo/Swin-Transformer/overview

(2)验证DEMO修改记录(可以有多个修改记录,只包含和本任务验证强相关的提交记录,比如添加依赖、增加配置文件、演示开源软件功能使用的代码等):https://gitcode.com/huyanbo/Swin-Transformer/commits/detail/8bb5a355bb07e0b1a0104e3bf0f1a278d077fff7?ref=Npu_demo

(3)博客地址:https://bbs.huaweicloud.cn/blogs/article 

 

2       资源清单

产品名称

NPU架构

CPU架构

操作系统

云堡垒机

Ascend 910B3

 

鲲鹏计算

Kunpeng-920

Huawei Cloud EulerOS 2.0 (aarch64)

 

 

3       测试结果

此模型是图像分类模型,部署完成后运行代码可以输入想识别的图片路径,模型会将其属于各个类别的置信度返回出来。

Npu推理

运行程序前


运行程序后


我编辑npu时指定了npu编号为4,可以看到npu4已经在运行了。

 

推理结果

输入的图片:


得到的结果


可以看到属于玫瑰的置信度最高,接近于1,模型识别正确。

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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