面试
qinglv1
如有问题,请发送给到邮箱:772152438@qq.com
展开
-
dorpout的作用(训练和测试的时候)
2.2 Dropout在神经网络中的使用Dropout的具体工作流程上面已经详细的介绍过了,但是具体怎么让某些神经元以一定的概率停止工作(就是被删除掉)?代码层面如何实现呢?下面,我们具体讲解一下Dropout代码层面的一些公式推导及代码实现思路。(1)在训练模型阶段无可避免的,在训练网络的每个单元都要添加一道概率流程。图4:标准网络和带有Dropout网络的比较对应的...转载 2019-07-30 20:37:39 · 2287 阅读 · 0 评论 -
神经网络中关于卷积池化的计算(不为整数时,卷积向下取整,池化向上取整)
输入图片大小为200×200,依次经过一层卷积(kernel size 5×5,padding 1,stride 2),pooling(kernel size 3×3,padding 0,stride 1),又一层卷积(kernel size 3×3,padding 1,stride 1)之后,输出特征图大小为:97#输出=(input_w+2*p-k)/stride +1这个公式:N=...转载 2019-07-30 20:42:33 · 18265 阅读 · 14 评论 -
卷积的计算量flops
W,H是feature map的宽高,一般也相等。cin,cout是说输入和输出的channel分别是多少,k,w是卷积核大小,这两个一般相等。参考https://blog.csdn.net/weixin_42702666/article/details/88869086 进行一部分的补充,如下:假设输入特征图大小为 D_F×D_F×M,输出特征图大小为 D_F×D_F×N,卷...原创 2019-08-04 21:39:56 · 2658 阅读 · 0 评论 -
合并k个排序数组
leetcode 88:合并2个已经排序好的数组为一个已经排好序的数组leetcode 486:合并k个排序数组 参考:https://www.jianshu.com/p/1664ae5e4fed最简单的方法是创建一个N大小的数组,然后把所有数字拷贝进去,然后再进行时间复杂度为O(NlogN)排序算法,这样总体时间复杂度为O(NlogN) 可以利用最小堆完成,时间复杂度是O(Nl...原创 2019-08-05 11:02:06 · 1267 阅读 · 0 评论 -
整数全排列
输入一个整数N,可以将它的各个位数的数字重新组合,但是数字开头不能为0,判断他的全部的组合中,有没有是2的整数次幂的值。有就返回ture,否则返回flase。这个要求在pc机器上面1s跑完还没有来得及写代码...原创 2019-08-06 21:54:19 · 402 阅读 · 0 评论 -
快速排序,python
#快速排序def QuikSort(myList,start,end): if start<end: #这个不要忘记了,必须有这个,这个防止只有一个元素之类的 i,j=start,end base=myList[i] while i<j: #这个不要忘记,否则这个就不会一直循环下去了,也就是i和j有可能会出现不相等的情况...原创 2019-06-23 10:42:54 · 276 阅读 · 0 评论 -
优化方法总结:SGD,Momentum,AdaGrad,RMSProp,Adam
转载自:https://blog.csdn.net/u010089444/article/details/767258431. SGDBatch Gradient Descent在每一轮的训练过程中,Batch Gradient Descent算法用整个训练集的数据计算cost fuction的梯度,并用该梯度对模型参数进行更新:Θ=Θ−α⋅▽ΘJ(Θ) \Theta = \Theta...转载 2019-08-07 10:22:14 · 229 阅读 · 0 评论 -
寻找一个数组里面的第k大的数字,python
类似于快速排序的思想,leetcode里面的思想class Solution(object): def findKthLargest(self, nums, k): """ :type nums: List[int] :type k: int :rtype: int """ def pa...原创 2019-08-13 20:56:24 · 1172 阅读 · 0 评论 -
给定一棵二叉树,找到两个节点的最近公共父节点(LCA)
给定一棵二叉树,找到两个节点的最近公共父节点(LCA)。最近公共祖先是两个节点的公共的祖先节点且具有最大深度。可以查看连接:https://blog.csdn.net/wenqiwenqi123/article/details/79952043...转载 2019-08-07 11:37:56 · 2724 阅读 · 0 评论 -
详解深度学习中的梯度消失、爆炸原因及其解决方法
转载自:https://zhuanlan.zhihu.com/p/33006526Batchnorm是深度学习发展以来提出的最重要的成果之一了,目前已经被广泛的应用到了各大网络中,具有加速网络收敛速度,提升训练稳定性的效果,Batchnorm本质上是解决反向传播过程中的梯度问题。batchnorm全名是batch normalization,简称BN,即批规范化,通过规范化操作将输出信号x规范...转载 2019-08-09 21:26:36 · 556 阅读 · 0 评论 -
堆排序,python
转载自:https://www.jianshu.com/p/d174f1862601堆排序的Python实现(附详细过程图和讲解)正文前的扯淡之前电话面试一个公司时,面试官让写一个堆排序,遗憾的是我忘了堆排序的思想了,所以直接说不会写,这次电面也以失败告终...知耻后勇,这几天在网上找了很多写堆排序的帖子,但是帖子质量不好,堆排序是什么不介绍,代码也非常不详细,看了半天没整明白,不过好...转载 2019-08-14 21:22:31 · 149 阅读 · 0 评论 -
梯度法和牛顿法的区别?
转载自:https://zhuanlan.zhihu.com/p/78185057梯度法和牛顿法都是优化中常用的算法,一般来说机器学习和深度学习中用到的优化方法中梯度法是较多的,以及它的改进的算法,如adagrad, adadelta, rmsprop, adam等。回到本问题上来。梯度下降法的公式如下:牛顿法的公式如下:可以看到梯度法要求的是一阶导数,牛顿法要求二阶导数且...转载 2019-08-16 18:09:41 · 970 阅读 · 0 评论 -
batch norm的作用
论文中将Batch Normalization的作用说得突破天际,好似一下解决了所有问题,下面就来一一列举一下: (1) 可以使用更高的学习率。如果每层的scale不一致,实际上每层需要的学习率是不一样的,同一层不同维度的scale往往也需要不同大小的学习率,通常需要使用最小的那个学习率才能保证损失函数有效下降,Batch Normalization将每层、每维的scale保持一致,那么...转载 2019-08-16 21:33:26 · 2671 阅读 · 0 评论 -
leetcode盛最多水的容器
原题:https://leetcode-cn.com/problems/container-with-most-water/利用双指针进行求解的,这样时间复杂度比较低为O(n)class Solution(object): def maxArea(self, height): """ :type height: List[int] ...转载 2019-08-17 11:19:35 · 162 阅读 · 0 评论 -
判断一个数是否是2的整数次幂,python实现
问题:判断一个数是否是2的整数次幂?分析一:判断一个数是否是是2的整数次幂。方法和思路也很多,其中最简单的就是,用这个数除以2用除的商再除以2,直到最后被除数为2,证明这个数是2的整数次幂。这种思路简单,但是略显笨重。我们采用第二种思路。分析二:由于2这个数在计算机中是一个比较特殊的数。计算机是以二进位制进行运算的。于是有了按位与,或,异或和非的运算。2的整数次幂都有一个共同的特点,就是以二...转载 2019-08-17 16:32:00 · 3515 阅读 · 0 评论 -
斐波那契数列(递归和for循环)
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。这个也属于斐波那契数列,他的解决方法有2种class Solution: def jumpFloor(self, number): # write code here ''' #这两个跳台阶都属于斐波那契数列,只不过递归的...原创 2019-07-21 18:45:16 · 1491 阅读 · 0 评论 -
1个数字,计算到1的时候的运算次数
如果开平方之后是整数,那么开平方。否则进行减1操作。一直运算到1需要的最小的运算次数import sysimport mathif __name__=="__main__": N = int(sys.stdin.readline().strip().split()[0]) count = 0 n =int(math.sqrt(N)) h = [n] ...原创 2019-08-02 21:35:03 · 209 阅读 · 0 评论 -
一个链表(list)中多层嵌套list的遍历(递归求解)
import sysinput_list=[1,[2,3,4,[5],6]]def muchlist2onelist(input_list,res): for i in input_list: if isinstance(i,list): muchlist2onelist(i,res) #在这里使用递归求解,递归不只是在最后才可以使用。 ...原创 2019-07-21 14:41:11 · 2587 阅读 · 0 评论 -
【Python】给定一个链表,翻转该链表从m到n的位置。要求直接翻转而非申请新空间
链表翻转 示例:给定一个链表,翻转该链表从m到n的位置。要求直接翻转而非申请新空间。如:给定1→2→3→4→5,m=2,n=4,返回1→4→3→2→5。假定给出的参数满足:1≤m≤n≤链表长度。Python代码如下:# 定义节点class SNode: Next = None Value = None# 创建带头结点的链表def createLinkL...转载 2019-06-10 11:11:42 · 615 阅读 · 0 评论 -
给一个二值图,求出最大连通区域(可用深度优先和广度优先算法)
转载自:https://www.codetd.com/article/6541194这个问题是我在SLAM求职宝典系列D2篇中遗留的问题,因为内容较多现在单独将其列出进行解答。本篇内容分为四个部分:目录(1)二值图(2)求最大连通区域的算法(3)代码实现,以及DFS 和BFS(4) OpenCV中连通域的求解(C++ & Python)...转载 2019-06-27 18:19:05 · 3963 阅读 · 0 评论 -
Python最长公共子串和最长公共子序列的实现
最长公共子串(The Longest Common Substring)LCS问题就是求两个字符串最长公共子串的问题。解法就是用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0。然后求出对角线最长的1的序列,其对应的位置就是最长匹配子串的位置。def find_lcsubstr(s1, s2): m=[[0 for i in range(len...转载 2019-06-28 15:09:59 · 383 阅读 · 0 评论 -
1000瓶酒其中1瓶有毒,10只老鼠找出毒酒
1: 折半查找的方式容易理解 500瓶每瓶1滴放在一起看老鼠喝了死不死依次类推 250->125->63->32->16->8->4->2->12: 转换为二进制形式2的10次方 = 1024 > 1000 即1000 都可以表示成10位二进制的形式则取10个碗,对应10位...转载 2019-07-14 17:01:14 · 21020 阅读 · 1 评论 -
对深度可分离卷积、分组卷积、扩张卷积、转置卷积(反卷积)的理解
https://blog.csdn.net/Chaolei3/article/details/79374563参考:https://zhuanlan.zhihu.com/p/28749411https://zhuanlan.zhihu.com/p/28186857https://blog.yani.io/filter-group-tutorial/https://www.zhi...转载 2019-07-14 21:15:58 · 235 阅读 · 0 评论 -
求凸包的两种算法
凸包指的是一个点集中的最小凸多边形,且其包含了所有点集内的点;简单地说,就是点集最外侧的点构成的凸多边形。求凸包有两种方法:卷包裹法和Graham-Scan算法。1、卷包裹法:每次找出极角最小的边,通过它到达下一点,重复这一过程直到回到原点;具体过程如下:(1)找出左下角的点(以横纵坐标为第一第二关键字,可以找x最小的,x相同则找y最小的),显然这个点一定为凸包上的一个顶点;(2)...转载 2019-07-14 21:17:12 · 1103 阅读 · 0 评论 -
batchnorm原理及代码详解
转载自:http://www.ishenping.com/ArtInfo/156473.htmlbatchnorm原理及代码详解原博文原微信推文见到原作者的这篇微信小文整理得很详尽、故在csdn上转载其文章、我觉得先Mark下来!便于以后研究!前言Face book AI research(FAIR)吴育昕-凯明联合推出重磅新作Group Normbalizat...转载 2019-07-14 21:24:00 · 1921 阅读 · 0 评论 -
冒泡排序
主要思想是:比如由小到大的顺序排序,那么遍历一遍把最大的元素放到最右边,一次这样做,一直把前几次的最大元素放到最右边def maopao_sort(array_input): for i in range(len(array_input)): for j in range(len(array_input)-i-1): if array_input...原创 2019-06-30 18:43:11 · 111 阅读 · 0 评论 -
选择排序
这个和冒泡排序差不多,冒泡是相邻的两两交换,然后依次将最大的放在最右边但是选择排序是一次性全部遍历完所有的(没有进行排序的部分),找到最小的元素,将最小的元素放在最左边的位置(和最左边的进行交换),剩下的再依次这样做可以参考链接:http://bubkoo.com/2014/01/13/sort-algorithm/selection-sort/...原创 2019-06-30 19:09:28 · 118 阅读 · 0 评论 -
零散记录
1.Adaboost, GBDT 与 XGBoost 的区别.GBDT本身又是什么2.各种batchnorm及其变种。global batch,layer batch,等等3.优化方法:SGD等等的变种4.c++的指针和引用的区别;c++的容器;c++的虚函数;c++的向量和list的区别以及适用情况。5.检测网络的nms(非极大值抑制)丢掉物体,如何减少这种影响。好像是有soft...原创 2019-07-23 18:54:56 · 165 阅读 · 0 评论 -
python对于负数的存储方式和c++/c/java不一样(二进制中1的个数)
1.在python里面,负数的存储方式a = bin(-3)print(a)a = bin(3)print(a)b = bin(-3 & 0xffffffff)print(b)c = bin(0xfffffffd)print(c)//输出//-0b11//0b11//0b11111111111111111111111111111101//0b11111...原创 2019-05-26 20:34:23 · 1458 阅读 · 1 评论 -
如何解决机器学习里面的类别不平衡问题
转载自:https://zhuanlan.zhihu.com/p/78508502总结下机器学习中类别不均衡的处理方法主要有下,希望对你有帮助~~采样 这里的采样可以分为上采样和下采样,简单说就是从类别少的多采样或者类别多的少采样。对于上采样,如SMOTE算法。 转化为One-class问题 把它看做一分类(One Class Learning)或异常检测(Novelty Detec...转载 2019-08-17 16:35:39 · 381 阅读 · 0 评论