自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 debug 报错 cdcdcdc FFFFFFF什么地址读取错误的

申请一个指针的指针,也就是对一个指针赋值的时候这个指针不会自己申请,还要申请第一个指针。

2022-05-13 22:28:06 495

原创 yolov4环境配置遇到的问题

conda就是管理自己的环境关于conda环境的配置,看这一篇就够了 - 哔哩哔哩requirements里面需要的版本不一定要和自己的环境一致,应该是相近就行1.复现别人 的代码:先创建一个环境指定python版本,然后去找对应的torchhttps://download.pytorch.org/whl/2。安装别人代码所需的环境。有的库环境需要与自己的python版本和torch的版本对应2.1 torch和torchvison对应对应关系:​...

2022-04-19 16:03:37 1030

原创 ResNet-DenseNet

ResNet:ResNet为什么能训练很深的网路:ResNet引入了加法从而在反向传播的时候后面层的梯度是加上前面层的梯度,使得梯度不会很小,解决了梯度消失的问题;DenseNet:由于DenseNet对输入进行cat操作,一个直观的影响就是每一层学到的feature map都能被之后所有层直接使用,这使得特征可以在整个网络中重用,也使得模型更加简洁....

2022-04-05 18:11:52 243

原创 YOLO-V5实现

数据增强的13种方法:1)rectangular:在同个batch里面做rectangle宽高等比变换,加快训练(同一个batch里面拥有自己单独的宽高比)2)色调,饱和度,曝光度调整,三者调整最终得到一个综合的结果3)旋转缩放retate_scale通过一个变换矩阵进行变化变换矩阵的(0,0)(1,1)控制缩放的程度;(0,1)(1,0)控制旋转的程度,当他俩互为相反数的时候就是顶角对应平行旋转;4)平移translate5)错切6)透视变换;7)翻转...

2022-04-04 22:44:35 908

原创 Attion机制

通道维度加入attion机制:就是对输入的feature maps的每一个通道加入一个权值,以此产生不同的重要程度;方法:让这个feature maps(H*W*C)经过一个网络输出1*1*C的参数这个参数乘到原来的feature map上的每一个元素就ok;网络:全局平均池化(1*1*C)->FC(FC中有x个神经元,就相当于将1*1*C的维度降为1*1*X)->ReLu->FC(升维)->Sigmoid...

2022-04-03 12:51:42 544

原创 YOLO - V2

一系列改进 1.Better :1)加入BN层;2)高分辨率:先在224*224训练,再再448*448上训练10个epoch,再再448*448上微调。3)ANchor机制:对数据集的框的高宽比进行k值聚类,聚为5类,用这5类生成bbox,而不是随机生成。4)...

2022-04-03 12:36:19 860

原创 YOLO - v1

先理解预测阶段:1)一个448*448*3的图像经过YOLO这个黑箱输出一个7*7*30矩阵;2)7*7*30的矩阵中的30维是5+5+20;5是预测的bbox的x,y,w,c;20是20个类别的条件概率;解释c:解释条件概率:它的意义是当bounding box认为当前box中有对象时,要检测的所有类别中每种类别的概率.3)对于每一个1*1*30中第一个c乘20维的条件概率,得到20个类别的全概率;每一个1*1*30的向量能得到2个20类别的全概率;49个grid cell 就..

2022-04-02 00:10:11 3035

原创 Shuffle - v2

FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。MAC:内存占用量轻量化网络设计准则:G1)证明:G2)证明:G3)碎片化操作,多分支,多通路对并行加速不友好;G4)基本模块和下采样模块:1.基本模块中:channel spilt 输入的features 一部分走左边路,一部分走右边路;到最后通道数不变,长宽不变;channel ...

2022-04-01 18:16:40 149

原创 Shuffle - v1

分组卷积:一组d维的卷积核负责卷积输入中的d维,有几组就生成几组channel。这里一组可以是1,2,3………个卷积核。在右图中每一个group都有两个卷积核,每一个卷积核都是4个通道;ChannelShuffle:一个分为g组的feature maps,先reshape为g*n的矩阵,在转置,再flatten就能跨组之间通信。ShuffleNet基本模块add逐元素求和,concat在通道方向落在一起;...

