自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode灯泡开关(Python)

题目解题思路其实逻辑很简单,假设灯泡编号是 1 到 n ,对于第 i 轮,只要编号能整除 i 的灯泡都会被切换,所以根据这个思路可以写出代码:不出意外地超时了。因为没有想到的点是,对于一个数 k ,它的因子都是成对出现的(a * b = k,那么 a 和 b 都是 k 的因子),除非 k 是完全平方数。因此只需要知道 1 到 n 中有多少个完全平方数即可:...

2021-11-15 14:23:11 846 1

原创 LeetCode查找共用字符(Python)——哈希表

题目解题思路思路比较直白,记录不同word的字母哈希表并取交集即可。值得注意的是,如同示例1中,同一个字符共同出现多次也是可以的。看到题解中有一段很牛的代码:其中Counter直接取交集以及elements()方法十分便捷,而且Counter取交集与字典(或者说集合)取交集是有区别的:可以看到,Counter取交集对于相同的key不同的value会自动取更小的值,而字典直接取交集并不是这样:因此Counter的交集是直接符合题意的,而elements()生成一个迭代器:因此只需要取

2021-10-26 12:24:42 329

原创 LeetCode将数字变成0的操作次数(Python)——位运算

题目解题思路:将数字转为二进制后,有 a 位数就要做 a-1 次除法(最后一个1不用,比如 8 的二进制 1000,除以 2 就是右移一位,右移三位让 1 到最后,然后减去最后的1),有 b 个 1 就要做 b-1 次减法(当前面的1除以2右移到最后一位时,此时就是奇数,要减去最后的1):执行结果:...

2021-09-12 12:14:58 317 1

原创 LeetCode存在重复元素(Python)

题目题解直接巧用集合:

2021-04-28 17:04:53 125

原创 LeetCode反转链表(Python)

题目解题思路由于python中的 “=” 实际上是引用,所以需要import copy模块:或者直接重新创建结点:

2021-04-28 16:57:30 156

原创 LeetCode同构字符串(Python)

题目题解模拟这个映射的过程,将s映射成t,t映射成s,只有都映射成功时才是符合规则的双射:

2021-04-28 16:24:34 161

原创 LeetCode计数质数(Python)

题目解题思路暴力法:埃氏筛:

2021-04-28 15:32:57 131

原创 LeetCode移除链表元素(Python)

题目解题思路这里主要是如果要删除头结点要做另外的处理,而官方题解中在head结点前加入了一个哨兵结点(虚拟头结点)让问题变简单:

2021-04-28 14:33:35 117

