模型部署
文章平均质量分 56
CV-deeplearning
小米AI Lab图像算法工程师,擅长表格识别、目标检测、行人属性识别、车牌识别等。
展开
-
python推理代码跨平台部署
我们经常训练好的模型需要部署,有时候算法组和工程组是分开的,这时候就需要我们提供C++的前后处理逻辑,这时怎么调试我们的C++代码呢?模型预测的结果是一个两通道的Mat,我们首先把它保存成yaml形式,比如:offset.yaml。解决方法:把模型推理的结果保存成C++可加载的形式,即可调试C++后处理代码。接下来,你就能流畅的写完你的后处理代码,打包交付啦!原创 2024-01-19 12:07:10 · 503 阅读 · 0 评论 -
TensorRT从理论到实践
用tensorrtx工程直接提取权重文件,中间过程可控;该工程更加灵活,遇到不支持的层,容易解决;该工程实现了主流算法的转化和推理,代码修改量不大即可适配自己的工程。原创 2022-12-11 17:55:32 · 1388 阅读 · 1 评论 -
Android.mk实践
最近做一个项目,在另外一个算法中要集成人脸检测算法库。首先在pc上验证了人脸算法库的正确性,然后在Android studio中集成。deblur工程中的代码是通过Android.mk构建的,初次看一脸懵逼。于是网上查了一下相关资料后仿写。我是参考以前工程里现有的mk写法仿写,各个模块写一个mk文件,负责本模块的编译资源管理,如果的别的模块需要使用本模块的内容那么把本模块的mk文件包含进来就可以了,整体语法跟cmake很像。LOCAL_MODULE就是本模块的名字,LOCAL_SRC_FILES后面是原创 2022-12-05 15:47:18 · 650 阅读 · 0 评论 -
strip指令——减小文件的大小(给文件脱衣服)
strip这个单词, 大家应该早就学过了, 你就记住是脱衣服就行了, 别的不要多想。在linux中, strip也有脱衣服的含义, 具体就是从特定文件中剥掉一些符号信息和调试信息。现在我生成了一个可执行程序,名为:lib_learn通过file命令查看文件是否做过strip结论:我们通过strip命令,使文件大小从16K降到12K,文件依然正常运行。注释:strip不仅可以减小可执行程序的大小,还能缩减动态库和静态库的大小。原创 2022-12-05 12:45:32 · 739 阅读 · 0 评论 -
手机应用crash定位
参考:https://www.cnblogs.com/willhua/articles/5891895.html。执行上面命令后,开始操作app中导致crash的操作,得到log.txt。原创 2022-09-28 09:54:22 · 1205 阅读 · 0 评论 -
SNPE 模型量化实战
optimizations cle --optimizations bc对应的量化算法效果最佳,但是这种量化算法对模型结构有一定的限制且量化速度较慢,如果使用这种量化算法出现量化失败,可以将–optimizations cle --optimizations bc这两个选项去掉,使用snpe默认的量化算法。然后从/home/对应的路径拷贝至/root/snpe/目录中。准备量化的输入图片数据:首先从测试集中获取N张图片(N的取值范围推荐在50~200之间),然后将图片转换成raw文件,转换脚本可参考。原创 2022-09-26 11:09:04 · 2486 阅读 · 8 评论 -
Libtorch模型部署指南
前言:libtorch是pytorch原生支持的生态,理论上只要是pytorch训练的模型都能用libtorch部署,因为他们共用相同的c++代码。主要参考:Pytorch官网一. PyTorch模型转为Troch Scriptimport torchimport torchvision# An instance of your model.model = torchvision.models.resnet18()script_module = torch.jit.script(model原创 2022-05-18 17:25:08 · 1699 阅读 · 0 评论 -
tensorrt采坑记录
一. 下载对应的安装包查看cuda版本:nvcc -V 显示我的版本是10.2版本查看cudnn版本:cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2显示我的cudnn版本为7.5.0版本在官网下载trt安装包:根据系统、cuda、cudnn下载,下载地址:https://developer.nvidia.cn/nvidia-tensorrt-8x-download由于我需要下载8.x,要求cudnn的最低版本为8.2,原创 2022-02-25 19:34:46 · 1164 阅读 · 0 评论 -
编译问题:clang++: error: unable to execute command: Killed
一. 背景介绍当我在手机端部署模型时,用mace转模型成功,但是在编译时出错。错误栈给了很多提示,其中一句提示就是:clang++: error: unable to execute command: Killed。二. 分析问题与解决该提示指的是内存不够,我的进程操作被杀掉了;解决方法就是增大swap分区的空间。于是我在网上查找解决方法,运行下面命令即可:sudo fallocate -l 4G /swapfilesudo chmod 600 /swapfilesudo mkswap /sw原创 2021-07-21 16:38:47 · 3252 阅读 · 0 评论 -
onnx 模型转换及推理时间对比
1. 环境准备 对比时间,和模型训练的环境相同,可能额外要安装的包是onnxruntime.pip install onnxruntime # for cpupip install onnxruntime-gpu # for gpu2. 测试过程 直接上代码吧,代码就是最好的解释。import cv2import timeimport torchimport numpy as npfrom torch.nn import DataParalle...原创 2021-04-29 20:53:44 · 4224 阅读 · 1 评论 -
MACE在Android手机上部署深度学习模型——采坑记录
1./bin/sh: cmake: command not found 其实就是没有找到cmake, 把cmake添加到环境变量中, 使其生效就可以了。# 配置cmakeexport PATH="/home/CV-deeplearning/cmake-3.18.1-Linux-x86_64/bin:$PATH" 参考:https://zhidao.baidu.com/question/813991431376924892.html2.SDK...原创 2021-04-28 20:49:18 · 450 阅读 · 0 评论 -
通过MACE在Android手机上部署深度学习模型
1. MACE的环境搭建 参考我的博客:MACE的环境搭建——conda实现2. 构建项目 (1)下载MACE项目到本地git clone https://github.com/XiaoMi/mace.git (2) 下载MACE Model Zoo 项目git clone https://github.com/XiaoMi/mace-models.git (3) 编译MACE生成库文件 /path/to/mace...原创 2021-04-28 20:00:05 · 1215 阅读 · 5 评论 -
MACE的环境搭建——conda实现
1.MACE 主页 MACE 的github地址:https://github.com/XiaoMi/mace 小米官方的相关文档:https://mace.readthedocs.io/en/latest/ 对开发环境的要求,可以按照以下指令安装相关的包:2. 创建虚拟环境并安装常见的包 (1) 创建虚拟环境,我把虚拟环境命名为maceconda create -n mace python=3.6 (2)...原创 2021-04-28 09:51:58 · 713 阅读 · 0 评论 -
pytorch模型转成pt(c++可调用)
将训练的pytorch模型转化为pt(c++可调用),本文主要接受用trace转化方法。原创 2020-09-27 13:31:19 · 4797 阅读 · 3 评论 -
pytorch模型转onnx
参考pytorch官网,将一个分类模型转化为onnx。原创 2020-09-27 09:51:19 · 547 阅读 · 0 评论