![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习模型压缩部署
分享前沿的模型压缩方法与代码实现,以及部署方法与项目心得
千与编程
:北京大学计算机硕士
️:点个关注,私信领取算法岗路线图
: 毕业拿到8家大厂SP以上Offer
: 持续分享互联网求职赚干货
展开
-
深度学习训练环境bug——【skimage升级到19之后的接口问题】
scikit-image是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理,正好与matlab一样,因此,我们最终选择scikit-image进行数字图像处理。skimage即是Scikit-Image。基于python脚本语言开发的数字图片处理包,比如PIL,Pillow, opencv, scikit-image等。但是现在出现一个问题,就是当skimage安装包升级到19之后出现了各种的不兼容。opencv实际上是一个c++库,只是提供了python接口,更新速度非常慢。原创 2023-03-10 11:07:39 · 1090 阅读 · 0 评论 -
统计神经网络模型的Parameters参数量和FLOPs的计算方式
FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。通常在模型压缩领域使用的参数指标为FLOPs,模型规模大小可以通过模型文件进行查看,但是对神经网络的Parameters参数量与FLOPs进行统计需要使用框架进行统计。FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。运行即可,综上所述,推荐第三种最为直接。原创 2023-03-04 14:49:40 · 790 阅读 · 0 评论 -
显卡,CPU,GPU和CUDA的关系与区别
它包含CUDA指令集架构以及GPU内部的并行计算引擎。你只要使用一种类似于C语言的 CUDA C语言,就可以开发CUDA程序,从而可以更加方便的利用GPU强大的计算能力,而不是像以前那样先将计算任务包装成图形渲染任务,再交由GPU处理。(2)GPU:GPU是显卡上的一块芯片,就像CPU是主板上的一块芯片。最后关于CPU的区别含义就很明显了,是我们主板的运算器以及控制器,其计算方式为串行计算方式,与GPU进行计算的区别在于CPU为串行计算方式,GPU为并行的计算方式,其基于的计算架构CUDA进行并行计算。原创 2023-03-03 01:49:53 · 4180 阅读 · 0 评论 -
基于MaixBit(K210芯片)的图像识别猜拳手势博弈装置
2.可以任意控制数据集的数量。其显示屏的参数对于项目的区别在于320x240的视频显示分辨率,因此其主界面的图片显示应调整分辨率为320x240的图像分辨率,这里使用的是画图软件,进行图片大小的调整。如上图所示:maixpy提供了线上的数据集制作平台,进行训练集以及验证集的编写,通过手动标注数据集,由于本项目中所使用的是图像分类的识别模型,不需要进行手动标注。将图像识别的标签进行分布为[石头,布,剪刀],通过识别的图片结果,读取sd卡中的图像数据,在半个LCD显示屏进行操作结果的显示,以此类推。原创 2023-02-26 16:36:25 · 1725 阅读 · 0 评论 -
YOLO训练产出warning: NMS time limit 1.060s exceeded原因与解决办法
在进行模型训练结束后,模型代码会执行对模型进行map准确率的验证,使用时候出现talk is cheap ,show me the code.找到warning的代码出处:以上是NMS非极大值抑制代码实现过程,其原理也很简单,解决的是多个锚框重叠的问题。其实原因来看,进行NMS的时间断点太长了,将阈值也调大同时这个warning只会存在与前几轮,原因是模型加载同时模型还没有学到特征,进行模型推理速度太慢,训练几轮后,模型的提取特征能力增强,推理图片数据的性能自然会提升,警告也就消失了。原创 2022-12-05 10:27:29 · 10812 阅读 · 13 评论 -
训练yolov5报错:‘str‘ object has no attribute ‘get‘ 错误解决方案
报错原因:训练模型使用的数据路径文件出现问题:yolov5模型coco128.yaml以上的数据读取文件路径是正确的。但是原来的coco128.data的数据文件完整的报错其实是data.get(path) ‘str’ object has no attribute ‘get’ 错误解决方案data是存放数据的字典类型,原因是.data中不包括path的属性,将coco128.data的path根目录进行拆分,得到path路径bug修复,模型正常训练…原创 2022-12-05 09:53:15 · 1226 阅读 · 1 评论 -
Google colab中永久切换目录以及后台终端执行Linux操作指令
Google colab 中 执行Linux 操作指令 切换当前目录在使用深度学习的时候, 使用git将远程仓库的代码进行拷贝下来后,运行train.py需要切换到train.py的通常我们使用的指令方案:!cd yolov5 && python3 train.py运行训练的神经网络代码,可以正常那运行。但是如果我们将与逻辑的代码指令进行拆分,!cd yolov5!python3 train.py报错:python3: can't open file 'train.p原创 2021-11-02 16:56:30 · 1568 阅读 · 0 评论 -
jetson nano的摄像头画面倒转指令代码修改
当使用英伟达开发板进行图像实时追踪的时候,如果对摄像头进行了外壳的包装,在显示器中会发现摄像头采集的图像是倒置的,这会影响图片进行识别的准确率再次整理一下进行图像目标检测的识别的原理代码使用C++写的官方给的修改方式如下:$ cd ~/jetson-inference/utils/camera/$ gedit gstCamera.cpp目标修改代码片段:#if NV_TENSORRT_MAJOR > 1 && NV_TENSORRT_MAJOR < 5 // if原创 2021-09-05 19:26:59 · 1094 阅读 · 3 评论 -
深度学习模型压缩部署(一)深度学习模型压缩部署简介
现如今深度学习的模型可以说的上是天花乱坠,各种新奇的模型可以说的上是千奇百怪,每年的顶会论文例如CVPR,ICCV,ECCV,ICML等机器学习的顶级会议,每年都会有很多新奇怪的模型,但是这些模型都不一定等落地了。何为落地?就是要把这些模型实实在在的用起来,投入到工业生产中去,但是工业部署的深度学习模型具有以下几个特点:(1)精度与准确率要求严格,尤其一些十分重要的场合,比如电力行业的电线识别与故障检测,所以工业级使用的模型一般就是十分成熟的模型。(2)速度快,最好达到实时检测的效果。因为工业部署的模原创 2020-08-19 01:24:51 · 593 阅读 · 0 评论