2022-04-01 17:09:57 83

原创 MobileNet -v2

MobileNet-v1的局限:inveted升维:与经典的ResNet不同的是1.ResNet先1*1Conv降维,用标准卷积,再用1*1Conv升维,全部用的是ReLu激活2.BottleNet先用1*1Conv升维,用深度可分离卷积,再用1*1Conv降维,用的是ReLu6激活和Linear激活。LInear:ReL6:这是为了在移动端设备float16的低精度的时候,也能有很好的数值分辨率,如果对ReLU的激活范围不加限制,输出范围为0到正无穷,如果激活值非常大...

2022-04-01 15:52:15 147

原创 MobileNet-v1

分组卷积:一组d维的卷积核负责卷积输入中的d维,有几组就生成几组channel。这里一组可以是1,2,3………个卷积核。深度可分离卷积:深度可分离卷积就是分组卷积的特例,d等于1。

2022-04-01 15:30:38 241

原创 知识蒸馏(作者 HINTON ,JEFF DEAN)

1.soft targets用教师网络预测出的soft targets作为学生网络的训练时的标签。soft targets 的熵大包含更多的信息,而hard targets的熵小信息量小。蒸馏温度T:加了温度T参数的softmax函数,在T=1的时候就是softmax函数softmax函数将模型的得分压缩到0~1之间,并且求和为1,只要一个得分比另一个得分大一点,经过softmax函数之后都会有很大的差异,因此经过softmax函数之后的预测会very hard(很硬)。加入..

2022-04-01 14:57:15 488

原创 yolo-v2

对yolo-v1(定位性能,recall,小目标和密集目标差)的改进:Better:1.加入BN层2.高分辨率分类器,先在224*224上训练,再在448*448上(因为没了FC层,加上了全局池化层,所以没有了图像的尺寸的限制)训练10epoach,再在448*448上微调。3.加入了anchor机制,通过k值聚类对原始的图像的bounding box的高宽 比进行聚类,分为了5类。对于grid改为了13*13的。大图片-速度慢-精度好,小图片-速度快-精度较低,因此可以通过输入不同的尺寸的

2022-03-29 17:23:35 2450

原创 yolo-v1

核心思想:就是每一个格子 预测两个候选框原因是对不同大小的bounding box预测中,相比于大bounding box预测偏一点,小box预测偏一点更不能忍受,因此对于y=根号x函数,x比较小的时候导数比较敏感,x比较大的时候不敏感。...

2022-03-29 12:34:52 1066

原创 目标检测指标计算

IOU:(交集和并集的比值)Precision(精度):Recall(召回率):准确率:所有的真/所有的情况。

2022-03-27 21:04:54 3478

原创 【查找-在散列表上查找-散列表 的构建、冲突解决办法、查找】

散列函数的构造:解决冲突的方法:1.开地址法:解决冲突的方法:1.链地址法(拉链法):效率:

2022-03-27 18:33:49 273

原创 【查找-在树表上查找-二叉排序树】

二叉排序树:比较的次数最多不超多树的深度。

2022-03-27 16:51:54 244

原创 【查找-在顺序表上查找-1.顺序查找2.折半查找3.分块查找】

顺序查找的ASL:=1/n*(1+2+3+...n) = (n+1)/2二分查找的ASL:对于一个元素的所需比较次数不会大于它所在的判定树的深度log2(n+1)顺序查找:改进折半查找(二分查找)(针对有序表):分块查找(索引顺序表查找):常用的是分块有序:就是每一块内没有顺序,但是块与块之间有序(索引表有序),我们就能先在索引表里查找,再在所在块查找;...

2022-03-27 15:50:09 327

原创 【图的应用-最短路径-单源最短路径(Dijkstra)迪杰斯特拉算法-所有顶点间的最短路径(Floyd)弗洛伊德算法】

