适配算能BM1684开发板,bmodel推理模型转换

news2024/9/28 15:26:33

通过mlir转bmodel

一、文件转移

从算能官网technical center (sophgo.com)下载最新的版本,下载下来之后解压出来,再Ubuntu系统中创建一个sophon文件夹存放后续用到的文件,将tpu-mlir_v1.2.8-g32d7b3ec-20230802.tar.gz文件放入Ubuntu系统中的sophon文件夹。

在这里插入图片描述

二、配置docker环境

1、docker安装参考可以参考下面文章

最详细的ubuntu 安装 docker教程 - 知乎 (zhihu.com)

2、安装完成后使用下面命令下载算能docker环境(此步骤是在sophon文件夹中使用)

docker pull sophgo/tpuc_dev:v2.2

3、安装完成后,使用以下命令启动docker环境(此步骤是在sophon文件夹中使用)

docker run --privileged --name myname -v $PWD:/workspace -it sophgo/tpuc_dev:v3.2
# myname只是举个名字的例子, 请指定成自己想要的容器的名字

三、前期准备

1、进入docker环境后,首先运行下面代码解压转换环境。(一行一行运行)

tar zxf tpu-mlir_xxxx.tar.gz
source tpu-mlir_xxxx/envsetup.sh

2、运行下面命令完成前期准备操作。(一行一行运行)如果转换自己的模型这一步可以跳过

mkdir model_yolov5s && cd model_yolov5s
wget https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.onnx
cp -rf $TPUC_ROOT/regression/dataset/COCO2017 .
cp -rf $TPUC_ROOT/regression/image .
mkdir workspace && cd workspace

3、运行下面命令将yolov5.onnx转换为mlir模型,全部复制使用

model_transform.py \
    --model_name yolov5s_1684_f32 \
    --model_def ../yolov5s.onnx \
    --input_shapes [[4,3,640,640]] \
    --mean 0.0,0.0,0.0 \
    --scale 0.0039216,0.0039216,0.0039216 \
    --keep_aspect_ratio \
    --pixel_format rgb \
    --mlir yolov5s_1684_f32.mlir

四、mlir模型转bmodel模型

1、继续上一步操作运行下面命令,转换fp32的适配1684的模型。

model_deploy.py \
    --mlir yolov5s_1684_f32.mlir \
    --quantize F32 \
    --chip bm1684 \
    --model yolov5s_1684_f32.bmodel

2、运行完成后将该文件夹内的yolov5s_1684_f32.bmodel复制出来即可。

通过nntc转bmodel

第一步

安装Ubuntu,在Ubuntu中配置docker

配置完成

输入 service docker start

在输入 service docker status

如果显示正在运行即可

或输入 sudo docker ps 出现文字即可

第二步

复制sophon-demo到Ubuntu内,解压

第三步

cd进入sophon-demo复制下面内容 在Ubuntu内输入

docker run -v $PWD/:/workspace  -it sophgo/tpuc_dev:latest

cd 进入 tpu-nntc/scripts 输入下面命令(每次都要运行一次)

source ./scritpts/envsetup.sh
第四步

下载yolov5 6.1版本,修改yolo.py文件内 forward函数中的return

return x if self.training else x

再修改export.py文件 转换时的torch环境要为cpu版本 运行时使用MoudelChange虚拟环境 在conda中进入MoudelChange虚拟环境 使用下面命令

$ python export.py --weights person_best.pt --include torchscript

其中person_best.pt为要转换pt文件 将该pt文件放在yolov5 6.1文件夹内,终端运行上述命令即可

出现success即为成功

第五步

打开netron (本地版/在线版都可) 将转化的模型拖入

点击x,查看右边OUTPUTS三个值是否对应相等

相等即可,把person_best.torchscript文件改名为person_best.torchscript.pt放入Ubuntu内的sophon-demo/sample/YOLOv5/models/torch/

cp person_best.torchscript.pt /media/sophon-demo/sample/YOLOv5/models/torch/

ls查看,文件已经放到该文件下,成功

第六步

vim

vim gen_fp32bmodel_nntc.sh

修改内容best.rorchscript.pt文件为自己的文件名称

