自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 问答 (1)
  • 收藏
  • 关注

原创 yolo-v5代码数据读取部分理解

3. 通过InfiniteDataLoader类,将dataset,加载为dataloader,loader的长度为总图片数量除以batch。6. 具体调用时,一个batch里的index的随机产生代码还没找到,应该是直接继承了torch,没有任何修改。4. InfiniteDataLoader初始化时,会循环调用方法,按照batch去创建sample,具体一个一个sample应该是在初始化时,自动调用__setattr__方法,循环添加到batch里。__iter__方法会循环返回sample。

2023-08-30 17:59:32 274

原创 mmdet框架理解

mmdet框架顶层简易理解。

2023-02-16 09:55:09 734

原创 map理解

map总结概要

2022-09-15 15:46:30 154

原创 mmdet与pytorch新建卷积层

视觉处理中,卷积网络的常规写法,pytorch和mmdet两个写法

2022-09-07 17:34:04 1735 1

原创 mmdet训练中数据集导入

mmdet训练中数据集导入

2022-08-26 17:27:26 655

原创 记低级错误-mmdet-centernet

mmdet低级错误

2022-08-26 14:48:53 465

原创 mmdet新建个人数据集

mmdet新建sixray数据集

2022-08-25 16:36:15 770

原创 ubuntu系统下matplotlib中文显示问题

matplotlib中文显示乱码,为方框,ubuntu系统,解决方法。

2022-08-03 17:01:07 1574 3

原创 mmdet画图

作图

2021-12-06 17:54:03 350

原创 centernet损失函数修改记录

