自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Pytorch官方微调Mask-RCNN遇到的坑

官网地址 已经成功做好了这个实验,但是不得不吐槽一下官方的说明书,做实验的前提不交代好,尤其是这句话: In references/detection/, we have a number of helper functions to simplify training and evaluatin...

2020-05-27 12:09:29 94 0

原创 对pytorch中optimizer.zero_grad()理解

刚接触pytorch不久,就遇到这种问题,既然要计算梯度(pytorch用loss.backward()计算各参数的梯度loss.grad),那为什么要先将上个epoch的梯度重置为0再去计算呢?其主要原因是: 在torch.autograd中,上个epoch计算Variable中的grad成员也...

2020-05-25 08:39:46 16 0

转载 pytorch 卷积 分组卷积 及其深度卷积

转载申明:https://blog.csdn.net/lyl771857509/article/details/84109695 先来看看pytorch二维卷积的操作API 现在继续讲讲几个卷积是如何操作的。 一. 普通卷积 torch.nn.Conv2d(in_channels, out_ch...

2020-05-14 15:29:47 44 0

原创 RPN遇到的坑

RPN的作用在于较为准确的选择前300个推荐框,前2篇论(RCNN,Fast-RCNN)用的是Selective Search方法, 贪婪地合并基于低层次特征的像素,产生2000个推荐框,效率低。本文主要讲解RPN网络层及其损失函数,遇到过的坑和疑惑的地方在这里记录一下,便于今后回顾。涉及到的内...

2020-05-08 17:24:17 42 0

原创 Tensorflow2.0实例化 Model 的两种方式

1、在“函数式API”中,从“输入层”开始,当前层的输入层是前一层的输出层,最后用输入层和输出层创建模型: inputs = tf.keras.Input(shape=(28,28,1)) x = Conv2D(32,3,activation='relu')(inputs) x...

2020-04-10 12:18:34 257 0

原创 成功解决tensorflow2.0在VS-Code代码自动提示功能

目前tensorfow2.0稳定版还不能自动提示,网上说是tensorflow懒惰加载依赖引起的,先不管这些了。使用tensorflow-2.0.0-beta(测试版),其中的API跟稳定版基本一致,应该可以满足大部分需求,如果不行的话,可以将编写的代码放到tensorflow-2.0稳定版本运行...

2020-04-08 10:07:30 199 0

原创 最长公共子串和最长公共子序列(仅讨论2个字符串)

最长公共子串必须是连续的,而最长公共子序列可以不连续,只要顺序一致就行。例如 s1=abcdef,s2=acdsse,最长公共子串是cd,最长公共子序列是acde,这里简单点,只讨论最大子串或子序列的长度。 1、最长公共子串 如果按照普通方法求的话,时间复杂度非常高,这里使用动态规划的思想,就是要...

2020-03-19 16:49:50 44 0

原创 Cmake opencv 和 contrib遇到的问题

简述:最近需要用到opencv的高级算法库,比如目标跟踪、特征提取等。这些高级算法库都封装在一个单独的模块contrib。opencv官方下载的window下的exe文件,双击安装后的opencv文件是已经编译好的文件,这里面是不包含contrib模块的。所以,我们需要自己编译一个带有contri...

2020-03-02 09:51:21 190 0

原创 LeetCode 33. Search in Rotated Sorted Array