他们的思想都是逐步的在原路径里增加顶点,若加入中间顶点后路径长度变短,则修改。否则就维持原路径Dijkstra算法:总是去求从已知顶点到终点的直达最短路径初始是S={v0} T={其余顶点}D[i]是一个数组,它记录了初始顶点到其余各顶点的最短直达路径(1)选择一个点作为出发点加入S;记录S到T内各顶点的直达距离;为D[i](2)选择(1)内直达距离最小的顶点加入S(3)再次记录通过S到T内各定点的距离。如果有比D[i]小的,则更D[i];继续选择一个最小的距离...

2022-03-27 14:29:36 86

原创 【图的应用-最小生成树-MST性质-普里姆算法(Prim)-克鲁斯卡尔算法(Kruskal)-比较】

prim算法:利用已经在树里的顶点集合U和未在树里的集合V-U,找到他们之间代价最小的边;(1)初始是随机选择一个顶点加入克鲁斯卡尔算法:与prim不同,克鲁斯卡尔初始时将所有的顶点都加到树里面,让边的权值从小到大排序,依次选择最小的边加入到树里,如果加入的边形成了环就不加,选择下一个边;直到树里边的边为n-1个比较:...

2022-03-27 13:34:38 129

原创 【遍历二叉树-递归先序、中序、后序得遍历-非递归的中序遍历-层次遍历】

中序遍历:当遇到一个根结点的时候不能去访问它,先去找它的左子树,当它的左子树为NULL的时候,我们就可以访问这个根。非递归的中序遍历:while里面一个控制整个程序停止的时间:栈为空 一个控制着该节点是出栈还是入栈...

2022-03-25 23:17:01 49

原创 【图的遍历算法-深度遍历-广度遍历】

深度优先算法-一条道走到黑黑了再回头用邻接矩阵表示的图的深度遍历:随机选择一个顶点作为起点,在该顶点矩阵所在的行上做遍历就能找到这个顶点的邻接的另一个顶点用邻接表表示的图的广度遍历:先访问一个顶,让这个顶点入队,以便队伍里面有东西,然后进行while判断只要队不为空,我就出队,把出队的顶点的邻接点而且是未访问的入队并去访问它。...

2022-03-25 23:16:02 83

原创 【图的链接表表示法-链式存储结构】

邻接表的链式表达:代码:弧的结构:顶点的结构:图的结构:创建无向图:由于是无向图,对于每一次循环如果我们输入v1,v2两个节点,在G里的vertices里面就能找到对应的下标,分别在对应的下标后面创建一个弧结构如果只在一个下标后面创建弧结构就能创建入度图或出度图邻接表的优缺点...

2022-03-25 20:22:48 136

原创 【图的存储结构-邻接矩阵法】

邻接矩阵表示法:一个表表示各顶点 的数据,一个n*n矩阵(n是顶点个数)表示顶点之间是否有连接无向网代码:无向网向有向网或无向图转变:无向网->无向图:代码中将w初始化的时候置为0;赋值的时候赋为1;无向图->有向网:代码中在给w赋值中增加两个for嵌套循环即可;邻接矩阵的优缺点:...

2022-03-25 16:29:32 82

原创 【图-概念-基本术语-】

2022-03-25 11:43:09 35

原创 【二叉树定义和性质-满二叉树-完全二叉树的定义和性质-二叉树的顺序存储结构和链式存储结构】

2022-03-23 14:32:35 508

原创 【树-定义和基本术语】

2022-03-23 14:26:57 40

原创 【广义表】

2022-03-23 14:24:27 37

原创 【串-顺串-链串-串的算法(BF(Brute-force)算法暴力破解,KMP算法)】

顺串:用的多,因为串的插入删除操作用的少;链串:BF算法:i回溯:就是i移动了几格就退回几格,j是移动的格数+1,因此i回溯是i=i-(j-1)=i-j+1再往后退一格就是i=i-j+2...

2022-03-23 14:08:19 114

原创 【队列-链式表示】

定义:入队:出队:

2022-03-22 21:56:51 50

原创 【队列-顺序表示】

