AI代码相关基础知识
文章平均质量分 75
球场书生
这个作者很懒,什么都没留下…
展开
-
多尺度特征提取模块 Multi-Scale Module及代码
即插即用的多尺度特征提取模块及代码小结Inception ModuleSPPPPMASPPGPMBig-Little Module(BLM)PAFEMFoldConv_ASPP现在很多的网络都有多尺度特征提取模块来提升网络性能,这里简单总结一下那些即插即用的小模块。禁止抄袭或转载!!!Inception Module最早的应该算是在ILSVRC2014比赛分类项目获得第一名的GoogLeNet(Incepetion V1),该网络设计了Inception module。后来出现了很多进化版本:I原创 2022-01-23 14:39:08 · 39742 阅读 · 29 评论 -
神经网络 激活函数小结.2022.01
神经网络激活函数小结.2022.01Sigmoid函数H-Sigmoid函数Tanh函数ReLu函数Softplus函数Leaky ReLu函数PReLu(Parametric)函数Randomized Leaky ReLu函数ELU(Exponential Linear Units)函数ReLu6函数Swish函数(SiLU)H-Swish函数Mish函数高斯误差线性单元(GELUs)Maxout函数FReLU函数AconC函数Meta-ACON禁止转载!!!一般激活函数有如下一些性质:非线性原创 2022-01-22 22:54:02 · 2179 阅读 · 0 评论 -
pytorch从dataloader取一个batch的数据
pytorch从dataloader取一个batch的数据有时候我们需要创建两个DataLoader,来构建正负样本对。这就意味着我们需要从不同DataLoader中取数据。dataloader本质上是一个可迭代对象,可以使用iter()进行访问,采用iter(dataloader)返回的是一个迭代器,然后使用for i in iter(dataloader)循环读取,也可以使用next()访问一次。dataset1= MyDataSet(transform=transforms,dataset_pa原创 2021-12-30 21:04:57 · 12183 阅读 · 0 评论 -
数据增强综述及albumentations代码使用
数据增强综述及albumentations使用基于基本图形处理的数据增强本文涉及到的资料:1.A survey on Image Data Augmentation for Deep Learning2.Albumentations: Fast and Flexible Image Augmentations3.Code基于基本图形处理的数据增强1.翻转;2.旋转;3.仿射变换;4.色彩空间(RGB、YUV、CMY、HSV,在图像情感分析中会影响标签。最简单的方法就是只改变一个通道。对比度、直方原创 2021-12-16 21:37:54 · 5276 阅读 · 4 评论 -
Opencv拼接两张不同尺寸的图像(Python)
Opencv拼接两张不同尺寸的图像代码我有一张大图一张小图想同时显示在一个窗口,并且希望一张窗口中的每张图片显示的时候都没有被拉伸。同一个窗口显示:代码from cv2 import cv2import numpy as np# 作者:球场书生# 日期:2021/12/15image = cv2.imread("1.jpg")transformed_image =cv2.imread("2.jpg")h0,w0=image.shape[0],image.shape[1] #cv原创 2021-12-15 17:15:27 · 7279 阅读 · 0 评论 -
(反卷积)转置卷积的实现
反卷积 转置卷积的实现前言卷积的计算反卷积的计算卷积与转置卷积对比前言在使用卷积的时候,如果真的按照滑动卷积核求和计算的话,计算的速度无疑会比较慢。实际上,计算卷积的时候借助的是稀疏矩阵来计算。我们经常会使用反卷积(转置卷积)来进行上采样,卷积可以使得特征图变小,而反卷积可以让特征图变大,反卷积也叫做转置卷积,为什么这么叫?看了下面的计算过程就知道了。卷积的计算反卷积的计算卷积与转置卷积对比...原创 2021-11-16 09:50:11 · 2827 阅读 · 0 评论 -
深度学习学习率调整小结
深度学习学习率调整小结简介代码StepLR简介learning rate schedules主要就是对分子部分进行调整,采用learning rate schedules的时候多用于SGD这类非自适应的算法之中。PyTorch提供的学习率调整策略分为三大类:有序调整:等间隔调整(Step),按需调整学习率(MultiStep),指数衰减调整(Exponential)和 余弦退火CosineAnnealing自适应调整:自适应调整学习率 ReduceLROnPlateau自定义调整:自定义调整原创 2021-08-16 10:26:26 · 2745 阅读 · 0 评论 -
深度学习Optimizer优化器小结
Optimizer优化器小结简介优化器算法介绍1.SGD2.Adagrad3.RMSprop3.Adadelta5.Adam6.7.8.9.小结禁止任何形式的转载!!!简介这里已经默认大家知晓了反向传播的基本原理,只是在算法实现层面上进行介绍。torch.optim包里实现了实现各种常用的优化算法,使用时先建立优化器对象optimizer = torch.optim.SGD(model.parameters(), lr=0.01, momentum=0.9),当想要指定每层学习速率时:optim原创 2021-07-28 19:44:41 · 2054 阅读 · 1 评论 -
神经网络权重初始化代码 init.kaiming_uniform_和kaiming_normal_
神经网络权重初始化--容易忽视的细节为什么要初始化初始化方法为什么要初始化权重初始化的目的是防止在深度神经网络的正向(前向)传播过程中层激活函数的输出损失梯度出现爆炸或消失。如果发生任何一种情况,损失梯度太大或太小,就无法有效地向后传播,并且即便可以向后传播,网络也需要花更长时间来达到收敛。初始化方法建议可以看看这个:《Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classificatio原创 2021-04-23 14:03:57 · 25831 阅读 · 14 评论 -
IoU计算代码
IoU计算代码前言torch实现的方式numpy实现的方式前言刚入门的时候,尤其对于算法,很多东西不自己亲自写一遍是很难真正理解透的。最近在准备复现yolo的代码,对于IoU的实现,就遇到一点小问题,在此记录一下。torch实现的方式矩阵运算速度更快,代码更简洁。这里取最大最小值,需要利用广播的机制。def bbox_iou(box1, box2,): """ x1y1x2y2格式 Returns the IoU of two bounding boxes """原创 2021-04-15 15:25:54 · 1048 阅读 · 0 评论 -
pytorch numpy .size .shape
pytorch numpy 的.size .shapetorch.size() torch.shapenp.size np.shapePyTorch中的size与numpy中的shape含义一致,都是指 tensor 的形状。torch.size(j)、np.shape[i]都是指当固定其他维度时,该维度下元素的数量。torch.size() torch.shapeimport torcht=torch.tensor([[1,1],[2,3],[2,2]])print(t.size())pri原创 2021-04-14 09:21:40 · 753 阅读 · 0 评论 -
pytorch .detach() .detach_() 和 .data 切断反向传播
pytorch .detach().detach_()和 .data 切断反向传播.data.detach().detach_()补充:.clone()当我们再训练网络的时候可能希望保持一部分的网络参数不变,只对其中一部分的参数进行调整;或者只训练部分分支网络,并不让其梯度对主网络的梯度造成影响,这时候我们就需要使用detach()函数来切断一些分支的反向传播。不过在查看前人写的一些代码时,经常会看见.data,下面介绍一下区别:.dataimport torcha = torch.tenso原创 2021-04-13 19:29:31 · 950 阅读 · 0 评论 -
pytorch保存和加载训练模型
pytorch保存和加载训练模型torch.save()torch.load()del checkpointtorch.save()torch.save()可以保存一个字典,这里除了保存预训练模型的权重之外,还可以保存一些训练信息:torch.load()torch.load()可以加载一个字典:del checkpoint加载到模型之后,删掉原有的checkpoint以节省内存。del checkpoint # dereference seems crucial...原创 2021-04-09 15:04:04 · 487 阅读 · 2 评论 -
pytorch 设置随机种子排除随机性
pytorch 设置随机种子排除随机性前言设置随机种子DataLoader本文章不同意转载,禁止以任何形式转载!!前言设置好随机种子,对于做重复性实验或者对比实验是十分重要的,pytorch官网也给出了文档说明。设置随机种子为了解决随机性,需要把所有产生随机的地方进行限制,在这里我自己总结了一下:排除PyTorch的随机性排除第三方库的随机性排除cudnn加速的随机性这是mmdetection所给的方法:def set_random_seed(seed, deterministic原创 2021-03-21 13:05:04 · 2869 阅读 · 1 评论 -
python timm库
python timm库什么是timm库?模型使用现成模型微调模型使用脚本训练模型特征提取倒数第二层特征 (Pre-Classifier Features)多尺度特征 (Feature Pyramid)动态的全局池化方式选择:Schedulers:Optimizer:训练trick禁止任何形式的转载!!什么是timm库?PyTorch Image Models (timm)是一个图像模型(models)、层(layers)、实用程序(utilities)、优化器(optimizers)、调度器(sc原创 2021-03-20 20:59:14 · 35842 阅读 · 8 评论 -
dataloader合理设置num_works和batchsize 避免爆内存
dataloader合理设置num_works和batchsize,避免爆内存1.内存2.显存总结个人总结,禁止以任何形式的转载!!1.内存1)dataloader会开启num_works个进程,如图所示:(这里设置的是6)2)以图片为例,每个worker通过主进程获得自己需要采集的图片id(id的顺序由sampler或shuffle得到)。然后每个worker开始采集一个batch的数据,存放在内存中。(因此增大num_workers,内存占用也会增加。因为每个worker都需要缓存一个bat原创 2021-03-11 14:53:33 · 13892 阅读 · 15 评论 -
标签平滑Label Smoothing
标签平滑Label Smoothing前言Label Smoothing代码实现后续相关前言对于分类问题,lable常常是one-hot编码的,即[0,0,1,0,0]形式。全概率1和0鼓励所属类别和其他类别之间的差距尽可能加大,然而,在分类问题中不同种类的类别不一定完全没有相似的特征,不能这样一杆子打死。对于我们常用的交叉熵损失函数,我们需要用预测分布q去拟合真实分布p,现在我们来看一下拟合one-hot的分布所带来的问题:1)例如,输出为[0.1,0.7,0.1,0.1],由于要使得Loss尽原创 2021-01-18 21:36:25 · 1470 阅读 · 1 评论 -
Pytorch交叉熵损失函数CrossEntropyLoss及BCE_withlogistic
Pytorch交叉熵损失函数CrossEntropyLoss及BCE_loss什么是交叉熵?Pytorch中的CrossEntropyLoss()函数带权重的CrossEntropyLossBCE_lossBCE_withlogistic思考1.与MSE比较2.为什么要用softmax?说明什么是交叉熵?交叉熵(Cross Entropy)是信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。交叉熵越小说明两个分布越接近,反之差异越大。其中p为真实分布,q为非真实分布。交叉熵可在神经网络(机器原创 2021-01-16 21:25:05 · 5683 阅读 · 2 评论 -
kfold和StratifiedKFold 用法
kfold和StratifiedKFold 用法两者区别代码及结果展示结果分析两者区别代码及结果展示from sklearn.model_selection import KFoldfrom sklearn.model_selection import StratifiedKFold#定义一个数据集img_dataset=[[0,0],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9]]img_label=[0,0,0,0,1,1,1,原创 2021-01-16 17:19:39 · 2688 阅读 · 1 评论