- 博客(22)
- 收藏
- 关注

原创 【YOLO系列学习笔记3】yoloV3 有眼+深度学习基础就懂系列(讲得很详细适合初学者)
废话综述最近玩目标检测yolo系列的模型比较多,学习中也遇到了很多问题,经过很多大神和老师的解答和自己扣源代码,感觉对yolo系列的算法有一点点理解,所以记录下来供大家一起学习和交流(如果存在解释中的不足和错误请大家直接指出来)。先说一下我对整个系列的感觉,yolo系列在工业上的应用比例应该还算很大的,所以我们一定要理解好其中的原理,改进和设计思想。yolo系列的整体原理我感觉就是把图片分成很多个grid,然后对其中的每个grid里面拿bounding box的x,y,w,h和置信度和所属类别,放入一个
2020-07-30 13:17:08
1303

原创 【YOLO系列学习笔记2】yoloV2 有眼+深度学习基础就懂系列(讲得很详细适合初学者)
废话综述在看完yolov1的网络文章后,大家一定对这个yolo系列的算法有一定的了解。没看的朋友一定要看完yolov1的文章再来看yolov2的这篇博客。yolov1文章链接:https://blog.youkuaiyun.com/weixin_42819084/article/details/107633798yolov2这个版本相当于是yolov3版本发布前的试水,网络结构变化不大,在一些小结构的计算方式有一些小的创新,所以我们一定要把重点放在这几个点的理解上:1.引入anchor框,k-means聚类得
2020-07-30 12:02:47
519