:wq退出

 ./gen_fp32bmodel_nntc.sh BM1684

使用上述命令运行

出现success即为成功

存在了/workspace/sample/YOLOv5/scripts

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2088986.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Java面试题集中营》- Redis

建议阅读《Redis开发与运维》《Redis设计与实现》《Redis深度历险:核心原理和应用实践》 Redis 为什么是单线程? 为什么单线程还能这么快? 单线程能够避免线程切换和竞态产生的消耗,而且单线程可以简化数据结构和算法的实现 至于单线程还快…

idea付费插件,SequenceDiagram有哪些优点

以下idea付费插件你们都用过哪些呢? SequenceDiagram插件是一种用于绘制时序图的工具。时序图是一种图形化的表示对象之间消息传递顺序的方法。 该插件可以在使用各种编程语言编写代码时,方便地绘制时序图,以帮助开发者更好地理解和描述系统…

Qt text-align和padding属性

1. text-align属性是用来设置文本的水平对齐方式。 text-align: center 文本将居中显示text-align: left 文本将左对齐显示text-align: right 文本将右对齐显示 2. 内边距padding: 内边距是元素内容与其边框之间的空间 padding-left: 10px; 距离内左边距10个像素点padding-r…

Crypto City盛夏狂欢:Hotcoin推出15,000 USDT迎新礼

在炎炎夏日之际,为了感谢广大用户对Hotcoin平台的支持与热爱,全球领先的数字资产交易平台Hotcoin特别推出了“Crypto City盛夏狂欢”活动。此次活动旨在通过丰厚的奖励迎接新用户,进一步提升用户体验和平台活跃度。 本次活动时间为2024年8月2…

制造企业如何启用BI工具,并构建自助式BI业务模式?

在制造业的数字化转型浪潮中,商业智能BI工具正逐渐成为推动企业增长的“加速引擎”。随着数据量的爆炸性增长,如何高效地分析和利用数据,已成为制造业提升竞争力的关键。本文将基于BI工具在制造业中的优势,深入探讨一种创新的BI分…

SSRF漏洞(三)

本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言: 本文基于pikachu(皮卡丘)靶场进行SSRF渗透攻击教学。 靶场环境搭建:SSRF漏洞(三) 一,SSR…

WinForm小技巧之向下复制行和编辑行

WinForm小技巧之向下复制行 文章目录 WinForm小技巧之向下复制行场景代码编辑场景代码 场景 当我点击向下增加行按钮&#xff0c;会在表格中添加一行一摸一样的 代码 按钮点击事件 /// <summary>/// 向下新增/// </summary>/// <param name"sender"…

构建视频生态技术基石:EasyCVR平台如何打破视频流媒体协议壁垒

在快速发展的安防监控和视频流媒体传输领域&#xff0c;EasyCVR平台凭借其在视频流媒体协议上的独特技术优势&#xff0c;逐渐成为业界的佼佼者。本文将详细探讨TSINGSEE青犀视频EasyCVR平台在视频流媒体协议上的几大优势&#xff0c;并展示其在多种应用场景中的广泛应用。 1、…

【IEEE独立出版,快检索 | 高录用】第五届IEEE信息科学与教育国际学术会议(ICISE-IE 2024,12月20-22)

第五届IEEE信息科学与教育国际学术会议(ICISE-IE 2024)定于2024年12月20至22日在中国湛江隆重举行。 ICISE-IE 2024将围绕“信息科学”与"教育”等相关最新研究领域&#xff0c;为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提供一个分享专业…

4个获取设计灵感的优质网站

在设计的世界中&#xff0c;寻找灵感往往是创意迸发的第一步。无论是UI设计师、产品经理&#xff0c;还是自由插画师&#xff0c;找到适合的灵感源是至关重要的。以下介绍4个广受欢迎的设计灵感网站。 1. Dribbble Dribbble是全球领先的设计师社区和展示平台&#xff0c;提供…

4个方法教你高效免费地制作精美思维导图。

思维导图能够将我们的思维以一种图形的形式展现出来&#xff0c;可以帮助我们更好地组织和理解信息&#xff0c;并且能够运用在生活的各个方面。为了让大家都能够便利的制作思维导图&#xff0c;我整理了几个简单好用&#xff0c;还可以免费使用的思维导图工具分享给大家。 1、…