定义:假溢出处理:假设MAXSIZE是6,当rear+1(即有一个数据入队后rear=MAXSIZE)为MAXSIZE时但是front!=0,就是假溢出,此时让rear重新指向0位置,方法就是取模,当rear是0,1,23,4,5时%MAXSIZE仍是自己,但是当rear=6时,取模就是0;真溢出可以表述为(Q.rear+1)%MAXSIZE ==Q.front...

2022-03-22 20:39:17 42

原创 【栈】-链栈

结构:入栈:出栈:取栈顶元素:

2022-03-22 19:29:05 39

原创 【栈】-顺序栈

基本概念:PUSH:POP:

2022-03-22 16:44:12 34

原创 顺序表的链表

链表的特点、结构:建立链表:头插法建立链表:尾插法按值查找,或按位置查找,找到返回这个结点的地址:删:(增与之同理)循环链表:循环链表的合并:双向链表,双向循环链表:双向链表的删除:总结:...

2022-03-22 12:34:59 458

原创 线性表的顺序表

#include<stdio.h>#include<stdlib.h> #include<assert.h>//动态顺序表 typedef int SLDataType;typedef struct SeqList{ SLDataType* arry ; int size;//一个容量里数据的几个 int capacity;//开辟的新的容量 }SL,SeqList;//初始化//开辟一个容量是4的一个数组。这个数...

2022-03-21 17:00:00 31

原创 【不基于比较的排序,排序总结】根据数据状况做的排序,计数,基数

计数排序:假设有一个员工年龄的数组arr_age,那么数组里的值都在0-200之间。可以额外申请一个长度为201的数组arr_extra,遍历arr_age遇到0岁就在arr_extra 的0位置上加一,依次这样。那么arr_extra就是一个员工年龄的频率计数数组。基数排序:对于一个数组,准备十个额外的桶(编号0-9),(1)先让个位数决定数组中的每一个数进哪个桶,个位数是0的进0号桶,个位数是1的进1号桶,依次下去。(2)每个桶从左到右把数倒出来。(3)重复按照十位,百位…...

2022-03-20 22:02:28 751

原创 【比较器】

2022-03-20 19:09:35 58

原创 【堆】堆结构,堆排序,堆排序例题

堆的两个最重要的操作:(1)heapInsert:(一个数在index位置上,向上移动)一个数在index位置上,如果这个数大于它的父位置的数,index位置的数和父位置的数交换,index就是父位置继续判断(2)heapify:(一个数在index位置上,向下移动,但不超过heapsize)如果有左孩子,一直判断,判断左孩子右孩子哪个大,判断父和大孩子哪个大lagest就是在父,左、右孩子中最大的下标如果不能往下走就break如果能往下走就把largest的值与i...

2022-03-20 18:03:05 875

原创 【O(NlogN)排序算法】master公式,归并排序,例题(小和,逆序对)

master公式N: 样本量N/b: 子过程样本量a: 子过程执行次数:递归里调用了几次递归归并排序:例题:(1)在merge的过程中,如果左侧的指向的数小于右侧指向的数,res就加上右侧剩余的数乘左侧指向的数。快速排序:当num是随机在数组中选择时,时间复杂度是O(NlogN)快速排序的最坏运行情况是 O(n²),比如说顺序数列的快排。但它的平摊期望时间是 O(nlogn),且 O(nlogn) 记号中隐含的常数因子很小,...

2022-03-20 16:49:54 69

原创 【复杂度与简单的排序算法】 选择,冒泡,插入,二分,异或,异或例题,对数器。

O记法。是算法最坏情况的最高阶次选择排序:从第i个开始看,看到最后一个,选择最小的作为第i个的值。一共N-1轮;O(N^2)冒泡排序:从第1个看,第1个大于第2个就交换,一直到最后,就能确定最后一个值。一共n-1轮;O(N^2)对上面代码swap函数的解释:^异或 有1为1,相同为0.满足的规律例题:(1)一个数组,中有一个数出现了奇数次,其余出现了偶数次,求这个数? (2)一个数组,中有两种数出现了奇数次,其余出现...

2022-03-19 18:32:25 456

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除