嵌入式学习小组
登录
直播中
fanB
8年用户
1470经验值
擅长:20615
私信
关注
Pytorch模型如何通过paddlelite部署到嵌入式设备?
开启该帖子的消息推送
嵌入式
pytorch
android studio
嵌入式设备
Pytorch模型如何通过paddlelite部署到嵌入式设备?
回帖
(1)
王莹
2021-12-23 15:19:36
Pytorch模型通过paddlelite部署到嵌入式设备
一.把模型转为嵌入式设备能够识别的格式
1.把.pt或.pth的pytorch模型转为.onnx格式中间过渡状态模型格式,github上X2paddle下面有torch2onnx转换代码。
2.把onnx转为paddlepaddle格式模型,
命令行:x2paddle --framework=onnx --model=yolov5s.onnx --save_dir=pd_model_yolov5s,savedir下面保存了paddle格式模型。
一般可以把模型合并为__model, _params两个打包文件。
命令行:python tools/merge_params.py pd_model_yolov5s/inference_model new_pd_yolov5s_model
3.通过paddlelite工具把paddle模型转为paddlelite模型( .nb格式),支持嵌入式设备。
paddle_lite_opt --model_file=./new_pd_yolov5s_model/
model
--param_file=./new_pd_yolov5s_model /
params
--optimize_out_type=naive_buffer --optimize_out=pd_yolov5s --valid_targets=arm
如果这里转模型触发RuntimeError: Inferred shape and existing shape differ in dimension 2: (640) vs (320),这是paddle框架的bug,我给paddle维护人员提出了该问题,已得到修复。自行修改x2paddle对应的三个文件
https://github.com/PaddlePaddle/X2Paddle/pull/403
二、安装Android Studio环境,把模型导入嵌入式设备
1.Android Studio官网下载安装环境。网上搜指导文档安装即可,安装好后执行richard@richard:/usr/local/java/android-studio/bin$ ./studio.sh
2、Android工程中导入模型,编译运行。/home/richard/yangqingchuan/git_codes/X2Paddle/Paddle-Lite-Demo/PaddleLite-android-demo/object_detection_demo/app/src/main/assets这是paddlelite的demo,里面有各种模型,可以直接编译运行在嵌入式设备。 我们可以把自己的模型放入models目录,训练的分类标签放入labels,预测demo图片放在images。然后编译编译文件在build目录下面。 把嵌入式设备通过USB接口连接,选择设备运行。(首先会把把模型上传设备,然后在设备端执行模型,执行信息会与服务端控制台共享,在控制台可以观察日志)
注意:采用大模型运行可能会因为内存占用太多被强制kill掉。一定要选用小模型,节省内存。
参考文档:
1.
https://paddle-lite.readthedocs.io/zh/latest/user_guides/x2paddle.html
2.
https://github.com/PaddlePaddle/Paddle-Lite-Demo
3.
https://blog.csdn.net/qq_33200967/article/details/107741168#t2
Pytorch模型通过paddlelite部署到嵌入式设备
一.把模型转为嵌入式设备能够识别的格式
1.把.pt或.pth的pytorch模型转为.onnx格式中间过渡状态模型格式,github上X2paddle下面有torch2onnx转换代码。
2.把onnx转为paddlepaddle格式模型,
命令行:x2paddle --framework=onnx --model=yolov5s.onnx --save_dir=pd_model_yolov5s,savedir下面保存了paddle格式模型。
一般可以把模型合并为__model, _params两个打包文件。
命令行:python tools/merge_params.py pd_model_yolov5s/inference_model new_pd_yolov5s_model
3.通过paddlelite工具把paddle模型转为paddlelite模型( .nb格式),支持嵌入式设备。
paddle_lite_opt --model_file=./new_pd_yolov5s_model/
model
--param_file=./new_pd_yolov5s_model /
params
--optimize_out_type=naive_buffer --optimize_out=pd_yolov5s --valid_targets=arm
如果这里转模型触发RuntimeError: Inferred shape and existing shape differ in dimension 2: (640) vs (320),这是paddle框架的bug,我给paddle维护人员提出了该问题,已得到修复。自行修改x2paddle对应的三个文件
https://github.com/PaddlePaddle/X2Paddle/pull/403
二、安装Android Studio环境,把模型导入嵌入式设备
1.Android Studio官网下载安装环境。网上搜指导文档安装即可,安装好后执行richard@richard:/usr/local/java/android-studio/bin$ ./studio.sh
2、Android工程中导入模型,编译运行。/home/richard/yangqingchuan/git_codes/X2Paddle/Paddle-Lite-Demo/PaddleLite-android-demo/object_detection_demo/app/src/main/assets这是paddlelite的demo,里面有各种模型,可以直接编译运行在嵌入式设备。 我们可以把自己的模型放入models目录,训练的分类标签放入labels,预测demo图片放在images。然后编译编译文件在build目录下面。 把嵌入式设备通过USB接口连接,选择设备运行。(首先会把把模型上传设备,然后在设备端执行模型,执行信息会与服务端控制台共享,在控制台可以观察日志)
注意:采用大模型运行可能会因为内存占用太多被强制kill掉。一定要选用小模型,节省内存。
参考文档:
1.
https://paddle-lite.readthedocs.io/zh/latest/user_guides/x2paddle.html
2.
https://github.com/PaddlePaddle/Paddle-Lite-Demo
3.
https://blog.csdn.net/qq_33200967/article/details/107741168#t2
举报
更多回帖
rotate(-90deg);
回复
相关问答
嵌入式
pytorch
android studio
嵌入式设备
嵌入式
系统串行
设备
管理怎么实现?
2019-09-04
4013
如何在RK3308
嵌入式
开发板上使用ncnn
部署
mobilenetv2_ssdlite
模型
呢
2021-12-27
1048
什么是
嵌入式
?
嵌入式
设备
有哪些呢
2021-12-24
4635
将
Pytorch
模型
转换为DeepViewRT
模型
时出错怎么解决?
2023-06-09
438
如何在
嵌入式
系统或快速原型构建板上实现即交即用
式
部署
?
2021-11-22
1132
什么是
嵌入式
设备
?
2021-12-23
1077
如何去使用STM32CubeMX.AI
嵌入式
设备
呢
2021-11-19
1370
求一种基于
模型
检查的
嵌入式
软件验证方法
2021-04-28
729
嵌入式
的未来是什么?
2019-10-31
2994
嵌入式
设备
APP访问方式是什么?
2021-12-23
873
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分