![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习
若曦爹
我姑娘叫若曦,不是故意要占谁便宜哈。哈哈哈哈
展开
-
bisenet, senet记录
【CV中的Attention机制】BiSeNet中的FFM模块与ARM模块_pprp的博客-CSDN博客转载 2021-11-15 14:11:43 · 432 阅读 · 0 评论 -
lanenet论文解读文章
https://zhuanlan.zhihu.com/p/93572094转载 2021-05-24 09:02:26 · 126 阅读 · 0 评论 -
【语义分割系列】ICNET(实时语义分割)理论以及代码实现
git地址:https://github.com/Tramac/awesome-semantic-segmentation-pytorch几乎囊括了语义分割的主流源码.调试了一个效果还不错原创 2020-12-22 14:44:12 · 6514 阅读 · 9 评论 -
【机器学习基础】TP,TN,FP,FN,Precision,Recall,PR曲线,AP,MAP,TPR,FPR,ROC曲线,AUC值等的解释
PR曲线计算方式:通过置信度就可以对所有样本进行排序,再逐个样本的选择阈值,在该样本之前的都属于正例,该样本之后的都属于负例。每一个样本作为划分阈值时,都可以计算对应的precision和recall,那么就可以以此绘制曲线参考文献1:https://blog.csdn.net/qq_41994006/article/details/81051150参考文献2:https://blog.csdn.net/b876144622/article/details/80009867...原创 2020-06-23 10:37:31 · 9840 阅读 · 7 评论 -
Normalization如何解决梯度消失
转载大神的文章。感觉写的通俗易懂https://blog.csdn.net/sinat_33741547/article/details/87158830具体计算的方法可以看我的博客https://blog.csdn.net/gbz3300255/article/details/107997814在训练过程中,随着网络加深,分布逐渐发生变动,导致整体分布逐渐往激活函数的饱和区间移动,从而反向传播时底层出现梯度消失,也就是收敛越来越慢的原因。说白了Normalization就是为了解决上面问题转载 2020-12-16 09:07:18 · 850 阅读 · 0 评论 -
pytorch常用优化器总结
1.梯度下降原理 梯度下降的主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值。最常用的例子就是下山,例如每1步算是一次步长,每次向下走都找最陡峭的地方(不考虑摔死的情况...)。假设山体是近似光滑没有山谷的,那么最终会找到一条最短最快的下山路径,这个路径也是梯度最陡的地方。 ...原创 2020-12-15 15:02:38 · 804 阅读 · 0 评论 -
如何处理欠拟合、过拟合
如何处理欠拟合、过拟合?在我们机器学习和深度学习的训练过程中,经常会出现过拟合和欠拟合的现象。训练一开始,模型通常会欠拟合,所以会对模型进行优化,然而等到训练到一定程度的时候,就需要解决过拟合的问题了。如何判断过拟合呢?我们在训练过程中会定义训练误差,验证集误差,测试集误差(泛化误差)。训练误差总是减少的,而泛化误差一开始会减少,但到一定程序后不减反而增加,这时候便出现了过拟合的现象。如下图所示,从直观上理解,欠拟合就是还没有学习到数据的特征,还有待继续学习,而过拟合则是学习进行的太彻底,.转载 2020-12-10 14:54:16 · 847 阅读 · 0 评论 -
【语义分割系列】语义分割综述,转载个文章
https://zhuanlan.zhihu.com/p/110123136转载 2020-12-09 11:34:56 · 191 阅读 · 0 评论 -
【语义分割系列】一图讲解FCN16s实现过程。对照着pytorch代码讲解的。
看了下fcn的代码和理论。这里就以FCN16s为例讲解,16s清晰了 32s 8s 只是在此基础上减,加而已了。我看的代码是一VGG16为主干网络。关键步骤的解释在下图中已标记清晰,对照其他主干网络代码看也都能看的通。FCN16s说白了就是 将 1/32图的预测结果做反卷积,变成1 /16图。然后再将1 /16图池化结果做预测,并与前的1/32图结果做加法。最终得到...原创 2020-04-16 16:02:06 · 2363 阅读 · 0 评论 -
【目标检测系列】目标检测算法综述
一,目标检测算法分类:目前目标检测算法大体分为3类。1.传统方法:如adaboost+harr hog+ svm 等。传统方法流程一般为穷举搜索框,提取特征如hog harr lbp等,过分类器如adaboost ,svm等。缺点不详细说了。2.候选区域框+深度学习方法:如R-CNN SPP-net Fast-RCNN Faster-RCNN R-FCN RCNN介绍...原创 2020-04-10 14:06:34 · 5557 阅读 · 0 评论 -
【目标检测系列】yolov2的损失函数详解(结合pytorch代码)
1.理论回头补充吧2.代码:代码下载地址:https://github.com/longcw/yolo2-pytorch。loss函数核心代码如下:注释写的很清晰了def _process_batch(data, size_index): W, H = cfg.multi_scale_out_size[size_index]#特征图尺寸呗 决定于size_index参数 inp_size = cfg.multi_scale_inp_size[size_index] #输原创 2020-10-22 16:03:20 · 3620 阅读 · 1 评论 -
【目标检测系列】yolov1的损失函数详解(结合pytorch代码)
1.先上经典图。2.简单概括一共有如下几个部分的损失函数: 首先明确一概念,网格就是最终特征图(7*7*30)上的一个预测目标了,v1版本这样的预测结果网格一共有49个,每个维度为1*30.这30的向量含义为【x0,y0,w0, h0,I0,x1,y1,w1, h1,I1,C0,C1,C2.....C19】前面10位代表了2个box框信息以及其置信度,后20位表示了分类概率值。后面的损失函数都是针对网格中的一些属性来干活的。 a.标注图像某位置有目标,预测为有=...原创 2020-10-20 16:12:21 · 4785 阅读 · 8 评论 -
【目标检测系列】yolov5训练自己的数据集(pytorch版)
0.有些东西是前面yolov3训练时候就说过的会在文中注明:1.下载代码;https://github.com/ultralytics/yolov52.准备数据集: 数据格式和yolov3一模一样。如果做过yolov3的数据集可以直接搬来用就行。详细见https://blog.csdn.net/gbz3300255/article/details/106276897的 第三节 -----------训练自己数据集的步骤。准备文本文件有:train.txt test...原创 2020-09-25 10:14:10 · 9332 阅读 · 1 评论 -
Depthwise+Pointwise卷积与常规卷积的不同之处(转载知乎大佬文章)
转载知乎大佬文章,防止哪天他删了我找不到哈哈。讲解的太清晰了链接 :https://zhuanlan.zhihu.com/p/80041030Depthwise(DW)卷积与Pointwise(PW)卷积,合起来被称作Depthwise Separable Convolution(参见Google的Xception),该结构和常规卷积操作类似,可用来提取特征,但相比于常规卷积操作,其参数量和运算成本较低。所以在一些轻量级网络中会碰到这种结构如MobileNet。常规卷积操作对于一张5×5像素转载 2020-09-23 11:38:27 · 1780 阅读 · 0 评论 -
一图说清ShuffleNet中的通道混洗(附两种pytorch实现)
0.看ShuffleNet的通道混洗没看明白,后来在大神博客:https://blog.csdn.net/u011974639/article/details/79200559上看明白了。把自己理解写在下面方便像我这样的小白更清晰理解。1.上图:通道混洗就是打乱原特征图通道顺序。上图说的够明白了吧。首先确定自己的特征图通道数多少,再确定组数多少,然后将通道分组后作为输入(input)就可以了。最终的输出还是组的形式,再将其拼接就是和原来输入一样shape的特征图了。只不过通道被打乱了。2原创 2020-09-11 11:29:14 · 6029 阅读 · 3 评论 -
段错误 (核心已转储)的一种
记录一个诡异的错误。两台不同机器,调用yolov3做检测,结果一个机器正常,一个机器出现" 段错误 (核心已转储)"。代码完全一致,环境基本相似吧。后来查到只要import matplotlib.pyplot as plt 就会报错,然后把所有plt的直接注释了。错误诡异的消失了。其加载的函数中也不要包含这个,包含也报错。原因不明啊,小白一个.......原创 2020-09-11 10:10:23 · 1096 阅读 · 3 评论 -
【轻量级网络】SqueezeNet、MobileNet、ShuffleNet等的网络结构图以及pytorch代码
0.写在前面: 轻量级网络SqueezeNet,MobileNet,ShuffleNet等。一切为了速度。纯pyotrch代码干货,无理论,理论自己去查吧一堆堆的,代码可直接用。在代码中加打印与网络图一一对应着看效果更佳。全连接层用平均池化层代替是这几个网络参数量大幅下降的基础。1.SqueezeNet网络结构图:盗个图。多说一句,这个所谓比alexnet轻量,去掉全连接层才是参数下降的大头,用了个全局池化。 代码:直接可用,这个代码实...原创 2020-09-10 11:56:36 · 954 阅读 · 1 评论 -
一图说清mlpconv实现过程(附pytorch代码)
1.看mlpconv最懵逼的就是这个图: 2.下面图可能会更友好些吧。A是50*50*33的数据。经过4个3*3*3的普通卷积核做卷积,并且结果需要过relu函数得到B。B是25*25*4的数据。经过5个1*1*4的1*1卷积核做卷积,结果过relu函数,得到C。C是25*25*5的数据。经过5个1*1*5的1*1卷积核做卷积,结果过relu函数,得到D。D就是这个网...原创 2020-09-09 11:57:23 · 1213 阅读 · 1 评论 -
【损失函数系列】softmax loss损失函数详解
1.损失函数: 损失函数(loss function)是用来评测模型的预测值f(x)与真实值Y的相似程度,损失函数越小,就代表模型的鲁棒性越好,损失函数指导模型学习。根据损失函数来做反向传播修改模型参数。机器学习的目的就是学习一组参数,使得预测值与真值无限接近。2.softmax loss: 它是损失函数的一种,是softmax和cross-entropy loss组合而成的损失函数。 先看softmax,其函数形式如下:其中zj就是某个神经网络全连...原创 2020-09-08 16:33:03 · 41780 阅读 · 7 评论 -
python双重for循环优化方法。
用python做图像处理。有些特殊需求需要用双重for循环遍历图像来操作例如下面代码def getbinarizationimg(simg, targeth, targetw): print(simg.shape) h,w,c = simg.shape box = np.zeros((h, w),dtype=np.uint8) pole = np.zeros((h, w),dtype=np.uint8) for u in range(h): .原创 2020-08-31 14:54:06 · 7057 阅读 · 10 评论 -
总结下LovaszSoftmax损失函数(pytorch版)
闹心,希望四个月后一切顺利!!!!!!!!!!!!!!!1.做语义分割,用的unet++框架。他的损失函数是LovaszSoftmax 一会查查具体原理写在下面吧2.做目标检测用的是yolov3框架。它的损失函数是:自己定义的,是一系列损失函数的组合。以前写过,代码做过注释。3.做个简单的分类网络。损失函数用的CrossEntropyLoss。也写过相关的博客记录吧。4.下一步准备把市面上常规的损失函数都看看理解理解。后续把总结发上来...原创 2020-08-21 09:50:24 · 10765 阅读 · 3 评论 -
googlenet网络pytorch代码以及详细注释
代码和上面表格一一对应的。注释已写import warningsfrom collections import namedtupleimport torchimport torch.nn as nnimport torch.nn.functional as Ffrom torch.utils.model_zoo import load_url as load_state_dict_from_url__all__ = ['GoogLeNet', 'googlenet']model_..原创 2020-08-14 15:29:03 · 1662 阅读 · 0 评论 -
BatchNorm的通俗解释
BN,LN,IN,GN从学术化上解释差异:BatchNorm:batch方向做归一化,算NHW的均值,对小batchsize效果不好;BN主要缺点是对batchsize的大小比较敏感,由于每次计算均值和方差是在一个batch上,所以如果batchsize太小,则计算的均值、方差不足以代表整个数据分布LayerNorm:channel方向做归一化,算CHW的均值,主要对RNN作用明显;InstanceNorm:一个channel内做归一化,算H*W的均值,用在风格化迁移;因为在图像风格化中,生成结果主要依赖于原创 2020-08-14 09:47:24 · 3405 阅读 · 0 评论 -
轻量级网络SqueezeNet、MobileNet、ShuffleNet等的网络结构图以及pytorch代码(转载)
转载 转载 超好的文章https://www.cnblogs.com/vincent1997/p/10916734.html前言深度卷积网络除了准确度,计算复杂度也是考虑的重要指标。本文列出了近年主流的轻量级网络,简单地阐述了它们的思想。由于本人水平有限,对这部分的理解还不够深入,还需要继续学习和完善。最后我参考部分列出来的文章都写的非常棒,建议继续阅读。复杂度分析理论计算量(FLOPs):浮点运算次数(FLoating-point Operation) 参数数量(param.转载 2020-07-31 09:02:04 · 1204 阅读 · 0 评论 -
pytorch的ImageFolder用法
pytorch之ImageFoldertorchvision已经预先实现了常用的Dataset,包括前面使用过的CIFAR-10,以及ImageNet、COCO、MNIST、LSUN等数据集,可通过诸如torchvision.datasets.CIFAR10来调用。在这里介绍一个会经常使用到的Dataset——ImageFolder。ImageFolder假设所有的文件按文件夹保存,每个文件夹下存储同一个类别的图片,文件夹名为类名,其构造函数如下: 1 ImageFo转载 2020-07-30 14:24:54 · 4966 阅读 · 1 评论 -
【目标跟踪系列】SiamRpn卷积流程以及代码
0.写在前面: 什么是孪生网络,什么是rpn网络就不讲了,这里只对卷积过程梳理以及展示对应代码,代码主要是看卷积过程数据怎么变来变去的。rpn理解网络可参考我的博文:https://blog.csdn.net/gbz3300255/article/details/1054934071.SiamRpn图: siamrpn可以看成是孪生网络 + RPN组成。经典图如下2.SiamRpn代码: 下面这个示例代码,示例代码的主要作用就是知道输入是啥,输出是啥,中间孪生...原创 2020-06-29 14:27:07 · 2810 阅读 · 0 评论 -
(转载) loss不降低原因以及解决方法
原文地址https://blog.csdn.net/zongza/article/details/89185852当我们训练一个神经网络模型的时候,我们经常会遇到这样的一个头疼的问题,那就是,神经网络模型的loss值不下降,以致我们无法训练,或者无法得到一个效果较好的模型。导致训练时loss不下降的原因有很多,而且,更普遍的来说,loss不下降一般分为三种,即:训练集上loss不下降,验证集上loss不下降,和测试集上loss不下降。这里,首先默认各位都能理解过拟合和欠拟合的概念。训练集loss不.转载 2020-05-27 14:04:20 · 5426 阅读 · 0 评论 -
【目标检测系列】yolov3,yolov4训练自己的数据(pytorch 版本)
yolov3,yolov4训练自己数据集的流程,用opencv库函数调用训练结果文件的的流程。原创 2020-05-22 13:48:53 · 18267 阅读 · 18 评论 -
【目标检测系列】yolov3-tiny的cfg文件与网络结构对应关系
1.yolov3-tiny的cfg文件如下:[net]# Testingbatch=1subdivisions=1# Training# batch=64# subdivisions=2width=416height=416channels=3momentum=0.9decay=0.0005angle=0saturation = 1.5exposure = 1.5hue=.1learning_rate=0.001burn_in=1000max_batches = 5原创 2020-05-21 13:53:56 · 4989 阅读 · 0 评论 -
【目标检测系列】sppnet网络介绍
上链接 好多文章写,感觉这个是我能读懂的。https://www.cnblogs.com/gongxijun/p/7172134.html尤其对那张图的解释,很赞。大部分文章把图一贴,也不解释或者干脆解释不清楚。。。。。。...原创 2020-04-29 16:44:55 · 354 阅读 · 0 评论 -
【语义分割系列】用PointRend算法训练自己的数据集
1.代码地址:https://github.com/zsef123/PointRend-PyTorch2.下载cityscapes数据集吧。我用的是cityscapes数据集将上面程序调通。3.将cityscapes的数据集换成自己的数据吧:例如,原来的数据集是做21类的语义分割。我们做语义分割用到的是gtFine这个文件夹下类似_gtFine_labelIds.png这样命名的图像,...原创 2020-05-07 09:49:33 · 3201 阅读 · 19 评论 -
【语义分割系列】deeplabv3相关知识点以及pytorch实现(ASSP模块)
1.deeplabv2是在deeplabv1的基础上增加了个ASSP模块。deeplabv1相关介绍看我的博文:https://blog.csdn.net/gbz3300255/article/details/1056811192.ASSP模块介绍以及代码:先原理后代码。原理就是下面这张图。上面的encoder部分就是一个一个ASPP的pytorch实现过程,对于输出的顶端feat...原创 2020-04-29 17:53:50 · 3115 阅读 · 3 评论 -
Pytorch模型保存与加载,并在加载的模型基础上继续训练(转载)
pytorch保存模型非常简单,主要有两种方法:只保存参数;(官方推荐) 保存整个模型 (结构+参数)。 由于保存整个模型将耗费大量的存储,故官方推荐只保存参数,然后在建好模型的基础上加载。本文介绍两种方法,但只就第一种方法进行举例详解。一、只保存参数1.保存一般地,采用一条语句即可保存参数:torch.save(model.state_dict(), path)...转载 2020-04-14 09:43:02 · 8921 阅读 · 2 评论 -
【目标检测系列】RPN(区域生成网络)流程详细解释
看RPN网络基本是从faster-RCNN来的。看的有点迷糊。后来看了几篇博客感觉有点懂了。记录下来防止自己忘了吧。明确输入输出:输入是CNN卷积后的特征图 输出是候选框图 如下图。知乎上盗了张图。 感觉这个是最形象的先形象解释一下:左侧是特征图 ,立方体厚度决定于特征图维度。右侧红框就是经过该网络后提取出的感兴趣ROI区域。 这个特征图生成方法很多了,例如ZF,VGG ,Res...原创 2020-04-13 17:52:20 · 13492 阅读 · 5 评论 -
查看python版本以及其安装路径的命令,查看pytorch版本
1.查看当前python版本,在任意终端输入:python --version2.查看当前python位置,在任意终端输入:which python转载 2020-04-10 09:53:32 · 6259 阅读 · 0 评论 -
FCN语义分割中Shift-and-stitch中的stitch部分的理解,反卷积的实现过程
1.整理一下FCN语义分割的大致思路,为自己做个备份。原创 2020-04-02 15:47:57 · 631 阅读 · 2 评论 -
LeNet(代码),AlexNet简单介绍,适合新手
写在前面:老兵一个,转行弄深度学习了。我的学习习惯不太好,先上船,后补票。哈哈,用Unet做了一个语义分割的工作试验,感觉效果还不错。就返回头来开始给自己补充深度学习的相关知识吧。看到FCN(应该是语义分割开山之作吧),然后发现需要补充下一些其他知识。就对传统的网络做一个总结吧。小白总结,如有错误,大神帮忙指出,谢谢!!。1.LeNet直接在书本上盗图,加了点自己的注释。实现语句用py...原创 2020-04-02 11:21:28 · 548 阅读 · 0 评论 -
pytorch存储网络处理后的图像数据(语义分割)
import numpy as np a1 = np.array([1,2,3,4],dtype=np.complex128) print(a1) print("数据类型",type(a1)) #打印数组数据类型 print("数组元素数据类型:",a1.dtype) #打印数组元素数据类型 print("数组元素总数:",a1.size) #打印...原创 2020-03-23 09:37:00 · 1086 阅读 · 0 评论 -
深度学习相关的链接备用
滑动平局模型解释https://blog.csdn.net/Dongjiuqing/article/details/88049882转载 2020-03-04 17:17:02 · 731 阅读 · 0 评论 -
深度学习小白搭建
https://baijiahao.baidu.com/s?id=1627406244873238742&wfr=spider&for=pc转载 2019-09-24 15:42:12 · 141 阅读 · 0 评论