- 博客(35)
- 收藏
- 关注
原创 OpenVINO模型部署(权重转化)
其中mean、scale为归一化后计算的均值方差的结果。3. 关于图像通道的问题,注意。这样在部署后图像就不需要再进行。
2023-03-13 13:16:52
1957
6
原创 TensorRT环境配置(2023完整版)
配置TensorRT环境需要配置CUDA、CUDNN、英伟达显卡驱动nvidia-smi类似这样,如图我的显卡驱动版本为515.65.01,CUDA版本为11.7。
2023-03-13 13:08:06
2063
1
原创 扩充交换空间
1、创建普通文件sudo dd if=/dev/zero of=/swapfile bs=1M count=16384dd: 打开'/swapfile' 失败: 文本文件忙换个名字sudo dd if=/dev/zero of=/swapfile_1 bs=1M count=16384记录了16384+0 的读入记录了16384+0 的写出17179869184字节(17 GB,16 GiB)已复制,25.4417 s,675 MB/s设置为swap文件sudo m
2023-02-21 21:34:49
275
原创 Learning Efficient Convolutional Networks through Network Slimming【译】
Learning Efficient Convolutional Networks through Network Slimming【CVPR2017】摘要在本文中,我们提出了一种新的cnn学习方案(learning scheme),来同时 1)减少模型大小;2)减少运行时内存占用;3)减少计算操作的次数并且不降低准确性。这是通过以一种简单而有效的方式在网络中增强通道级的稀疏性来实现的。与现有的许多方法不同,该方法直接适用于现代CNN架构,它为训练过程引入了最小的开销,并且生成的模型不需要特殊的软件/硬
2023-01-15 11:55:53
720
原创 Learning both weights and connections for efficient neural networks
学习权重和链接以提高神经网络的效率【论文】模型剪枝(Network Pruning)论文详细翻译_u013044310的博客-CSDN博客摘要神经网络需要大量计算, 又占用大量内存, 因此难以在嵌入式系统上部署。另外, 传统网络在训练开始前就确定了体系结构;因此, 训练无法改善体系结构。为了解决这些限制,我们描述了一种减少神经网络所需的存储和计算的方法,而不影响它们的准确性,只学习重要的连接。我们的方法使用三个步骤来修建冗余连接。首先,我们训练网络来了解哪些连接时重要的。接下来,我们修建不重要的
2023-01-15 11:51:59
713
原创 Entropy-based Pruning
An Entropy-based Pruning Method for CNN Compression摘要首先通过提出基于熵(entropy-based)的方法来评估每个滤波器的重要性。然后剪枝,最后采用微调方法(fine-tuning)恢复了剪枝过程中损坏的泛化能力(generalization ability)。我们的方法可以减少中间激活(intermediate activations)的大小,中间激活在模型训练阶段占用大部分内存,但在以前的压缩方法中不太受关注。1、引言CNN模型的资
2023-01-15 11:48:15
281
原创 yolov5剪枝复现
1、github本项目基于tanluren/yolov3-channel-and-layer-pruning实现,将项目扩展到yolov5上。项目的基本流程是,使用ultralytics/yolov5训练自己的数据集,在模型性能达到要求但速度未达到要求时,对模型进行剪枝。首先是稀疏化训练,稀疏化训练很重要,如果模型稀疏度不够,剪枝比例过大会导致剪枝后的模型map接近0。剪枝完成后对模型进行微调回复精度。yolov5_prune:GitHub - ZJU-lishuang/yolov5_prune
2023-01-14 11:27:57
1566
3
原创 yolov5剪枝蒸馏加速
下载项目github剪枝项目:yolov5_prune配套的作者修改的yolov5项目:yolov5-v6运行代码稀疏化训练和相关的数据集转化方法参考我之前的博客踩坑报错1:找不到标签,这里已经把图片的路径改成了系统绝对路径写到了hand_data/train.txt和hand_data/valid.txt中,解决了图片找不到的问题,出现了标签找不到的问题 No labels in hand_data/train.cache后面发现是路径有问题,哭死获取路径的小代码:#导入对路径操作
2023-01-14 11:26:56
573
原创 BN层相关理论
BN----Batch Normalization(批量归一化):解决在训练过程中,中间层数据分布发生改变的问题,以防止梯度消失或梯度爆炸、加快训练速度(什么叫中间层数据分布发生改变??)1、为什么输入数据需要归一化归一化有什么好处呢?原因在于神经网络学习过程本质就是为了学习数据分布,一旦训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低;另一方面,一旦每批训练数据的分布各不相同,那么网络就要在每次迭代都去学习适应不同的分布,这样将会大大降低网络的训练速度,这也正是为什么我们需要对数据都做一
2023-01-05 18:38:01
501
原创 openvino环境配置(openvino2022之前的版本)
下载安装包到下面的网址去下载或者用自己之前下载的安装包:intel官网openvino下载地址安装openvinocd到压缩包的地址,解压:tar -xvzf l_openvino_toolkit_p_<version>.tgz打开解压文件运行图形化安装界面:cd l_openvino_toolkit_p_<version>GUI Installation Wizard: sudo ./install_GUI.sh然后疯狂点下一步运行完这个安装程序,如果按照默认
2022-03-05 20:41:46
2158
4
原创 slam环境配置
1、Sophusgit clone https://github.com/strasdat/Sophus.gitcd Sophushttps://blog.csdn.net/qq_36955294/article/details/109498531?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164354731116780271941165%2522%252C%2522scm%2522%253A%252220140713
2022-02-03 11:41:04
887
原创 labelme和coco数据集
1、labelme(Json to Dataset)labelme标注完了之后生成.json文件,我们要将其转化成数据集使用,这里涉及到labelme源码的更改。这里作者给出了json_to_dataset.py方法,但是不知道是不是转化成coco格式的,还是看看json转coco的文章吧,下面是原文章:Labelme安装及使用教程_志愿无倦的博客-CSDN博客_labelme安装靠谱的博客:https://blog.csdn.net/qq_39435411/article/detail
2022-02-02 17:23:30
3123
原创 视觉SLAM十四讲
1、激光SLAM激光SLAM相对成熟,比如2005年出版的《概率机器人》中就介绍了很多关于激光SLAM的知识,在ROS里也能找到许多关于激光定位、激光建图的现成软件。2、单目SLAM在相机移动时,近处的物体移动快,远处的物体移动慢,极远处的物体看上去是不动的。于是当相机移动时,这些物体在图像上的运动就形成了视差。通过视差,我们就能定量的判断哪些物体离得远,哪些物体离得近。然而,即使我们知道了物体远近,它们仍然只是一个相对的值。单目SLAM估计的轨迹和地图将与真实的轨迹和地图相差一个因子,也就
2022-01-26 18:41:53
11547
原创 数学建模理论
一、插值与拟合可以用范德蒙行列式和克莱姆法则证明:在x0,x1,..., xn处取值y0,y1,...,yn的多项式存在且唯一,即插值问题的解唯一存在1、拉格朗日插值法:指的是在节点上给出节点基函数,然后做基函数的线性组合,组合系数为节点函数值的一种插值多项式2、高次插值的Runge现象在研究插值问题的初期,所有人都想当然的认为插值多项式的次数越高,插值精度越高。Runge发现上述结论仅仅在插值多项式的次数不超过七时成立,超过7时,插值多项式会出现严重的震荡现象,称为Runge现
2022-01-22 00:27:26
2704
原创 yolov5的TensorRT部署【tensorrt+cudnn@主机】
1、版本问题(1)TensorRT的ONNX解释器是针对Pytorch版本编译的,如果版本不对应可能导致转模型时出现错误。(2)主机环境:pytorch1.8.1+cuda11.12、Pytorch2ONNX主机上exp305权重可用,尝试转ONNX,命令如下:python export.py --weights runs/train/exp305/weights/best.pt --img 640 --include engine onnx 成功导出best.onnx到runs/
2022-01-09 10:31:39
1555
原创 Yolov5中detect.py和train.py模型输出结果不一样的问题
项目场景:yolov5开发损失数据都成功修改,四个点收敛到中心点,除以w和h归一化。训练得到权重,调试得知点的位置有负数,符合预测情况,大概率是正确的。问题描述:detect.py里面出来的pred(1,?,93)里面点的部分是非负的,同样的从model出来,和train.py的结果不一样(),后来发现是模型函数不一样。因为模型函数比较复杂,不方便进去查看,考虑更换和train.py一样的模型函数,再手动更改数据格式,或者进去原来的模型函数里面查看内容。本来考虑换一种非负的收敛方式,后来
2022-01-06 21:48:31
4911
4
原创 BN剪枝实践
1.github代码实践源代码是lua脚本语言,下载th之后运行th main.lua -netType vgg -save vgg_cifar10/ -S 0.0001,报错:试看看安装lua:报错了,参考这篇文章:ubuntu18.04安装lua的步骤 以及 出现的问题_weixin_41355132的博客-CSDN博客问题解决,安装成功:情况并没有好转,出现相同的报错(想了一下发现可能前面安装过lua了,好像跟torch啥的包有关):可能是这个东西没安装..
2022-01-06 18:27:15
885
2
原创 SOLO环境配置
1、博客【SOLO】环境配置(mmdetection=1.0.0+mmcv = 0.2.15)_摇曳的树的博客-CSDN博客2、实验室主机3、CRT主机按照博客【SOLO】环境配置(mmdetection=1.0.0+mmcv = 0.2.15)_摇曳的树的博客-CSDN博客配置到两次编译之后竟然都非常成功4、宿舍主机...
2022-01-02 00:09:21
506
原创 Multi-Dimensional Pruning[译]
多维剪枝---一个统一的模型压缩框架摘要在这项工作中,我们提出了一个统一的模型压缩框架,称为多维修剪(MDP),以同时压缩多维度上的卷积神经网络(CNNs)。现有的模型压缩方法仅旨在减少空间(/时空)维度(如对2D CNNs的空间维度和对3D CNNs的时间和空间维度)或者channel维度的冗余相比,我们提出的方法可以同时减少CNNs的空间/时空和通道冗余。具体来说,为了减少沿时空维度的冗余,我们对卷积层的输入张量进行了降采样,其中通过我们的方法自适应地选择了降采样操作的尺度因子。...
2021-12-05 15:42:20
2883
原创 【Towards Efficient Tensor Decomposition-Based DNN Model Compression withOptimization Framework】论文
基于张量分解的DNN模型压缩摘要先进的张量分解技术,比如tensor train(TT)和tensor ring(TR)。然而,使用TT/TR压缩卷积神经网络(CNNs)总是遭受显著的精度损失。本文提出了一个使用交替方向乘子法的(ADMM)基于张量分解的模型压缩的系统框架。将基于TT分解的模型压缩构造为具有张量秩约束的优化问题(an optimization problem with constraints on tensor ranks),我们利用ADMM技术以迭代的方式(in a iterat.
2021-11-21 13:08:04
1289
5
原创 yolov5 train.py
知乎博客:yolov5代码解读-训练 - 知乎前面跳过,到Config加载图像路径和类别信息 #Config plots = not evolve # create plots(创建图) evolve-----evolve hyperparameters for x generations #为x个generations进化超参数 cuda = device.type != 'cpu' init_seeds(1 + RANK
2021-11-14 21:13:14
4800
2
原创 yolo.py代码精读
1.parse_model函数,读入模型yaml中的参数定义self.model, self.save = parse_model(deepcopy(self.yaml), ch=[ch]) # model, savelistchinput channels第一列,即全是-1的这一列,代表输入层,如果是-1就代表是上一层。而Focus这一列是模块的名字,卷积核个数后面分别是卷积核尺寸和降采样尺寸。m = eval(m) if isinstance(m, str) else ..
2021-11-14 21:11:33
6311
5
原创 yolov4,yolov5(学习记录)
输入端创新1、Mosaic数据增强yolov4中使用的Mosaic是参考2019年底提出的CutMix数据增强的方式,但CutMix只使用了两张图片进行拼接,而Mosaic数据增强则采用了4张图片,随机缩放、随机剪裁、随机排布的方式进行拼接。这里首先要了解为什么要进行Mosaic数据增强呢?在平时项目训练时,小目标的AP一般比中目标和大目标低很多。而Coco数据集中也包含大量的小目标,但比较麻烦的是小目标的分布并不均匀。(小目标的AP指的是识别的准确率吗??也就是小目标识别不准,为了解决
2021-11-11 02:21:06
5135
原创 yolo论文【yolov1-v4】
一、yolov11、引言目前的检测系统通过重新使用(reprupose)分类器来执行形式检测。为了检测一个目标,这些系统为该目标取一个分类器,并在test image的不同locations 和scales上来评估它。像可变形部件模型(DPM)这样的系统使用滑动窗口的方法,分类器在整个图像上均匀间隔的位置运行。DPM:DPM目标检测算法_知识搬运工的博客-CSDN博客_dpm目标检测更近一些的方法像R-CNN用区域建议方法(region proposal methods),首先在图像中生成.
2021-11-05 22:53:47
4277
原创 yolo系列学习(入门经过)
1、端到端训练的具体含义是什么(一个loss function搞定训练,只需关注输入端和输出端)2、batch normalization技术要看看3、多尺度训练是怎么实现在速度和准确率之间权衡的
2021-11-03 20:03:27
10414
2
原创 【pytorch】TensorBoard使用
超级厉害的中文官方教程:https://pytorch.apachecn.org/#/docs/1.7/541、下载配置TensorBoard官网教程的两个要安装的包pip install torch torchvisionpip install torch_tb_profiler目前用的多的是from torch.utils.tensorboard import SummaryWriter2、SummaryWriter使用画表格:from torch.utils.t
2021-10-24 09:26:42
3123
原创 Accurate,Large Minibatch SGD:Training ImageNet in 1Hour
一、摘要想要缩短训练时间,分布式同步SGD(Distributed synchronous SGD )通过将SGD minibatches划分到一个并行的解析器池,为这个问题提供了一个潜在的解决方案。然而,为了使该方案高效,每个解析器的工作负载必须很大,这意味着SGD minibatch大小的显著增长。在本文中,我们的经验表明,在ImageNet数据集上,大的minibatches会导致优化的缺陷,但当解决这些问题时,经过训练的网络表现出很好的繁华。具体来说,当使用高达8192张图像的minibatch
2021-10-17 21:24:50
915
原创 【PRUNING FILTERS FOR EFFICIENT CONVNETS】半译笔记
摘要近期关于降低模型压力的方法包括在不降低原始精度的情况下修剪和压缩不同层的权重。基于大小的权值剪枝(magnitude-based pruning of weight)减少了全连接层中的大量参数,但由于经过剪枝的网络中的不规则稀疏性(irregular sparsity in the pruned networks),可能不能充分降低卷积层中的计算成本。我们提出了一种CNN的加速方法,从被认为对输出精度影响很小的CNN中删除滤波器(filters)。通过去除网络中的整个滤波器及其连接特征图(their
2021-10-17 02:35:27
498
原创 Optimal brain damage
本文的思想是使用二阶导数来对网络复杂性和测试误差之间做一个平衡1、介绍本文介绍一个OBD方法通过选择性地删除权重来减小网络的大小。我们将展示OBD方法既是一个自动最小化网络的过程,又是一个达到最佳网络架构的交互工具。OBD的基本思想是将一个训练好的网络,删除一半甚至一半以上的权重,最终会和原来的网络性能一样好,甚至更好。这个思想可以在需要解决的问题很复杂,并且训练数据有限的情况下使用。这个思想的理论支撑是:当训练数据有限时,有太多权重的神经网络泛化能力反而不好。另一方面,权重数量太少的神经网络又
2021-10-14 23:08:25
895
原创 【ubuntu安装】配置pytorch+cuda+nvidia驱动+pycharm+输入法+cuda
1、ubuntu安装(1)制作启动盘随便选一个没用的U盘来作为启动盘,我使用的是软件制作启动盘,在制作过程中会格式化U盘,为了确保有用数据不丢失,请做好备份。经过寻找尝试ventoy软件制作启动盘还是比较方便的。这里提供本人网盘ventoy下载链接链接:https://pan.baidu.com/s/1Xd8BYD9D3SvWVWuie8uI3g提取码:1234解压后运行Ventoy2Disk程序选择设备制作启动盘,安装成功后会在U盘里面创建一个空的ventoy文件夹,把镜..
2021-09-29 22:07:21
320
原创 【opencv-python】 HSV抠图-智能车拟合道路边界和中线
1、实战项目(找中线)目标是从面对这种简单环境用opencv画出中线,下面是过程实现2、opencv-python基于HSV抠图这种环境看似简单,但是用灰度处理二值化的效果奇差,最后选择用HSV进行分割。先导入包:import cv2import cv2 as cvimport numpy as np然后把图片用cvtColor转化成HSV格式img=cv.imread("1.png")img=cv.cvtColor(img,cv.COLOR_BGR..
2021-09-28 23:40:44
5032
5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人