OceanBase 功能解析之 Binlog Service

前言 MySQL&#xff0c;是在全球广泛应用的开源关系型数据库&#xff0c;除了其稳定性、可靠性和易用性&#xff0c;他早期推出的二进制日志功能&#xff0c;即binlog&#xff0c;也是MySQL广受欢迎的原因。 MySQL binlog&#xff0c;即二进制日志&#xff0c;是 MySQL 中用于…

es:下载elasticsearch以及基本介绍

简介 Elasticsearch 是一个基于 Lucene 的开源、分布式、RESTful 搜索引擎。 使用场景&#xff1a;海量数据的搜索 和 Lucene 的关系 Lucene&#xff1a;最先进&#xff0c;功能最强大的搜索库。如果直接基于Lucene开发&#xff0c;非常复杂&#xff0c;api复杂。 Elasticse…

STM32F411 HC-05蓝牙模块驱动

硬件设计 HC-05将蓝牙协议完全封装了&#xff0c;我们只需要将其当作一个蓝牙转串口的模块来使用即可&#xff0c;配置也十分简单&#xff0c;只需要对串口进行配置就能使用。 蓝牙模块接线 蓝牙模块 STM32 TXD<---->RXD RXD<---->TXD VCC<---->3V3…

【C++】有关vector迭代器失效问题

个人主页 文章目录 一、迭代器失效是什么二、vector中哪些操作会导致迭代器失效三、如何避免迭代器失效的问题 一、迭代器失效是什么 在进入此问题时&#xff0c;我们首先要了解迭代器的本质其实是指针&#xff0c;迭代器的失效就相当于指针失效的问题。而指针失效就说明指针…

PneumoLLM: 利用大语言模型的力量进行尘肺病诊断| 文献速递-大模型与多模态诊断阿尔茨海默症与帕金森疾病应用

Title 题目 PneumoLLM: Harnessing the power of large language model for pneumoconiosis diagnosis PneumoLLM: 利用大语言模型的力量进行尘肺病诊断 01 文献速递介绍 在计算机辅助诊断领域&#xff0c;对医学数据的处理和分析能力至关重要。它有助于潜在疾病的诊断和未…

猫咪浮毛难清理?养宠工具新升级——宠物空气净化器来帮你

相信很多人和我一样&#xff0c;在工作后就特别想拥有一只属于自己的猫咪。试想一下每天下班回到家&#xff0c;不再是空荡的房间&#xff0c;有只小猫在等你&#xff0c;该有多么幸福。虽然小猫不会说话&#xff0c;但会用陪伴的方式表达爱&#xff0c;温暖我们的心灵。可我没…

大家都在考的AI证书,我不允许你还不知道!

随着AI人工智能技术的迅猛发展&#xff0c;人工智能生成内容浪潮席卷全球&#xff0c;技术革新越是凶猛&#xff0c;人们的失业焦虑便越加强烈&#xff0c;为了应对AI带来的冲击&#xff0c;有些人决定“打不过就加入”&#xff0c;转身投向这个风口行业。 在这个关键时刻&…

pdf文件渲染到canvas

1、jQuery 2、Fabric.js Fabric.js是一个对canvas进行封装的Javascript库&#xff0c;主要的功能包括在canvas上创建和填充图形&#xff0c;比如矩形、圆形、多边形&#xff1b;生成的图像自带缩放、旋转、拖拽等功能。 3、PDF.js PDF.js 是一个使用 HTML5 构建的便携式文档格式…

STM32G474采用“多个单通道ADC转换”读取3个ADC引脚的电压

STM32G474采用“多个单通道ADC转换”读取3个ADC引脚的电压&#xff1a;PC0、PA1和PA2。本测试将ADC1_IN6映射到PC0引脚&#xff0c;ADC12_IN2映射到PA1引脚&#xff0c;ADC1_IN3映射到PA2引脚。 1、ADC输入 ADC输入电压范围&#xff1a;Vref– ≤ VIN ≤ Vref ADC支持“单端输入…