
AI/ML/DL
文章平均质量分 59
there2belief
这个作者很懒,什么都没留下…
展开
-
使用numpy计算miou指标
【代码】使用numpy计算miou指标。原创 2024-11-29 11:22:54 · 180 阅读 · 0 评论 -
NVIDIA驱动失效简单解决方案:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver.
机器已经安装nvidia驱动,且正常使用,重启后找不到显卡驱动打开终端,用nvidia-smi查看一下,发现如下报错:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.查看发现系统中的显卡驱动自动升级了,重启后没有正常找到驱动发现驱动是存在的,于是进行下一步比原创 2024-04-26 11:34:19 · 3111 阅读 · 0 评论 -
【mmseg】‘SegDataPreProcessor is not in the model registry问题解决
在使用mmseg的模型进行推理导出为torchscript时出错: 出错原因是模块没在注册信息中找到,需要添加mmseg注册模块代码。 具体参考:Here is the answer : #9719 (comment)The whole thing can be fixed by adding this to you inference script :I explain some of what I understood in the issue above, it's原创 2024-01-12 15:24:36 · 1710 阅读 · 1 评论 -
GPU 利用率低常见原因分析及优化
优化:设置 torch.utils.data.DataLoader 方法的 num_workers 参数、tf.data.TFRecordDataset 方法的 num_parallel_reads 参数或者 tf.data.Dataset.map 的 num_parallel_calls 参数。如上图所示,GPU 任务会交替的使用 CPU 和 GPU 进行计算,当 CPU 计算成为瓶颈时,就会出现 GPU 等待的问题,GPU 空跑那利用率就低了。d、关于查询操作,多使用 dict 加速查询操作;转载 2023-11-25 21:39:19 · 2022 阅读 · 0 评论 -
【CUDA】算子编译错误ATen/ATen.h: No such file or directory
在Torch1.10环境下,build含CUDA算子编译的工程时出错:build命令:错误:出错的主要原因是用于编译算子的torch版本不合适,升级Torch1.11后正常编译。原创 2023-11-09 22:46:33 · 2009 阅读 · 0 评论 -
【mmrotate】*** is not in the task util registry
使用mmrotate-1.x 自定义类时,明明已经注册,并添加到__init__.py中,但提示没有注册。原创 2023-11-09 22:38:43 · 392 阅读 · 0 评论 -
【错误】 undefined symbol: cublasLtHSHMatmulAlgoInit, version libcublasLt.so.11
pip安装完pytorch=1.13.1后,build代码时出错:原因因为pytorch1.13安装时会给我们自动安装但由于一般用户已经安装CUDAtoolkit,所以会产生这个错误。原创 2023-10-17 15:54:20 · 1190 阅读 · 3 评论 -
PyTorch Lightning错误TypeError: lr_scheduler_step() takes 3 positional arguments but 4 were given
使用PyTorch Lightning时对lr_scheduler_step定义如下: 出错: 出错原因是参数差异导致的,函数定义接收3个参数,但是实际调用的时候传参并不是3个,而是4个,可以在定义函数的时候使用参数列表,避免参数数量差异出错。参考:Error in `lr_scheduler_step()` function - LightningModule - Lightning AI原创 2023-08-23 07:30:46 · 527 阅读 · 0 评论 -
Coco数据集中的rle格式处理
原文链接:https://blog.youkuaiyun.com/xx_xjm/article/details/126608359。rle = {'size':[512,512],'counts': '一个很长的字符串乱码'}直接利用下面这条命令就可以得到二值mask。此时该如何转化为可以训练的mask呢?2:mask转rle。1:rle转mask。转载 2023-07-31 18:46:32 · 1014 阅读 · 0 评论 -
docker gpu报错Error response from daemon: could not select device driver ““ with capabilities: [[gpu]]
Docker容器中使用Nvidia GPU报错 docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]]转载 2023-07-28 04:58:53 · 1039 阅读 · 0 评论 -
【mmcls】mmdet中使用mmcls的网络及预训练模型
mmcls现在叫mmpretrain,以前叫mmclassification,这里为了统一称为mmcls。在基于MM框架的下游任务,例如检测(mmdetection)中可以使用mmcls中的backbone进行特征提取,但这就需要知道网络的参数以及输出特征的维度。本文简单介绍了在mmdetection中使用mmcls中backbone的方法。mmdetection中需要配置backbone、模型权重及neck的特征维度等信息。原创 2023-06-15 11:55:05 · 2465 阅读 · 2 评论 -
【MMDetection】ERROR:The testing results of the whole dataset is empty
使用MMdetection复现论文swin Transformer,显示错误:与此同时,各项评价指标如AP,AR结果趋于零,F1值变成-1,loss与grad_norm爆炸增加,具体情形如下图: 看到报错的第一眼,猜测可能是数据集的问题,所以检查了数据集的路径,然后检查了数据集里面是否有图片,但经过一番验证,排除了这种可能性。如果数据集本身有问题,代码一开始就无法运行起来,因为mmdet一定会报错,而且报错内容是:找不到数据集或者说找不到某张图片。再仔细观察报错:ERROR:The testing res转载 2023-06-14 17:24:55 · 1600 阅读 · 2 评论 -
GitHub 下载某个程序的特定版本(代码)
可以强制切换分支以舍弃修改,再checkout。你当前文件夹下的源码会变成这个版本号的源码。git checkout +某版本号。git tag 列出所有版本号。git clone 下载源码。原创 2023-06-12 14:06:33 · 1215 阅读 · 0 评论 -
MMDetection 3.x中的PackDetInputs
重新规范化了一下,更标准化的输入数据有利于进行检测 /语义分割 /全景分割。源码附在最后,其keys默认包括'img_id', 'img_path', 'ori_shape', 'img_shape', 'scale_factor', 'flip', 'flip_direction'。可以在函数定义的注释中查看,例如RandomFlip函数(mmdetection-3.0.0\mmdet\datasets\transforms\transforms.py)可以看到。关于源码理解可以参考这位博主的。原创 2023-06-08 11:47:21 · 1463 阅读 · 1 评论 -
Python机器学习笔记:异常点检测算法——Isolation Forest
1,异常点检测算法使用场景什么时候我们需要异常点检测算法呢?常用的有三种情况。1.做数据预处理的时候需要对异常的数据做过滤,防止对归一化等处理的结果。2.对没有标记输出的特征数据做筛选,找出异常的数据。3.对有标记输出的特征数据做二分类时,由于某些类别的训练样本非常少,类别严重不平衡,此时也可以考虑用非监督的异常点检测算法来做。转载 2023-06-06 18:28:48 · 2577 阅读 · 0 评论 -
scikit-learn奇异值和异常值检测
判断新观测值是否与现有观测值具有相同的分布(它是一个内点(inlier)),或者应该被认为是不同的(它是一个离群值)。离群点检测和奇异值检测都用于异常检测, 其中一项感兴趣的是检测异常或异常观察。离群点检测又被称之为无监督异常检测,奇异值检测又被称之为半监督异常检测。在。相反的,在奇异值检测的背景下,奇异值/异常点只要位于训练数据的低密度区域,是可以形成稠密聚类簇的,在此背景下被认为是正常的。scikit-learn项目提供了一组机器学习工具,可用于新颖性或离群值检测。然后可以使用以下predict。转载 2023-06-06 18:25:49 · 1042 阅读 · 0 评论 -
timm错误features_only not implemented for Vision Transformer models.
使用timm的ViT模型时出错:features_only not implemented for Vision Transformer models.原创 2023-06-05 19:05:17 · 553 阅读 · 0 评论 -
使用timm模型的金字塔特征
【代码】使用timm模型的金字塔特征。转载 2023-06-05 18:58:39 · 291 阅读 · 0 评论 -
mmdetection修改backbone使用mmcls和timm已有模型
官方文档对更换backbone已经有了比较详细的介绍,特别是较新的版本已经支持mmcls库以及timm库中的现有分类网络,一般直接拿来修改使用即可,但这里最重要的一点就是需要保证修改后的backbone要和后面的neck结构进行进行匹配,主要是通道数方面。目标检测模型的通用结构如下图所示,如果更改backbone后导致于neck的结构不适配,将导致模型失效报错。转载 2023-06-05 18:51:59 · 1439 阅读 · 1 评论 -
nvidia-smi 在 MIG M. 出现 Disabled
两卡的 NVIDIA A100 服务器,在输入命令 nvidia-smi 时,出现了和之前不同的界面,如下图所示:在最右列的选项中,除了 Uncorr. ECC 和 Compute M. 之外,还多出了一个 MIG M. 选项,并且其状态置为。转载 2023-05-30 14:53:36 · 1411 阅读 · 0 评论 -
MMRotate注册模型无法使用,提示is not in the model registry
使用MMRotate注册了backbone模型后,发现无法使用,出现错误:模型中的伪代码如下:(这里是mmrotate-1.x/mmdet-3.x,用法与mmrotate-0.x/mmdet-2.x不同)原创 2023-05-24 16:17:09 · 2288 阅读 · 1 评论 -
【nvidia-smi报错】Failed to initialize NVML: Driver/library version mismatch
使用nvidia-smi命令查看显卡状态时,出现错误:而使用nvcc -V查看cuda版本时,显示正常。原创 2023-05-19 09:39:45 · 782 阅读 · 0 评论 -
nvidia-smi命令输出结果缓慢问题
比如你服务器插着4张卡的时候,有个BUS-ID 02的卡坏了,你把它拔了,再运行$ nvidia-smi,发现还会有BUS-ID 02的显卡出现在结果中。可以看到BUS-ID 02对应的卡槽为SLOT-2,SLOT标号一般在主板上,白色字体,在每个PCIE插槽(很长的那个插槽,插显卡的)的上方。可以看到,损坏的显卡(BUS-ID 02)的序列号(Serial Number)尾号为4953。4、去机房,找到这台服务器上SLOT-2卡槽插的序列号(显卡上一般会贴有白色的序列号标签)尾号为4953的那张卡!转载 2023-05-10 09:53:32 · 6111 阅读 · 0 评论 -
YOLOv5之autoanchor看这一篇就够了
简单粗暴,废话也不罗嗦了,学习目的就是解决下面三个问题,传送门: yolov5/autoanchor.py来先粗略的概览一下函数名来了解一下整个过程,以coco128数据作为学习数据集,这是一个阉割版的COCO数据集,里面只有128张图片,929个标注框。总揽一下yolov5工程下utils/autoanchor.py这个文件,文件中函数从上面函数名还是比较明确的,kmeans就是很常用的聚类方法,说明anchor是通过kmeans聚类而来。转载 2023-05-08 11:23:46 · 2650 阅读 · 2 评论 -
多任务学习中各loss权重应该如何设计呢?
在网络架构的设计中,最简单和最流行的方法是硬参数共享(HPS,LibMTL.architecture.HPS),如图1所示,其中编码器在所有任务之间共享,每个任务都有自己的编码器以及特定的解码器。(1)把各loss统一到同一个数量级上,其背后的原因是不同任务的不同损失函数尺度有很大的差异,因此需要考虑用权值将每个损失函数的尺度统一。和每个子任务之间的约束。而对于“不同网络部分梯度的数量级”问题,虽然梯度值相同,但不同的loss在task上的表现也是不同的,所以还是要找不同loss的合适平衡点。转载 2023-05-05 15:32:30 · 2554 阅读 · 0 评论 -
yolov5源码解析--损失计算与anchor
本文章基于yolov5-6.2版本。主要讲解的是yolov5在训练过程中是怎么由推理结果和标签来进行损失计算的。损失函数往往可以作为调优的一个切入点,所以我们首先要了解它。转载 2023-04-25 10:46:24 · 1659 阅读 · 0 评论 -
yolov5源码解析--输出
本文章基于yolov5-6.2版本。主要讲解的是yolov5是怎么在最终的特征图上得出物体边框、置信度、物体分类的。转载 2023-04-25 10:08:01 · 4391 阅读 · 0 评论 -
目标检测 YOLOv5的loss权重,以及与图像大小的关系
YOLOv5中有三个损失分别是 box, obj, cls在超参数配置文件hyp.*.yaml中可以设置基础值,例如训练使用时,在train.py进行更新可以看到损失与nl(number of detection layers,检测层的层数,这里是3)和图像尺寸相关,与layers相关这个好理解,是因为损失多个layers的加和。与图像尺寸相关则需要进一步探讨。然后,在loss计算时会乘上各自的权重loss.py训练时会过滤掉小于2像素的框。原创 2023-04-23 15:43:40 · 4719 阅读 · 1 评论 -
yolov5关闭wandb
yolov5训练过程中wandb总是提示登入账号,不登入还不能继续训练,想要关闭wandb,直接不使用即可。参考:https://blog.youkuaiyun.com/athrunsunny/article/details/123428667。在\yolov5\utils\loggers\wandb\wandb_utils.py中。同时在\yolov5\utils\loggers\__init__.py中。import wandb的位置下面同样加上wandb = None。这样就可以关闭wandb。原创 2023-04-21 16:52:41 · 2668 阅读 · 1 评论 -
测试torch方法是否支持半精度
并不是所有的torch方法都支持半精度计算。测试半精度计算需要在cuda上,cpu不支持半精度。因此首先需要创建半精度变量,并放到cuda设备上。部分方法在低版本不支持,在高版本支持半精度计算,部分方法一直不支持。例如行列式计算torch.linalg.det()不支持半精度。d = a.det()是半精度计算,出错,***not implemented for 'Half'c = b.det()是单精度计算,正常;原创 2023-04-20 21:41:42 · 804 阅读 · 0 评论 -
RuntimeError: CUDA error: no kernel image is available for execution on the device
代码换机器执行时,使用包含自行编译的cuda算子库so时出错:这是由于新旧机器的cuda环境不一致,使得之前编译的库无法正常使用,需要在新机器重新编译cuda算子库so文件原创 2023-04-18 13:44:21 · 304 阅读 · 0 评论 -
CUDA编译报错unsupported GNU version! gcc versions later than 10 are not supported!
python编译用于cuda的so文件中,使用编译.cu文件出错:gcc版本过高,与cuda不兼容,查看本机的gcc版本:安装版本10的gcc和g++:为nvcc编译器指定特定版本的gcc:由于linux中可以有多个版本的gcc和g++,我们可以为系统默认的gcc和g++指定特定的默认版本,但是对于cuda的nvcc来说有更方便的方法,那就是nvcc会优先读取自身路径下的gcc然后如果没有再读取系统默认路径下的gcc,因此我们只需要为nvcc设置特定版本gcc的软连接即可:然后可以正常编译转载 2023-04-18 13:35:03 · 5016 阅读 · 0 评论 -
pycharm专业版连接远程docker容器
6006端口是用来运行tensorboard的,这里重要的是22端口。如果希望通过ssh远程连接docker,需要对容器的22端口做端口映射。转载 2023-03-24 13:55:38 · 717 阅读 · 0 评论 -
GIoU (Generalized Intersection over Union) 详解
在目标检测任务中,多是采用L1或L2回归损失,回归loss相同的情况下,IoU却可能大不相同。IoU有尺度不变性的优点,但是将其作为损失函数,由于某些方面的问题,无法直接使用。转载 2023-03-07 18:51:18 · 1351 阅读 · 0 评论 -
理解depth-wise 卷积
EfficientNet利用depth-wise卷积来减少FLOPs但是计算速度却并没有相应的变快。反而拥有更多FLOPs的RegNet号称推理速度是EfficientNet的5倍。非常好奇,这里面发生了什么,为什么计算量小的网络推理速度反而慢于计算量大的网络?转载 2023-03-07 17:24:02 · 781 阅读 · 0 评论 -
【论文-目标检测】RTMDet: An Empirical Study of Designing Real-Time Object Detectors
发展YOLO系列并方便支持实例分割和斜框检测等任务,亮点:设计兼容性backbone和neck,采用大核深度可分离卷积;动态标签分配中采用软标签计算匹配损失;结合训练达到实时检测、实时实例分割和斜框检测SOTA。翻译 2023-03-06 13:52:39 · 3230 阅读 · 0 评论 -
nms_rotated编译出错fatal error: THC/THC.h: No such file or directory
nms_rotated编译出错fatal error: THC/THC.h: No such file or directory,该问题是在torch==1.11时出现,暂时没有好的解决方案,可以将torch版本降到1.10原创 2023-02-10 09:14:59 · 1012 阅读 · 1 评论 -
YOLOv5训练参数简介
yolov5参数转载 2023-02-06 08:00:41 · 12614 阅读 · 2 评论 -
基于Slicing Aided Hyper Inference (SAHI)做小目标检测
遥感等领域数据大图像检测时,直接对大图检测会严重影响精度,而通用工具多不能友好支持大图分块检测。Slicing Aided Hyper Inference (SAHI)是一个用于辅助大图切片检测预测的包。目前可以良好的支持YOLOX、YOLOv5、MMDetection、Detection2等。原创 2023-02-03 17:51:34 · 1230 阅读 · 0 评论 -
VOC数据集颜色表colormap与代码
VOC数据集颜色表colormap与代码转载 2023-01-18 10:51:59 · 683 阅读 · 1 评论