Description:Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e., [0,1,2,4,5,6,7] might become [4,5,6...

2020-02-18 15:11:46 29 0

原创 LeetCode 31. Next Permutation

Description:Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers. If such arrangement ...

2020-02-16 19:23:52 31 0

原创 使用EmguCV集成的Tesseract-OCR进行光学字符识别

开源代码:https://github.com/tesseract-ocr/tesseract 简述:之前是惠普开发的,并在2005年开源出来,2006年,谷歌接手维护。在光学字符识别上算是一个不错的算法,而且还是开源的。EmguCV集成了该算法,资源文件需要去官网下载,下载速度挺慢的,有需要可...

2019-12-02 13:30:23 324 0

原创 使用tensorflow实现BP神经网络

前言: 前一篇博客使用numpy实现了BP神经网络,梯度求解和参数的更新都需要自己来编程实现,一不小心就会搞错。然而,每一层的实现都有一个固定的套路,激活函数也就这么几个,有没有更好的框架来实现呢?额谷歌团队开发了一个深度学习框架tensorflow,将一些繁琐的东西封装好了供我们使用。tenso...

2019-11-01 17:29:26 317 0

原创 使用Numpy实现BP神经网络

前言 BP神经网络是深度神经网络的基础,由于深度神经网络过于复杂,不便于理解其中参数更新的过程,所以我们一般会用3层网络来理解这个过程。BP网络由输入层,隐藏层和输出层组成。一次正向传播输出结果,算出损失值,然后一次反向传播,求出各层之间连接的权重和偏置的梯度,通过梯度下降法(或者其他方法)更新...

2019-11-01 17:02:56 301 0

原创 逻辑回归之原理分析与实践

一、简述 上一篇博客写到线性回归,它是一个线性拟合的过程,而逻辑回归是一个通过线性分类的过程,逻辑回归可以用于多分类,其实就是在分割好的区域再次线性分割,从而实现多分类,一般用在二分类的模型中。 二、数学原理 三、编程测试 沙发婚纱发件方三房 ...

2019-10-16 13:21:56 36 0

原创 线性回归之原理分析与实践

1、环境:Pycharm2017.2,Win7,python3.6 2、损失函数一般用均方误差来表示,对损失函数进行微分,可以得到梯度,使用梯度下降法不断迭代,可以将参数调整为最佳(前提条件是损失函数为凸函数,并且学习率比较合适)。使用公式: w = w - 梯度*学习率 https://...

2019-09-30 16:20:21 65 0

原创 卷积层与全连接层权重(参数)个数的计算

环境:Pycharm2017.2,tensorflow 2.0.0b0,Win7 感想:最近在研究卷积神经网络的构建和训练,权重(参数)是一个非常重要的概念,卷积层会用多个不同的卷积核,每个卷积核有m*n个权重,用来提取和强化图像的特征,主要利用了图像的局部相关性。全连接层,顾名思义,每一层的每...

2019-09-05 10:48:16 4003 0

原创 文本倾斜校正的两种方法(Python-OpenCv)

一、通过minAreaRect方法获得斜率 参考资料: 【1】http://www.360doc.com/content/17/0225/20/28294195_631980376.shtml 【2】https://blog.csdn.net/qq_24237837/article/deta...

2019-06-26 17:18:15 3166 0

原创 ImageAI目标检测和resnet50_coco_best_v2.0.1.h5模型文件

最近在学习使用ImageAI库中的目标检测库,有个模型文件官网下载速度让人捉急,动不动就0kb/s,在这里共享一下这个模型文件(resnet50_coco_best_v2.0.1.h5),供大家学习使用。 资源链接: 链接:https://pan.baidu.com/s/1MMwCXRODROFR...

2019-06-21 17:09:19 1725 4

原创 基于OpenCVSharp的人脸识别系统

一、概述 因为OpenCv对UI兼容不是很好,C#可以很好地写UI,有2个框架可供选择:1、EmguCv;2、OpenCvSharp。OpenCvSharp是一个日本人开发的开源项目,里面封装的类和方法和OpenCv非常相似,且底层协议用的是BSD,对商业友好,OpenCvSharp的下载量已经...

2019-06-13 15:24:48 3174 2

原创 OpenCVSharp+C# 轮廓检测

OpenCv提供了函数 findContours()用于对物体轮廓进行检测,该函数实现算法是由S.suzuki K.Abe于1985年发表的。OpenCVSharp封装了这个函数,有2个参数(contours,hierarchy)要做特别的说明。 public static void FindC...

2019-06-06 11:18:45 2897 3

原创 OpenCV环境安装

第一次安装Opencv在一年之前,当时对Visual Studio和OpenCV不是很了解,再加上Visual Studio是英文版的,当时花了很多时间才安装好了,很是无奈,现在重新安装了一遍,有了一点新的想法,和大家一起分享,希望可以帮到大家。 操作环境:win7+VS2017+OpenCV-3...

2019-05-28 15:57:04 124 0

原创 213. House Robber II

题目:You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed. All houses at this place ar...

2019-02-08 21:41:36 66 0

原创 leetcode 198. House Robber

题目:You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stoppin...

2019-02-08 21:27:36 66 0

原创 leetcode 62. Unique Paths(动态规划)

题目:A robot is located at the top-left corner of a m x n grid (marked ‘Start’ in the diagram below). The robot can only move either down or right at a...

2019-02-06 21:41:21 54 0

原创 leetcode 279. Perfect Squares

题目:Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, …) which sum to n. Input: n = 12 Output: ...

2019-02-05 20:52:28 70 0

原创 leetcode 343. Integer Break(从递归到动态规划)

题目;Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum...

2019-02-02 22:38:15 178 0

原创 leetcode 40. Combination Sum II(找出和为target的组合)

题意:找出和为target的组合 算法思路: 首先将数组拍个序,然后进入递归方法,如果target等于当前元素,则加入该组合,为防止组合重复,有2种方式解决,第一,结果中不包含该组合则加入结果;第二,在尝试下一个元素时,检查当前元素是否和下一个元素相等,相等则跳过,不相等则继续。如果target大...

2019-01-26 22:03:26 129 0

原创 leetcode 78. Subsets II(求集合的子集)

题意:求集合的子集 算法思路:先给该集合从小到大排个序。子集分为0个元素(空集)、1、2、…n个元素,找出其对应的组合。为防止找的的子集不重复,有2种方法,第一:子集不在结果中,则加入,花O(n)时间复杂度;第二:在尝试下一个元素时,检查当前元素是否和下一个元素相等,相等则跳过,不相等则继续。 ...

2019-01-26 21:28:12 83 0