想将centernet中w,h的loss修正关联起来,采用iouloss进行优化,于是需修改loss函数,注意事项如下:(1)loss函数本身到网络的输出层存在一个函数,这个函数求导,再逐层链式向前求导,完成训练。所以,自己写出的损失函数到pred一定要明确可导,不能乱写。(2)写损失函数尽量使用torch自带的函数和+,-,*,/号进行操作,避免新建变量和for循环等操作,容易造成梯度无法反向传播。(3)正常操作流程如下:loss函数继承nn.module模块,编写forward过程。(4

2021-11-19 17:44:27 1413 7

原创 pytorch及mmdet模型训练学习笔记

(1)定义模型基本操作:定义一个class继承BaseModule,class为模型的类一个class中包括2部分,init和forward函数init为初始化,固定套路继承父类init,用super函数写super(BasicBlock, self).__init__(init_cfg)forward为前向传播函数,即定义数据进来后如何前向传播,包含了数据输入,处理,输出过程。(2)具体分析一个forward函数def _inner_forward(x): id

2021-09-11 16:14:51 1160

原创 mmdet之centernet损失函数记录

1.损失函数在bbox_head中定义,类型为CenterNetHead具体相关代码bbox_head=dict( type='CenterNetHead', num_classes=5, in_channel=64, feat_channel=64, loss_center_heatmap=dict(type='GaussianFocalLoss', loss_weight=1.0), loss_wh=dict(type='L1Loss',

2021-08-19 16:45:26 1112

原创 mmdet框架训练流程通俗理解

mmdet2版本训练执行文件为tools/train.py执行train.py文件后,主要做3件事:(1)创建model;(2)创建dataset;(3)根据配置进行训练,即调用train_detector函数;创建model执行model=build_detector函数创建该函数首先会注册models类,再根据配置生成响应的model这个过程用到了解释器@语法,语法较为复杂通俗理解:就是根据具体的models的类型,如backbone、neck、head等,按照字典表进行

2021-08-04 15:44:02 1868

原创 目标检测模型训练理解

1 学习率经过测试,学习率大,可以快速收敛,但map偏低,学习率小收敛慢,但map稍微高一些。所以,常见做法会设置阶梯学习率,训练过程中逐渐减小学习率。2 训练结束的标准训练结束的标准即为mAp不再下降,或mAP对应为震荡状态。测试发现,loss的大小与map的高低相关。换个角度说,loss为震荡状态不再下降,也标志着训练结束。3 不同方法之间mAP的pk每种方法应当都是发挥极限调参手段取得的最高mAP,这也是为什么自己训练的mAP没有论文中高的原因。...

2021-07-30 16:17:05 1141

原创 conda安装pytorch下载慢的问题

conda install pytorch=1.5 cudatoolkit=10.1 torchvision -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

2021-06-09 16:25:19 145

原创 numpy数组和图片

cv2.imread读取进来的图片为numpy类型数组,数组中的数据类型为np.uint8类型在tensorflow中,计算时的数据变量通常为np.float32类型注意数据类型转换,若cv2.imshow的数组为float32类型,图像就会基本全白data_val = np.zeros([l_val, IMG_HEIGHT, IMG_WIDTH, IMG_DEPTH], dtype='float32')data_val = data_val.astype(np.uint8)数组中数据类

2021-03-24 14:25:12 223

原创 numpy常用操作记录

1.数组维度import tensorflow as tfimport numpy as npa = np.arange(36)print (a)b = np.reshape(a,[2,2,3,3])print (b)print('b[0,0,0,0]:',b[0,0,0,0])print('b[0,0,0,:]:',b[0,0,0,:])print('b[0,0,:,0]:',b[0,0,:,0])print('b[0,:,0,0]:',b[0,:,0,0])print('b[

2021-03-11 11:23:50 81

原创 Faster-rcnn代码python2转换python3的KeyError: b‘TEST‘问题

一直用的一个faster-rcnn代码是python2的,决定把它改为python3。很多报错都是print函数,xrange函数,较好解决。解决到最后被一个报错,卡了一天,在网上也无法找到解决方案,记录一下:报错如下:Caused by op 'PyFunc', defined at: File "/home/q/yd/Faster-RCNN-21/tools/demo.py", line 118, in <module> net = get_network(arg...

2020-09-23 15:45:12 421

原创 python环境管理

不论linux、windows,用conda实现环境管理为最优策略。安装conda后,conda list可查看现有环境初始只有一个可以按需创造多个环境,新建环境在conda的env目录下新环境需要添加包,conda install可添加,但通常conda install里的包会少这时,最优策略是,在该环境下安装一个pip在该环境下执行pip install ,便可以用pip来安装包如果多个pip很混乱,可以直接用路径指明具体是哪一个pip,这样就不会混乱无论conda,还是

2020-08-09 17:29:58 130

原创 python深度学习环境配置扫盲

ubuntu系统下,基于gpu和python做深度学习,需要安装的内容及作用:1.显卡驱动:调用显卡的基础,安装成功后,可以调用nvidia-smi指令,查看显卡驱动版本2.cuda和cudnn:nvidia为显卡加速计算提供的库,cuda和显卡驱动是有对应关系的为了便于多个不同代码的调试,我们可能需要多个版本的cuda,只要将多个cuda都解压到/usr/local目录即可,具体使用哪个,可以通过用户的环境变量配置,使不同的文件夹(用户/环境)使用不同的cuda版本。用户环境变量修

2020-06-17 18:01:48 437

原创 YOLO系列概览

1.YOLO V1采用一个24层的卷积网络加2个全连接层。将画面分成S*S个部分,每个部分负责预测B个框,每个框有x,y,w,h,confidence(是否有目标,IOU为多少)五个预测参数。在VOC数据集中,有20个类别。算法中,B=2,即每个分格预测2个框。所以,最后的输出向量维度为S*S*30,30=5+5+20,最后20个参数代表属于每一个类别的概率,这个概率由预测的2个框共享。由此,也能看出V1的一个重大缺陷:每个分格实际只可以预测一个目标,因为分类概率共享,对于目标密集的画面

2020-06-05 15:38:54 206

原创 网络剪枝

1.全连接层剪枝2.卷积核剪枝卷积核剪枝的学习可参考这篇论文《Pruning Filters For Efficient ConvNets》解决如下问题:前人工作只对全连接层进行了剪枝,未处理卷积层解决思路:对卷积核计算所有项的绝对值和,剪除绝对值和小的。结论:在CIFAR10上,VGG-16的推理成本可降低高达34%,ResNet-110最高可降低38%,同时通过重新训练网络恢复接近原始精度。具体结果对比如下:...

2020-06-05 11:31:17 1058

原创 朴素贝叶斯分类理解

朴素贝叶斯分类算法源于贝叶斯定理。贝叶斯定理:P(AB)=P(A|B)P(B)=P(B|A)P(A),也即P(A|B)=P(B|A)P(A)/P(B)贝叶斯定理的本质:两种条件概率的标书,结果相等。先验概率:袋子里10个字母,6个A,4个B,问抓到A的概率P(A),显然P(A)=0.6。后验概率:即条件概率,袋子里10个字母,抓了10次,6次都是A,问袋子里有几个A。朴素贝叶斯算法可解决的问题:根据观测的现象、属性等来预测分类。即根据样本数据得到一个分类器,来进行后续预测。举例:

2020-06-04 19:15:39 228

原创 SVM算法扫盲理解

名称:SVM(support vector machine)支持向量机要解决的问题:二分类问题形象理解:用一个超平面,将数据二分类。寻找最优超平面,并使得两个类别中,距离超平面距离最近的点,距超平面的距离最远。也即:两个类别中,距离超平面最近的点,会分别决定两个平行的超平面,这两个超平面称为支持向量。本质:凸函数优化问题(一定有全局最优解),优化的目标为:两个支持向量距离最远。线性可分:在N维空间中,若有n-1维的向量可完成数据的分类,该问题即线性可分,寻找到的n-1维向量即超平面。如何

2020-06-04 18:21:16 173

原创 Faster-RCNN基于tensorflow的训练理解

深度学习的训练的理论是梯度下降,这个理论推导很复杂。发展历程中,起源是hinton于1986年提出的BP算法,后续在卷积神经网络和激活函数变为ReLU函数后,梯度下降的算法又有所变化。对梯度下降训练深度网络的理论的学习,重点关注hinton的论文《Learning internal representations by error propagation》。深度学习中,各个框架的使用,如tf,pytorch等,很重要的一点,就是解决了训练问题。训练的本质是,另损失函数,对各个待训练参数求偏导,寻找梯度下

2020-05-29 18:29:14 346

原创 keras例程学习与神经网络理解(一)

keras的example文件夹中有很多例程,学习mnist_mlp.py例程该例程实现功能为,从mnist数据集获取60000个训练样本和10000个测试样本,样本为0-9十个数字,用全连接神经网络进行训练,并测试结果。例程采用60000个数据样本进行训练,对于一般的电脑来说,这样训练会比较费时间,学习测试较慢所以,可以加入以下几行代码:# mnist has 60000 datas,down ...

2018-03-19 17:15:39 2373 4

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除