
pytorch
*pprp*
GiantPandaCV公众号作者,研究方向automl,nas
展开
-
RuntimeError: CUDA error: CUBLAS_STATUS_ALLOC_FAILED when calling `cublasCreate(handle)`
处理方法:检查class num和prediction维度是否一致。减少batch size原创 2021-06-20 15:29:09 · 371 阅读 · 0 评论 -
【Pytorch基础】Torchvision中transform的脚本化
Transforms从torch1.7开始新增了该特性,之前transform进行数据增强的方式是如下的,i.e. 使用compose的方式:default_configure = T.Compose([ T.RandomCrop(32, 4), T.RandomHorizontalFlip(), T.RandomResizedCrop((32, 32)), T.RandomRotation(15)原创 2021-06-17 20:47:30 · 401 阅读 · 0 评论 -
RuntimeError: CUDA error: device-side assert triggered
RuntimeError: CUDA error: device-side assert triggeredterminate called after throwing an instance of ‘c10::Error’/c10d/NCCLUtils.hpp:155, unhandled cuda error, NCCL version 2.7.8分析: 这种报错通过查找博客,发现应该是代码实现中某些地方出了bug,比如label越界,sqrt 内容小于0等。但是笔者从另一个角度给可能存在的bu原创 2021-04-20 09:32:24 · 1347 阅读 · 0 评论 -
遇到的PyTorch API
文章目录1. torch.chunk1. torch.chunktorch.chunk(input, chunks, dim=0) → List of Tensors将input tensor划分成特定的块数,每个块都是input tensor的一个视图,最后一个块可能会小一点,因为不能被dim整除。input 输入tensorchunks 返回多少个块dim 沿着哪个维度进行切分>>> import torch>>> a = torch.zeros(原创 2021-02-04 09:15:01 · 286 阅读 · 2 评论 -
PyTorch消除训练瓶颈 提速技巧
【GiantPandaCV导读】训练大型的数据集的速度受很多因素影响,由于数据集比较大,每个优化带来的时间提升就不可小觑。硬件方面,CPU、内存大小、GPU、机械硬盘orSSD存储等都会有一定的影响。软件实现方面,PyTorch本身的DataLoader有时候会不够用,需要额外操作,比如使用混合精度、数据预读取、多线程读取数据、多卡并行优化等策略也会给整个模型优化带来非常巨大的作用。那什么时候需要采取这篇文章的策略呢?那就是明明GPU显存已经占满,但是显存的利用率很低。本文将搜集到的资源进行汇总,由于目前原创 2020-12-28 08:24:49 · 4172 阅读 · 0 评论 -
PyTorch Lightning工具学习
【GiantPandaCV导语】Pytorch Lightning是在Pytorch基础上进行封装的库,为了让用户能够脱离PyTorch一些繁琐的细节,专注于核心代码的构建,提供了许多实用工具,可以让实验更加高效。本文将介绍安装方法、设计逻辑、转化的例子等内容。PyTorch Lightning中提供了以下比较方便的功能:multi-GPU训练半精度训练TPU 训练将训练细节进行抽象,从而可以快速迭代1. 简单介绍PyTorch lightning 是为AI相关的专业的研究人员、研究生、原创 2020-12-08 10:43:27 · 2879 阅读 · 0 评论 -
CenterNet测试推理过程
【GiantPandaCV导语】这是CenterNet系列的最后一篇。本文主要讲CenterNet在推理过程中的数据加载和后处理部分代码。最后提供了一个已经配置好的数据集供大家使用。代码注释在:https://github.com/pprp/SimpleCVReproduction/tree/master/CenterNet1. eval部分数据加载由于CenterNet是生成了一个heatmap进行的目标检测,而不是传统的基于anchor的方法,所以训练时候的数据加载和测试时的数据加载结果是不同的。原创 2020-09-01 21:05:07 · 1363 阅读 · 2 评论 -
CenterNet之loss计算代码解析
[GiantPandaCV导语] 本文主要讲解CenterNet的loss,由偏置部分(reg loss)、热图部分(heatmap loss)、宽高(wh loss)部分三部分loss组成,附代码实现。1. 网络输出论文中提供了三个用于目标检测的网络,都是基于编码解码的结构构建的。ResNet18 + upsample + deformable convolution : COCO AP 28%/142FPSDLA34 + upsample + deformable convolution :原创 2020-08-17 21:59:03 · 2871 阅读 · 2 评论 -
通过DarkLabel构建DeepSort标注格式和ReID数据集
上一篇文章推荐了DarkLabel标注软件,承诺会附上配套的代码,本文主要分享的是格式转换的几个脚本。先附上脚本地址: https://github.com/pprp/SimpleCVReproduction/tree/master/DarkLabel先来了解一下为何DarkLabel能生成这么多格式的数据集,来看看DarkLabel的格式:frame(从0开始计), 数量, id(从0开始...原创 2020-04-30 11:57:06 · 2646 阅读 · 20 评论 -
PyTorch中模型的可复现性
在深度学习模型的训练过程中,难免引入随机因素,这就会对模型的可复现性产生不好的影响。但是对于研究人员来讲,模型的可复现性是很重要的。这篇文章收集并总结了可能导致模型难以复现的原因,虽然不可能完全避免随机因素,但是可以通过一些设置尽可能降低模型的随机性。1. 常规操作PyTorch官方提供了一些关于可复现性的解释和说明。在PyTorch发行版中,不同的版本或不同的平台上,不能保证完全可重复...原创 2020-02-26 08:06:25 · 1003 阅读 · 0 评论 -
【从零开始学习YOLOv3】2. YOLOv3中的代码配置和数据集构建
前言:本文是讲的是如何配置pytorch版本的yolov3、数据集处理、常用的命令等内容。该库的数据集格式既不是VOC2007格式也不是MS COCO的格式,而是一种新的格式,跟着文章一步一步来,很简单。另外我们公众号针对VOC2007格式数据集转化为本库所需要格式特意开发了一个简单的数据处理库。1. 环境搭建将github库download下来。git clone https://...原创 2020-01-17 14:48:56 · 1965 阅读 · 17 评论 -
【CV中的Attention机制】简单而有效的SENet-注意力机制的鼻祖
Squeeze-and-Excitation NetworksSENet是Squeeze-and-Excitation Networks的简称,拿到了ImageNet2017分类比赛冠军,其效果得到了认可,其提出的SE模块思想简单,易于实现,并且很容易可以加载到现有的网络模型框架中。SENet主要是学习了channel之间的相关性,筛选出了针对通道的注意力,稍微增加了一点计算量,但是效果比较好。...原创 2020-01-01 11:25:41 · 2619 阅读 · 2 评论 -
【CV中的Attention机制】Non-Local neural networks的理解与实现
1. Non-localNon-Local是王小龙在CVPR2018年提出的一个自注意力模型。Non-Local NN和Non-Local Means非局部均值去燥滤波有点相似的感觉。普通的滤波都是3×3的卷积核,然后在整个图片上进行移动,处理的是3×3局部的信息。Non-Local Means操作则是结合了一个比较大的搜索范围,并进行加权。详见:https://blog.youkuaiyun.com/qi...原创 2020-01-05 19:00:09 · 1347 阅读 · 0 评论 -
【CV中的Attention机制】CBAM的姊妹篇-BAM模块
1. BAMBAM全程是bottlenect attention module,与CBAM很相似的起名,还是CBAM的团队完成的作品。CBAM被ECCV18接受,BAM被BMVC18接收。CBAM可以看做是通道注意力机制和空间注意力机制的串联(先通道后空间),BAM可以看做两者的并联。这个模块之所以叫bottlenect是因为这个模块放在DownSample 也就是pooling lay...原创 2020-01-03 20:45:04 · 1930 阅读 · 1 评论 -
验证码识别竞赛解决方案(97%准确率)
前言:这个库是为验证码识别竞赛而开发的一个基于pytorch实现的端到端的验证码识别系统。前后开发大概有2个月,其中大部分时间都在调参,后期参考kaggle大神经验,加入了一些trick,但是由于第一个榜截止了,所以没有得到测试集结果,只有验证集的参考结果。该库比较简单,适合入门竞赛,不过调参难度比较大,需要尝试合适的超参数,如果超参数不合适,可能会导致无法收敛,具体问题具体分析。1. 竞赛...原创 2019-12-22 09:50:41 · 2263 阅读 · 6 评论 -
Attention机制中CBAM以及Dual pooling的pytorch实现
前言:虽然会pytorch框架中的一些基础操作,但是有很多实现直接让自己写还是挺困难的。本次的代码参考senet中的channel-wise加权,CBAM中的channel-attention和spatial-attention, 另外还有kaggle Master@gray 分享的Dual pooling。由于没有特别的逻辑,所以看到哪写到哪吧。1. SENET中的channel-wise...原创 2019-11-29 22:28:36 · 4879 阅读 · 2 评论 -
mmdetection使用指南
主要是目标检测方面的使用记录,mmdetection还有分类网络,分割等功能,但这篇博客主要关注目标检测,之后如果涉及到分割会再开一篇博客进行记录。1. 安装mmdetection需要的环境是cuda10.0为基础的环境,对驱动版本也有一定的要求,cuda8.0的我始终没有配通,主要的错误都是跟cuda相关的。具体安装过程参见:https://blog.youkuaiyun.com/DD_PP_JJ...原创 2019-11-13 21:56:29 · 6829 阅读 · 9 评论 -
Pytorch中张量的构造与组织
前言:《神经网络与PyTorch实战》读书笔记之PyTorch中的张量操作文章目录1. PyTorch中的张量2. 构造Tensor实例方法3. 组织张量元素(重点)3.1 重排张量3.2 选取部分张量3.3 张量扩展和拼接3.4 torch内置统计函数1. PyTorch中的张量torch.Tensor类的常用成员:size() 返回张量大小dim() 返回张量维度numel...原创 2019-10-30 16:12:53 · 1926 阅读 · 0 评论