- 博客(13)
- 问答 (1)
- 收藏
- 关注
原创 YOLOv7特征层可视化
需要参数python viz-filter-feature-map.py --model {YOUR MODEL'S WEIGHT(.pt) FILE} --cfg {CFG FILE(.yaml) OF YOUR MODEL}--image {YOUR IMG} --name {OUTPUT FOLDER NAME, CREATED AT ./visualize-filter/feature-map}以下代码为YOLOv7的每层卷积层的可视化,同样可以应用在其他网络,需自行修改。
2023-12-05 20:41:50 1135
原创 yolov7运行test.py文件出现subprocess.CalledProcessError: Command ‘git tag‘ returned non-zero exit status 12
尝试过将subprocess.py文件中的check换为Fasle但是并没有作用,经过排除发现,存储权重的文件夹。,导致不能查找到正确的权重文件,导致程序需要自动翻墙去官网下载权重,也就导致最后报错。在用自己训练好的权重进行test时,出现。
2023-10-10 09:41:36 1338 8
原创 用自己训练的权重训练其他模型出现的问题ValueError: loaded state dict contains a parameter group that doesn‘t match the s
【代码】用自己训练的权重训练其他模型出现的问题。
2023-06-01 17:30:33 1363
原创 解决git clone慢的问题
不需要更改ip地址之类的复杂操作,像安装各种包一样,使用镜像就可以了。但是有些镜像不能使用,或者更新了域名。经过尝试以下为有效镜像。
2023-05-19 10:22:58 226 1
原创 训练网络好坏的监察——loss
损失函数以及参数更新策略,因为如果损失函数是凸的,而且采用的梯度下降策略,在训练的过程中,训练集最多不下降,但是一般不会上升。1.训练集loss不断降低,但是测试集的loss先下降在增加说明模型过拟合了,一般adam优化器会经常出现这种情况,尝试使用其他优化器,同样可以加dropout,bn,做数据增广,加别的正则化试一下。2.训练集loss不断降低,但是测试集loss一直增加,查看训练集和验证集分布是不是一样,在划分之前先shuffle一下。
2023-03-20 10:30:24 679
原创 训练YOLOv7出现的UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the inde
找到这一处,将indexing=‘ij’加入到。直接点击报错处转到functional文件。
2023-03-19 18:29:12 596
原创 YOLOv7结果分析,txt文件内容
分别的含义是训练次数、GPU消耗、训练集边界框损失、训练集目标检测损失、训练集分类损失、训练集总损失、targets目标、输入图片大小、Precision、Recall、mAP@.5、mAP@.5:.95、验证集边界框损失、验证集目标检测损失、验证集分类损失。此txt文件是魔改后的一个训练结果,其中验证集边界框损失、验证集目标检测损失、验证集分类损失是nan,目前还在查找原因,如果有会的大佬希望指点一下。
2023-03-16 15:17:39 3738 3
原创 DW卷积、PW卷积、转置卷积、膨胀卷积(空洞卷积)、可变形卷积一次看个够
DW卷积操作中,每一个卷积核是只负责一个通道的,这与普通卷积一个卷积核负责几个通道是不一样的。比如一个5*5*3的彩色图片作为输入,使用普通卷积那么卷积核就可以设置为3*3*n(n为输出通道数),而DW卷积则为3*3*3(卷积核的数量要与输入通道数量一致),所以一个卷积核只能负责一个通道。转置卷积也被人叫做反卷积或者逆卷积,其实正确的叫法就是转置卷积,并不是卷积之后通过转置卷积再得到原来的特征图,转置卷积所得到的上采样特征图中的数值与原特征图并不一样,所以反卷积或者逆卷积的叫法是不好的。
2022-11-05 16:04:02 7756 1
原创 欠拟合与过拟合
但是并不是某一轮的accuracy不再提高了就停止了,它有可能下一轮或者下几轮就有有提升了,那么一般的做法是,在训练的过程中,记录到目前为止最好的validation accuracy。比如给你一张张三的照片,张三短头发、小眼睛、浓眉毛等等,欠拟合就是你没有记住张三的特征,连张三都还没有记住长什么样,而过拟合是你记住了这张照片上的张三,但是再给你一张张三的照片,但是他是长头发,你却不认识他了。2、选取的训练数据不合适,比如照片中的人都是长发,那么机器就会把长发和人作为一个必然联系,所有人都是长发的。
2022-10-31 20:12:07 206
原创 目标检测中常见的指标
同样如上图所示,当检测框的数量很多时,把所有对象都包含,且此时FN=0,没有漏检,此时recall是等于100%的,但是实际图中还有很多FP,所以仅凭此也不能表达网络的好坏。但是仅凭此并不能准确评判网络的好坏,例如上图,FP=0,那么套入公式Precision就等于1了,查准率为100%,但是实际还有未检测的对象,所以仅凭此不能评判网络的好坏。FP(False Positive,假阳性):IoU
2022-10-27 10:37:58 821
原创 FPN结构理解
其中1*1的conv是为了保证他们的channel是一样的,从而可以进行不同特征层之间的融合,其中的上采样是为了,深层网络的特征图大小,能够通过upsampling增大特征图,以便深层特征图向底层特征图进行融合。因为深层的网络会更加关注语义信息,浅层网络关注细节信息,所以对于图像中的小目标的检测效果不会太好。(c)在每一层都进行图像的预测特征提取。但是这样得到的特征很多都是弱特征(浅层网络提取到的特征),也就导致特征不鲁棒。(d)在c的基础上,对每一层提取到的特征进行融合,再进行图像的预测。
2022-10-27 09:48:51 643
原创 Repvgg理解过程出现的问题
对此又找出了b站up主刘二大人的视频(pytorch第十讲30多分)仔细看了一遍,其实卷积核的通道数是可以自己设定的,最后的输出的通道数与此卷积核的通道数是无关的,输出的通道数是与卷积核的个数相关的,如下图。就是将resnet的shortcut给去掉的同时不改变推理的效果。其中1就是输入通道的数量(input channel,也就是卷积核的通道数),10就是输出通道的数量(output,也就是卷积核的个数)。至于重参数化过程的推理,可以直接点击上边的连接,此处只记录小白的个人困惑。
2022-10-26 16:41:08 464
原创 bottleneck与basicblock
bottleneck相对于basicblock,将一层3*3卷积换为了2层1*1卷积,而shortcut并没有改变,这样利用1*1卷积便可以保证输出要求不变的情况下,减小网络的参数量,这也就是为什么深层网络使用了bottleneck。其实bottleneck和basicblock就是resnet网络中的两种模块,浅层网络使用的basicblock(ResNet18 ResNet34),深层网络使用的bottleneck(ResNet50 ResNet101)
2022-10-14 15:15:17 2251
空空如也
OpenCV+Python,meanshift算法选择跟踪目标后,控制云台转动
2022-03-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人