原创 【YOLO系列学习笔记1】yoloV1 有眼+深度学习基础就懂系列(讲得很详细适合初学者)
废话综述yolov1是yolo系列的开山之作,它是一个无anchor框的检测模型,也是将目标检测任务变成一个回归任务来处理的。看yolo系列一定要从v1开始看,慢慢看每个系列的改进,理解其精髓才能有比较大的提升。yolov1等于将每个图片分成7 * 7的区域,最后的输出张量每个张量“负责”图片中的每个区域的检测,但是一定要注意每个张量负责的区域会比图片分割后的格子要稍大一些,而且每个1 * 1张量的感受野是整张图片的信息(因为进过了一个全连接层)。这个网络一定要好好理解它回归处理目标检测这个思想,把重点放
2020-07-28 15:41:50
1059
2
原创 算法题:最小生成树(Kruskal算法,Prim算法)
题目:冗余连接(leetcode 684)输入一个图,该图由一个有着N个节点(节点不重复1,2,…,N)的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u,v],满足u<v,表示连接顶点u和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边。答案边[u,v]应满足相同的格式u < v。分析:如果两个节点有相同的根,则连接
2020-08-26 06:05:53
957
原创 KMP算法(字符串匹配问题)
解决字符串之间匹配的问题。题目(leetcode 28):KMP算法是一种空间换时间的算法。它的特点是主串的指针不往回走,利用存储好的信息,避免重复的运算。**在子串那构建一个PMT(Partial Match Table)表。PMT中的值是字符串的前缀集合(除去最后一个元素)与后缀集合(除去第一个元素)的交集中最长元素的长度。(元素集合不包括元素本身)**例如:‘ababa’。前缀集合(‘a’,‘ab’,‘aba’,‘abab’),后缀集合(‘baba’,‘aba’,‘ba’,‘a’),两个集合交集的
2020-08-26 00:42:24
331
原创 最短路径(Dijkstra算法),一文必看懂最短路径的方法
最短路径问题从图中的某一个顶点出发到达另一个顶点的所经过的边的权重和最小的一条路径,称为最短路径。Dijkstra算法适用于求一个节点到其他节点的最短路径,主要特点是通过广度搜索(由近及远、层层扩展)来遍历其他所有需要求距离的点的思想来解决最短路径问题。一个辅助数组D,记录从起始节点到当前节点的最短距离。一个辅助数组V,观察这个节点是否需要记录下来。第一轮的迭代:一开始的起始节点是A,A到A的距离为0。然后看A附近的邻居节点(B,C,D)的距离(A到B,C,D最短路径长度)。E道不了所以是正无穷。
2020-08-25 20:20:47
13110
2
原创 图的遍历:BFS DFS
BFS(Breath First Search)算法过程1.首先将根节点放入队列中2.从队列中取出第一个节点,进行访问,并将其所有未访问过的邻居加入队列中3.若队列为空,则算法结束(或者找到了需要访问的节点)第一次遍历:0第二次遍历:1,2,3,4第三次遍历:5,6,7,9时间复杂度:不确定!V代表节点的数量,E代表边的数量邻接表表示时,查找所有顶点的邻接点所需时间为O(E),访问顶点的邻接点所花时间为O(V),总的时间复杂度为O(V+E)。因为邻接表的储存形式和上面的图的类似,分为
2020-08-07 01:56:03
161
原创 哈希表搜索法,二分查找法
哈希表搜索法数组的特点是:寻址容易,插入和删除困难。而链表的特点是:寻址困难,插入和删除容易。哈希表就是把数组和链表相结合,即可以通过索引快速找到想找的值,也可以通过里面的链表进行插入和删除。在python中就是用字典来实现这个功能的,可以通过字典里的key快速找到想找的值,也可以删除这个值。插入可以随便插,因为是个无序的列表。字典的定义:字典是"键值对"的无序可变序列,字典中的每个元素都是一个"键值对",包含:“键对象”,和"值对象"。可以通过"键对象"实现快速获取,删除,更新对应的"值对象"。
2020-08-03 21:58:46
578
原创 冒泡排序,快速排序,堆排序,滑动窗口,双指针
冒泡排序这个算法的核心之处就是在每个相邻的元素都进行比较,如果不是按顺序的形式,就彼此交换。这个算法不适合用于大数据量的排序,因为它的平均时间复杂度和最差时间复杂度都是o(n^2)。写代码时,N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数。n=len(arrList)for i in range(n-1): for j in range(n-1-i): if arrList[i+1] < ar
2020-08-01 16:32:50
455
原创 剑指offer:整数中1出现的次数(一次看懂python)
题目:求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。题目意思就是求1到n这些数中1出现的次数。我们要用一个for循环去遍历每一位上的数,然后固定这个数取看看其他数的位置上出现1的个数,然后把它们全相加了就能得到结果了。然后固定的位数上有三种情况
2020-07-31 21:12:18
233
原创 剑指offer:孩子们的游戏(第一次看就能看懂)python
题目:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一个小朋友,可以不用表演,并且拿到牛客名贵的“名侦探柯南”典藏版(名额有限哦!!_)。请你试着想下,哪个小朋友会得到这
2020-07-30 16:14:14
153
原创 剑指offer:动态规划
动态规划记忆化搜索,把已经计算过的内容存下来,不需要重复计算。(斐波那契数列)自上而下。memo = [-1] * (n + 1)def f2(n): if n == 0: return 0 if n == 1: return 1 if memo[n] == -1: memo[n] = f2(n - 1) + f2(n - 2) return memo[n]动态规划:将原问题拆解成若干子问题,同时保存子问题的答案,使得每个子问题只求解一次,最终获得原问题的答案。斐波那契数列是自
2020-07-18 21:52:21
129
原创 图像分类网络:ResNet(残差神经网络)
Deep Residual Learning for Image Recognition为什么网络越深,会导致模型变差?因为在更新参数时用到的公式是W(new) = W(old)- LR*(function/W(偏导)),当这个偏导数趋向0的时候,模型参数将不会更新(这种情况一般出现在离输入层比较近的W)。因为在求偏导数的过程中是一个链式求导的过程,它每一层都会进过一个sigmoid函数(1/(e^x +1)),它的取值范围为0到1,它的导数是f(x)f(1-x)。所以当层数很深的时候,f(x)^
2020-07-03 19:45:51
1282
1
原创 图像分类:ALEX net(2012)
ImageNet Classification with Deep Convolutional Neural Networktop 5 error就是预测出来的标签概率最大的前五个中有和真实标签一样的,就返回0。(5个标签分别于真实标签比较,相同则返回0,不同返回1,再对这五个数取最小值),所以这个错误率是越小越好。AlexNet由5个卷积层和池化层和3个全连接层构成,采用了RELU这个非饱和函数。网络架构:神经元参数的计算:Fi是输入的通道数LRN(Local Response Norm
2020-07-03 15:16:33
172
原创 目标检测经典算法R-CNN(2014)
本篇论文的题目是 《Rich feature hierarchies for accurate oject detection and semantic segmentation》,翻译过来就是针对高准确度的目标检测与语义分割的多特征层级,通俗地来讲就是一个用来做目标检测和语义分割的神经网络。本文作者:Ross Girshick,JeffDonahue,TrevorDarrell,Jitendra Malik。这篇论文发布时间是 2014 年,它具有很多比较重要的意义。在 Pascal VOC 201
2020-05-19 12:33:01
1556
原创 剑指offer:排序
冒泡排序:这个算法的核心之处就是在每个相邻的元素都进行比较,如果不是按顺序的形式,就彼此交换。这个算法不适合用于大数据量的排序,因为它的平均时间复杂度和最差时间复杂度都是o(n^2)每一次都要循环n-1…n-2…n-2…0,所以时间复杂度为(0+n-1)*n/2n=len(arrList)for i in range(n-1): for j in range(n-1-i): if arrList[i+1] < arrList[i]: arrList[i],arrList[i+1]
2020-05-17 13:41:21
233
原创 剑指offer:树有关的题目(python)
树节点上存储val,然后两个指针分别是left和right。#定义一个二叉树class TreeNode(object): def __init__(self,x): self.val = x self.left = None self.right = None.#存储二叉树if __name__ == '__main__': t1 = TreeNode(1) t2 =...
2020-05-12 23:04:40
286
原创 剑指offer:其他思维方式(python版本)
题目:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。补码:正数不变,负数是它正数的反码+1例如:-2:111…1101+1即111…110#只取n的前32位,n&32个1(0xFFFFFFFF)#一个F是四位在十六进制里面#简易做法:n = 0xFFFFFFFF&ncount = 0for c in str(bin(n)): if c == "...
2020-05-06 21:38:51
167
原创 剑指offer:数组,栈,队列(python)
数组:数组给定空间但可以不给定确定的值,元组给定空间和具体的值,列表即可以不给定空间也可以不给定确定的值。栈:栈在Python中其实也是一个列表,先进后出队列:先进先出就是队列。题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。因为它是一个递...
2020-05-05 04:08:26
228
原创 剑指offer:链表
链表分为单向链表,双向链表和循环链表普通链表结构def __init__(self,x): self.val=x self.next=Nonedef printChain(node): print(node.val) node=node.nextif __name__=='__main__': l1=ListNode(1) l2=ListNode(2) l3=ListNode...
2020-04-29 22:08:30
108
原创 剑指offer:斐波那契数列
斐波那契数列斐波那契数列就是一个数学数列:0,1,1,2,3,5,8…规律就是后面的数是前两个数之和,f(n)=f(n-1)+f(n-2)第一种递归实现(python):class Solution: def Fibonacci(self,n): if n==0: return 0 if n==1: return 1 if n>1: num=self....
2020-04-18 19:09:14
89
原创 剑指offer2 从零开始详细刷题思路(时间复杂度和空间复杂度)
刷题地址(牛客网):https://www.nowcoder.com/ta/coding-interviews?page=1**一。课前必备**首先需要了解两个必不可少的概念:时间复杂度和空间复杂度时间复杂度和空间复杂度是用来评价算法效率高低的2个标准,*时间复杂度:*就是说执行算法需要消耗的时间长短,越快越好。*空间复杂度:*就是说执行当前算法需要消耗的存储空间大小,也是越少越好。...
2020-04-18 17:30:20
188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人