原创 leetcode 401. Binary Watch

题目简述: A binary watch has 4 LEDs on the top which represent the hours (0-11), and the 6 LEDs on the bottom represent the minutes (0-59). Given a non-n...

2019-01-26 21:05:35 94 0

原创 leetcode 108. Convert Sorted Array to Binary Search Tree

题意:将一个有序数组转化为一棵平衡二分搜索树 算法思路:我们可以将一个有序数组不断往中间切分,中间值就是根结点,其左右子树结点个数相等或相差1,然后它的左半部分和右半部分按照相同的方式切分下去,左半部分挂在左子树上,右部分挂在右子树上,这样需要用一个标记区别左右子树。 我在leetcode上提交的...

2019-01-21 21:09:12 41 0

原创 leetcode 450. Delete Node in a BST

题意:删除二分搜索树中值为key的结点 算法思路:当root为null时,直接返回root。首先,用二分搜索法查找到值为key的结点,在查找的过程中记录该结点的父结点并标记该结点是父结点的左孩子还是右孩子(用于保存删除某结点时涉及到的其他结点)。若没有找到key值的结点,则原样返回。若父结点为nu...

2019-01-21 20:16:12 48 0

原创 leetcode 113. Path Sum II

题意:求和为sum的路径,将满足的所有路径返回 算法思路:首先创建一个list(用来存储所有路径),当root为null时,返回list。当该结点为叶节点并且其值为sum,则将该结点作为一条路径加入list中,返回list。从它的左孩子获取满足条件的路径,然后遍历获得的路径,将本结点加入到该路径后...

2019-01-20 23:01:47 39 0

原创 leetcode 129. Sum Root to Leaf Numbers

//leetcode 129. Sum Root to Leaf Numbers public static int sumNumbers(TreeNode root) { List<Integer> list = new ArrayLis...

2019-01-20 22:38:55 53 0

原创 二叉树的递归调用

二叉树本身就是递归定义的,所以在二叉树上运用递归非常方便。下面相关算法的思想。 leetcode 104. Maximum Depth of Binary Tree 题意:找根结点到叶子结点的最长距离(即最大深度) 算法思路:当结点为null时,返回0,否则返回左右子树最大距离+1。 附上...

2019-01-18 22:19:22 221 0

原创 leetcode 347. Top K Frequent Elements(优先队列的使用)

算法思路: 首先,将每个数出现的频率以键值对的方式存入HashMap中。创建一个优先队列,队列中的元素是数字和该数字出现的频率组合的信息对,为此,我特地创建了一个信息对的类(C++提供了,java貌似没有提供),不过也挺简单的,当是学习吧。需要重写比较器,使得进队后信息对是按频率从小到大排序(底层...

2019-01-18 13:38:48 98 0

原创 leetcode 127. Word Ladder

算法思路: 该算法是一个广度搜索问题,查找变换的最优路径(即变换的次数最少)。在java中,因为不能直接构建的一个数据对,所以只能创建一个类Pair2,有2个成员word和step,含义:到达当前单词所经历的单词总个数(也可以说是路径长度)。创建一个以Pair2为类型的队列,将当前数据对封装成P...

2019-01-16 22:59:33 146 0

原创 leetcode 102. Binary Tree Level Order Traversal

算法思路: 二叉树的层次遍历,该算法的重点在于找到每一层次的最后一个结点,初始第一层的最后一个结点last为root,然后将根结点放入队列,以队列不为空的条件循环遍历,设置下一层的最后一个结点为preLast,对于出队的结点的左右结点进行入队操作(前提是入队的结点不为空)并且将入队的结点赋值给pr...

2019-01-16 20:49:47 63 4

原创 leetcode 71. Simplify Path(Unix下简化路径)

算法思路: 首先设置一个String类型的栈。用spilt方法,对path进行分割,以“/”为分隔符分割得到一组字符串。接着遍历这组字符串,遇到空字符串(“”)和当前目录(".")跳过,若字符串为"…“且栈不为空时弹栈,若字符串为”…“且栈为...

2019-01-14 19:59:10 100 0

原创 leetcode 20. Valid Parentheses

算法思路: 题目的意思就是求后缀表达式的值,题目保证该后缀表达式是合法的,先设置一个int类型的栈。遍历该表达式,若是数字的字符串,将其转化为int类型后压入栈中,其中有个小问题,处理负数字符串要注意,其判定条件(个人想法)是:str[0]=’-’ &&a...

2019-01-14 15:18:10 44 0

原创 leetcode 143. Reorder List

2019考研408的一道算法题,很伤心,在这里把算法思路理一下,别的不多说,向前看。找出中间结点,然后将后半部分结点逆序,最后将前半部分和后半部分连接起来。第一次统计结点个数n,第二次遍历,遍历到中间结点时,处理奇数个数和偶数个数的情况,若是奇数个数,最中间的节点将是变换结果后的最后一个结点,将其...

2019-01-13 23:36:52 38 0

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