原创 CV中的注意力机制学习笔记(下)

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。这一期接着记录一下CV中的注意力机制这几年的经典论文。SKNet论文全名为《Selective Kernel Networks》(原文链接:https://arxiv.org/abs/1903.06586),发表在CVPR 2019上。SKNet也是对于SENet的改进,其结合了Inception的思想,空间注意力这一部分就是使用多个不同大小的卷积核进行感知,以适配

2021-02-05 17:35:51 807

原创 CV中的注意力机制学习笔记(上)

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。这一期记录一下CV中的注意力机制这几年的经典论文发展历程。...

2021-02-04 18:33:06 781 1

转载 用神经网络做分类任务时,是不是输出层的神经元个数一定要和类别数相同?

用神经网络做分类任务时,是不是输出层的神经元个数一定要和类别数相同?神经网络中最后一层的输出层常为全连接层,它在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。在很多常见的模型架构中,最后一层全连接层都与分类类别数相同,比如做MNIST手写数字识别问题就有10个输出层神经元节点,做ImageNet图片分类任务就有1000个输出层神经元节点。是不是一定需要这样做呢?为什么不可以

2021-01-31 16:01:31 4136

原创 为什么是深度神经网络而不是宽度神经网络?增加神经网络的深度相比于增加宽度有哪些优点?

为什么是深度神经网络而不是宽度神经网络?增加神经网络的深度相比于增加宽度有哪些优点?Bengio和LeCun等人的论文《Scaling learning algorithms towards AI》中提到,如果一个深层结构能够刚刚好解决问题,那么就不可能用一个更浅的同样紧凑的结构来解决,因此要解决复杂的问题,要么增加深度,要么增加宽度。但是神经网络一般来说不是越深越好,也不是越宽越好,并且由于计算量的限制或对于速度的需求,如何用更少的参数获得更好的准确率无疑是一个永恒的追求。而目前针对网络宽度的研究远远不

2021-01-31 15:58:15 5727

原创 SegNet以及DeepLab系列学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。这一期接着介绍语义分割任务中的经典模型。SegNet论文全名为《SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation》(原文链接),是2017年的工作。SegNet也是一个Encoder-Decoder结构,并且编码器与解码器一一对应,tricks其实就一

2021-01-30 23:49:34 474 3

原创 FCN以及U-Net系列学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。这一期介绍几个语义分割任务中的经典模型。FCN论文全名为《Fully Convolutional Networks for Semantic Segmentation》(原文链接),发表在2015的CVPR上。这篇论文的贡献也是比较大的,在语义分割领域也算得上是旗帜性模型了,首先就是提出了一个端到端的网络,用卷积层代替传统的全连接层,使得输出也变成二维形式,**

2021-01-30 11:54:04 1043

原创 通过图+代码来理解tensorflow中反卷积

反卷积这个东西老是容易忘,而且很多文章理论讲的很详细,但反卷积实际怎么操作的却没有概念,因此想以自己喜欢的方式(直接上图和代码)写一篇,以便随时翻阅。卷积tf中的padding方式有两种,SAME和VALID,官方文档中好像还有个EXPLICIT方式,没了解过…先来仔细理解一下两种模式,以下所有输入矩阵与卷积核无论大小,其每个位置的值都为1:1、SAME模式,输入4×4,卷积核2×2,步长为1:import tensorflow as tfA = tf.constant(1.0, shape=[

2020-11-22 19:21:54 288

原创 最速下降法、牛顿法、拟牛顿法解无约束凸优化问题(Python实现)

最近在课程实践作业中,要求用最速下降法、牛顿法和拟牛顿法三种方法求解高维一致凸二次优化问题的极小值,网上看到的大部分程序都是手动求好了凸二次函数 f 的偏导然后带进去计算,这样的话限制死了维数和次数,也让程序显得比较笨拙,因此就自己用python从零实现了一下,由于要的急也还有很多改进空间吧…这种优化问题其实用 matlab 会比较方便,因此在 python 里想的也是借鉴 matlab中的符号计算体系,所以基于 sympy 库去实现的。最速下降法理论部分:代码部分:import sympy as

2020-11-21 15:20:21 3938 5

原创 DSSD学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。这一期介绍基于SSD改进的DSSD。论文相关信息论文全名为《DSSD : Deconvolutional Single Shot Detector》(链接),从名字可以猜想到,改进之处应该在于使用了反卷积来上采样,然后融合不同尺度的特征图进行预测。作者相关信息如下:如果了解 FPN (链接)会明确感受到 SSD 有个不小的缺点:最早的模型将输入图片进行暴力缩放,

2020-11-06 03:20:51 885

原创 SSD学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。这一期仍然介绍目标检测中one stage类的模型——SSD。(图源网络)论文相关信息论文全名为《SSD: Single Shot MultiBox Detector》(链接),从名字可以看出,思路其实也是均匀地在图片的不同位置进行不同尺度的密集抽样,以适配不同形状的物体。作者相关信息如下:网络架构论文中与 YOLO 进行比较的 SSD 结构图:而且

2020-11-05 01:58:10 418

原创 YOLO v3学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。这一期先简要介绍 YOLO v3,因为 YOLO v3 相比于 YOLO v2 改进并不是很多,但不得不承认效果确实好;然后正好YOLO v4 也在今年发表了,放在一起来看吧。YOLO v3论文相关信息(链接):YOLO v3 的改进思路,也是在不牺牲或者少牺牲速度的基础上提高精度,最大的改变是在网络结构上,借鉴了 ResNet 、FPN 等结构,设计了 Dar

2020-10-21 16:19:16 251 1

原创 YOLO v2学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。上一期介绍了YOLO v1,这一期来介绍一下改进的YOLO v2(YOLO9000)。论文相关信息论文全名为《YOLO9000: Better, Faster, Stronger》(链接),题目很有趣,更好更快更强,搁这模仿奥林匹克口号呢?值得强调的一点是,为什么模型叫 YOLO9000 呢?因为作者说其可以检测9000多种目标类别。论文使用的数据集为 PASC

2020-10-18 18:30:33 350 1

原创 YOLO v1学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。这一期仍然介绍目标检测的网络——YOLO v1,其也是one stage算法的起源网络。论文相关信息论文全名为《You Only Look Once: Unified, Real-Time Object Detection》(链接),从名字也可以看出YOLO系列最大的优点就是速度快。这篇论文于2016年发表在CVPR上,使用的是PASCAL VOC 2007、201

2020-10-17 01:22:15 397 1

原创 LeetCode快乐数(Python)

题目解题思路存储之前出现过的结果,如果再次出现同样的结果,就会进入无限循环,那么这个数就不可能是快乐数:执行结果为:看完官方题解之后,有一个地方是我没想到的:虽然第三种情况不存在,但是必须论证一下为什么不存在才行。使用 快慢指针法 可以减少一点时间复杂度:执行结果为:...

2020-10-14 18:24:28 509

原创 Mask R-CNN学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。这一期介绍基于 Faster R-CNN 的 Mask R-CNN ,看看其如何改进使得模型出色地完成了实例分割任务。论文相关信息论文(链接)使用的数据集是MS COCO数据集,并且力压前几届的冠军模型们,比如FCIS,在COCO系列挑战赛的实例分割、边框目标检测以及人体关键点检测三个赛道中都取得了最佳成绩。网络架构论文中的架构图:更为清晰的图,转自这里:

2020-10-08 17:51:53 501

原创 Faster R-CNN学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。上一期的最后讲到了R-CNN的训练时间长的缺点,这一期来介绍改进后的Faster R-CNN,但在介绍Faster R-CNN之前想先简要介绍一下SPPNet和Fast R-CNN,标题...

2020-10-06 00:30:53 298

原创 Fast R-CNN学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。上一期讲的SPPNet基于R-CNN最大的改进,其实就是对整张图而不是对2000个候选框进行特征提取,加快了速度,这一期来看看Fast R-CNN又做出了哪些改进。论文相关信息《Fast R-CNN》(论文链接),于2015年发表在CVPR上,作者相关信息如下:论文所使用数据集为PASCAL VOC 2007、2010、2012数据集。网络架构从上图可以看

2020-10-04 15:50:21 164

原创 SPPNet学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。上一期的最后讲到了R-CNN的训练时间长的缺点,这一期先介绍一下改进的SPPNet.论文相关信息论文全名为《Spatial Pyramid Pooling in Deep ConvolutionalNetworks for Visual Recognition》(论文链接),于2015年发表在IEEE上,作者相关信息如下:论文所使用数据集为 ImageNet

2020-10-04 13:42:39 188

原创 R-CNN学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。本期介绍RCNN,个人认为它是目标检测界的“AlexNet”,也是使得深度学习在目标检测任务中取得突破性进展的网络。论文相关信息论文全称为《Rich feature hierarchies for accurate object detection and semantic segmentation》,发表在2016年的IEEE上,作者及相关信息如下:论文所使用

2020-09-23 23:31:39 217

原创 Inception结构学习笔记(GoogLeNet续)

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。上一期介绍了基于InceptionV1提出的GoogLeNet,这一期介绍Inception的改进之路——InceptionV2到V4.一、InceptionV2 & V3相关的论文:1、《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covaria

2020-09-20 00:23:00 290

原创 GoogLeNet学习笔记

本专栏将从论文的角度解读一下CV方向的一些经典神经网络模型及其贡献与意义,以期加深自己的印象,后续可以随时翻看并且学习其中好的tricks。本期介绍GoogLeNet系列。论文相关信息论文全称《》...

2020-09-18 23:16:57 285

原创 LeetCode打家劫舍(Python)——动态规划

题目解题思路简单的递归:不出意外地超时了,接下来使用之前讲过的动态规划:执行结果为:看了官方题解后,发现并不需要O(n)的额外存储空间,在计算dp[i]时只用到了dp[i-1]和dp[i-2],于是改进如下:执行结果为:...

2020-09-16 16:09:40 217 1

原创 LeetCode位1的个数(Python)——位运算

题目解题思路

2020-09-15 13:17:45 120

原创 LeetCode颠倒二进制位(Python)——位运算

题目解题思路首先用比较取巧的办法:执行结果为:但这道题考察的显然是位运算,这里解释一下官方题解中给出的解法:(作者:LeetCode链接:https://leetcode-cn.com/problems/reverse-bits/solution/dian-dao-er-jin-zhi-wei-by-leetcode/来源:力扣(LeetCode))可以看下每行代码干了什么,可能更好理解:有种拿充电宝给手机充电的感觉,此消彼长。...

2020-09-14 11:09:35 171

原创 LeetCode旋转数组(Python)

题目解题思路暴力法:每次将所有元素向右移动一位,总共移动k次。执行结果为:

2020-09-14 00:02:37 159

原创 LeetCode阶乘后的零(Python)

题目解题思路其实就是计算n、n-1、n-2、……、1中有几个因子5,但是比较麻烦的情况就是25有两个因子5,同理125有3个因子5、625有4个因子5,所以没办法直接得到答案,还是需要一个循环:思路的话官方题解中已经讲得比较清楚了:执行结果为:...

2020-09-10 19:19:39 127

原创 LeetCodeExcel表列序号(Python)

题目解题思路和168题是一样的,进制转换,思路不再赘述,直接上代码:执行结果为:

2020-09-10 11:31:25 112

原创 LeetCode多数元素(Python)——哈希表、投票法

题目解题思路哈希法:这里两次用到字典的get方法,第一个get(num, 0) :第二个max(nums_dict, key=nums_dict.get),首先遍历可迭代对象nums_dict,然后把返回值作为参数传递给key对应的函数nums_dict.get,将函数的执行结果传给key,返回最大的key值。执行结果为:看了官方题解之后,使用了投票法,主要就是一个互相抵消的思想:执行结果为:...

2020-09-10 10:59:17 300

原创 LeetCodeExcel表列名称(Python)

题目解题思路因为“AB” = “A” × ( 261 ) + “B” × ( 260 ) = 1 × ( 261 ) + 2 × ( 260 ) = 28“ZY” = “Z” × ( 261 ) + “Y” × ( 260 ) = 26 × ( 261 ) + 25 × ( 260 ) = 701所以其实这道题就是一个将 十进制 转换成 伪26进制 的问题,不同的地方在于这个26进制是从1开始的(“A” = 1)而不是从0开始的,所以满26不进位 ( “Z” = 26 ),满27才进位( “A

2020-09-03 13:03:06 148

原创 LeetCode两数之和Ⅱ(Python)——Hash表、双指针

题目解题思路一开始感觉跟两数之和没什么区别,只是多了一个升序排列的条件而已,所以还是先用了Hash表:执行结果为:看了官方题解,利用的是双指针,也就利用到了升序排列的条件,并且空间复杂度也降下来了:执行结果为:...

2020-09-02 10:30:28 196

原创 LeetCode相交链表(Python)——双指针

题目解题思路很有意思的一道题目。首先肯定可以想到的是储存遍历过的节点,做法类似141题环形链表,但是要求仅用O(1)内存去做,虽然知道要用双指针,但没想到怎么遍历。看了官方题解确实奇思妙想。p_a指针先遍历列表A,A遍历完了就去遍历B;p_b指针先遍历B,B遍历完了去遍历A。在p_a遍历B和p_b遍历A的时候,如果有相交节点两个指针就能在这里碰到了。这里稍微解释一下:因为a、b两个列表可以分为两段:a分为 a不与b相交那一段 + a、b相交的一段b分为 b不与a相交那一段 + a、b

2020-08-22 16:36:03 246

原创 LeetCode最小栈(Python)

题目解题思路由于要在常数时间内返回栈内最小值,所以使用额外空间,建立另一个栈来存放当前元素加入后栈内的最小值:执行结果位:

2020-08-22 15:23:33 146

空空如也

空空如也

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

TA关注的人

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