自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 资源 (1)
  • 收藏
  • 关注

原创 深度学习理论——ssd从之前的网络断点接着训练

大家好,今天完成了新一小步的学习,想要接着上次训练的模型训练。步骤如下:1.把上次训练好的caffemodel和solvestate文件复制到model里本次训练新建的文件夹中2.在ssd_pycal.py文件中,修改snapshot和model_name为本次的地址和name3.运行py文件即可。记录一下备忘,我们下期见。...

2018-12-15 17:51:30 1684 1

原创 深度学习理论——yolov3计算map

大家好,继续备忘,这次是记录yolov3跑完测试以后如何计算map的简单方法。1.生成检测文件上一篇博客写的是批量测试生成图像结果,要想计算map,需要首先生成检测文件,在darknet文件下运行:./darknet detector valid cfg/voc.data cfg/yolov3-voc.cfg backup/yolov3-voc_final.weights-out "...

2018-11-29 22:43:49 2203

原创 深度学习理论——SSD批量测试自己的图片

大家猴!这篇是针对我自己实验室的一个硬件配置情况的一个教程,其他人看的话可能不太符合。批量测试首先需要的是st_ssd中的ssd_detect_image.py。点开以后发现要配置的地址信息为1. labelmap_file:需要把里面修改成自己的标签种类信息2. model_def:放置deploy文件,记得改一下deploy文件中的两个地址和一个测试图像的数量3. mode...

2018-11-15 16:05:03 2149 2

原创 深度学习理论——判别式模型/生成式模型 && GBDT

大家好,继续理论学习,最近开始找工作了,非常忙,只能找零碎时间学习,记录也慢了一点。1.生成式模型&&判别式模型判别式模型(Discriminative Model)是直接对条件概率p(y|x;θ)建模。常见的判别式模型有 线性回归模型、线性判别分析、支持向量机SVM、神经网络等。生成式模型(Generative Model)则会对x和y的联合分布p(x,y)建模,然后...

2018-09-06 17:04:36 2511

原创 LeetCode刷题——把二叉搜索树转换为累加树

大家好,继续刷题,今天刷到一道很巧妙的题,来看题目要求:思路:因为是二叉搜索树,所以先递归右子树,然后把中间节点累加起来,然后递归左子树就可以了。其实想明白这个就很简单了,主要还是要利用搜索树的特性。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNod...

2018-09-03 20:51:01 528

原创 LeetCode刷题——二叉树的最小深度

大家好,继续刷题,递归真的很难,虽然代码很短,但是感觉每次都要想很久,还是不熟练吧,看下今天的题。思路:个人理解,递归无非三要素,递归体,跳出条件,持续变化状态。先上代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * ...

2018-08-24 17:12:11 325

原创 深度学习理论——信息量,信息熵,交叉熵,相对熵及其在机器学习中的应用

大家好,继续理论学习,在我当年的一篇讲softmax和LR回归的博客里就是这篇博客!还有这篇!在里面只是简单地讲了交叉熵的公式,但是为什么深度学习当时要取最小的交叉熵来优化参数,其实我没太明白,今天搞明白了,来记录一下。1.信息量信息量的大小可以衡量事件的不确定性或发生的惊讶程度。一个事件发生的概率越小则其所含的信息量越大。设事件发生的概率为P(x),则其信息量表示为:...

2018-08-22 22:29:50 2780 1

原创 LeetCode刷题——二叉树的层次遍历II

大家好,最近在刷树的题,做过了深度遍历的题,层次遍历的题还是第一次做,来记录一下。题目如下:思路:需要设定一个level值来记录这属于哪一层的树,方便同一层写入同一个vector。得到总的vector后再翻转即可。代码如下:/** * Definition for a binary tree node. * struct TreeNode { * int val; *...

2018-08-22 16:45:12 352

原创 LeetCode刷题——旋转图像

大家好,继续刷题,这是一道中等难度的题,来看下题目要求:思路:1.我最先想到的是暴力变换,就是从四个角开始循环移动,思路很简单,写起来很麻烦,代码如下:class Solution {public: void rotate(vector<vector<int>>& matrix) { int len = matrix.si...

2018-08-20 16:39:27 297

原创 深度学习理论——残差神经网络

大家好,继续理论学习,今天学习了何凯明大神的又一力作,残差神经网络。我们知道,网络层数越深,其表达能力越强,但之前人们并不敢把网络设计的太深,因为会有梯度衰减等各种问题让网络的性能大幅度下滑,用一些正则化,RELU等激活函数也不能完全避免。但有了残差网络,人们可以把网络的层数设计的很深,比如几百层。其基本思想如下:在传统的平网络(Plain Network)中,一层的网络的数据来源只能是前...

2018-08-16 22:26:03 14251 1

原创 深度学习理论——特征提取算法

大家好,继续理论学习,今天介绍几种最常见的特征提取算法。1.LBP算法(Local Binary Patterns,局部二值模式)LBP算子是一种用来描述图像局部纹理特征的算子,具有灰度不变性。其主要思想是在目标像素周围定义一个3x3的窗口,以目标像素为阈值,将相邻的8个像素的灰度值与目标像素进行对比,如果大于目标像素,则标记为1,如果小于等于则标记为0。这样,对每一个窗口都可以产生一...

2018-08-15 22:00:20 31825

原创 LeetCode刷题——x的平方根

大家好,今天遇到一道很简单但是卡了很久的题。记录一下。题目要求:思路:思路是很简单的二分法,但是边界问题很麻烦。因为一个int数的乘方可能就超过int的边界了,我只能都设成double型的,但是double型不能和int型的输入x直接比较,只能求abs差值。而且在最后的输出方面,因为都是double型的,因此当end和begin之间的差值小于1的时候,直接输出begin的话由于取整操作...

2018-08-14 22:30:02 525

原创 LeetCode刷题——找到字符串中所有字母异位词

大家好,继续刷题,已经刷到了哈希表的部分,感觉这道题还是学到了很多,记录一下。题目要求:思路:1.我自己想的办法很笨,最终超时了,就是把s分成一个一个子字符串,然后跟p一起sort一下,然后看一不一样。代码如下:class Solution {public: vector<int> findAnagrams(string s, string p) { ...

2018-08-06 17:41:26 773

原创 Leetcode刷题——环形链表II

大家好,继续刷题,这次一道找环形链表入环点的题,看下题目要求:思路:1.我看了剑指offer上对这道题的解读,首先是快慢指针判断是否有环,针对快慢指针的方法参考我的这一篇博客点击打开新世界的大门判断完以后,设置一个指针temp指向相遇点并原地循环一周,再次回到快慢指针相遇的这个结点时算出这个环总共包含多少结点,结点数设为n。然后让快慢指针都回到head,再让快指针提前走n步,然后快...

2018-07-31 15:37:18 3853 2

原创 深度学习理论——简述Bagging & Stacking

大家好,这次来简单记录一下剩下这几种集成学习的概念,就不推公式了,比较简单。1.BaggingBagging是并行式学习的典型代表,各种基学习器并行对对应的子数据集进行学习后,将学习结果进行汇总得出最后的结论。为了增加数据集的多样性,我们让每个基学习器学习数据集的一个子集,但是害怕子集选取的类型不完备,可能每个检测器检测出来的结果会大相径庭,所以我们采取又放回的抽样,在数据集中抽取数据后再...

2018-07-24 10:04:12 2186

原创 Leetcode刷题——求众数

大家好,抽空刷了一道题,也是一道简单的数组题,但是因为我用了map而且一次就通过了,感觉还是有必要写下来记录一下map的使用。题目如下:思路如下:首先用sort对数组进行排序,然后定义一个<int,int>型的map,第一个int为数重复的次数,第二个int为对应的数。遍历数组将重复的数和次数依次写入map。然后定义一个迭代器it,循环查找map中第一个int中的最大且大于...

2018-07-23 17:08:55 476

原创 深度学习理论——AdaBoost算法

大家好,继续理论学习,今天进入了集成学习这一章,首先介绍AdaBoost算法。集成学习分为Boosting和Bagging两种,其中Boosting算法是使用同质的弱分类器集成为强分类其,bagging为使用异质的弱分类器集成为强分类器,而Boosting的经典算法就是AdaBoost算法。AdaBoost算法有使用循环迭代的方法更新两个权重:一个是每次迭代所训练的滤波器在最后的总结果中所...

2018-07-23 16:09:31 2408

原创 深度学习理论——朴素贝叶斯分类器

大家好,继续理论学习,终于开始学习贝叶斯啦!本文主要参考周志华的西瓜书和众多博客加上自己的理解。拉普拉斯修正避免了因训练集样本不充分造成的概率估值为零的问题,并且在训练集变大时,修正引入的先验的影响也会减小,概率趋近于真实概率。贝叶斯应该还没有完结,可能会有下一篇博客,我们下期见!...

2018-07-19 11:40:53 855 2

原创 Leetcode刷题——搜索插入位置(运行速度beat 100%)

大家好,继续刷题日记,这是一道数组题。来看题目要求:(吐槽一下现在csdn改版以后插入图片真麻烦)思路:1.第一个是暴力循环,写起来也非常简单            2.但是第一个思路效率有点低,我有点不甘心,所以继续想了二分法,这是我第一次尝试二分法写代码,成功了,很开心,运行速度beat 100%。取两个指针,begin和end,分别表示开头和结尾,temp表示两个指针的中间。...

2018-07-18 17:36:15 341

原创 深度学习理论——感受野的计算&防过拟合总结

大家好,继续理论学习,今天是总结的一天,没有推导!开心!1.感受野感受野简单来说就是最后输出的一个像素映射到原图包含了原图多少像素的信息。有一个简单的公式可以从top到down的推算出感受野!感受野 = (后一层感受野 - 1) * stride +kenel_size其中,stride为卷积步长,kenel_size为卷积核尺寸,padding不影响感受野。2.防过拟合总...

2018-07-12 16:45:45 803 1

原创 caffe+linux平台——日常运行小tips(码给自己)

大家好,本次小博客用来码一些自己平时做项目常用的tips。1.输入cd可以直接进入用户目录2.输入pwd可以查看当前目录3.写绝对路径的时候不要忘记最前面的/4.如果GPU out of momery了,可以输入nvidia-smi进行查看5.想查看matlab,python等接口地址的配置,可以输入vi ~/.bashrc进行查看6.如果地址不对了,可以一步步cd查看哪一步出的错7.如果代码出错...

2018-07-09 20:22:28 173

原创 Linux入门——使用和退出vim编辑器

大家好,一个简要的知识点,mark一下。1.使用vim只要在shell中输入vim 文件名即可浏览该文件内容2.想要修改该文件时,需要按一个“I”,就进入了插入模式,可以随意修改。3.想要退出时,先按左上角“Esc”,可以看到左下角的插入不见了,就是此时退出了插入模式。然后输入“:”,在冒号后输入q!直接退出,输入wq,是保存再退出。使用vim的基本操作就是这些了,后面学习到新的东西了再来补充,我...

2018-07-09 20:13:35 254

原创 Leetcode刷题——重复叠加字符串匹配

大家好,感觉最近刷的题都好难啊,汪叽,来看一下今天的题。思路:我们设一个新的字符串来表示字符串A的num倍,B为其子串,首先可以肯定它的size是大于B的size的,因此我们先构建出另num最小的字符串来判断B是否为其子串,如果不是其子串,则有可能是因为排列顺序的问题,我们就让num++,新字符串中再加入一个A,如果这时B为其子串输出num,如果此时B还不是其子串则B就不可能是其子串了不管num有...

2018-07-06 17:11:20 974

原创 Leetcode刷题——验证回文字符串II

大家好,继续刷题,今天看到一道题,脑子一直往递归的方向想,最后没写出来,看了下别的大佬的思路,觉得超级简单,这里mark一下,先看下题目要求。思路:两个指针,一个从头向尾,一个从尾向头,遇到一样的就继续遍历,遇到不一样的跳过就好,不需要erase啊移动啊那么复杂,不过注意要分两种情况,一种头指针加一,一种尾指针减一,两种任一为true就成立,在头指针加一或尾指针减一的情况下,剩下的字符串要完全回文...

2018-07-05 19:50:11 374

原创 深度学习理论——决策树划分属性的选择

大家好,继续理论学习日记,开始学习决策树了,今天先总结一下划分属性的选择,本博客主要参考了周志华的西瓜书和其他博客加上自己的理解。决策树就是把一个问题分成很多小问题不断进行子决策最终得出结论的过程,每个测试的结果或是导出最终结论或是导出进一步的判定过程,且其考虑范围是在上一次决策结果的限定范围之内的。决策树一般包含一个根节点,若干内部节点和叶节点,根节点对应总的数据集,每个内部节点对应一个属性测试...

2018-07-05 11:46:39 2837

原创 Python入门——原始字符串&数据类型(列表,元组,字典)

大家好,继续学习Python,这里介绍一些之前在代码里看到但是并不太清楚的小概念。1.原始字符串我们知道Python里字符串的表示十分随意,可以是单引号'a',也可以是双引号“a”,也可以是三引号'''a''',当然三引号多表示多行的字符串数据,但在深度学习的地址表示中,多在前面加一个r,这就表示的是原始字符串(Raw String),它以R或r开始,在原始字符串中,字符“\”不再表示转义字符的含...

2018-07-04 23:08:04 362

原创 深度学习理论——P-R曲线&原始数据类别不平衡问题

大家好,继续理论学习日记。本次简要介绍一些基本概念,不涉及公式推导。1.P-R曲线首先介绍四个概念精度:分类正确的样本数/样本总数错误率:分类错误的样本数/样本总数查准率P:TP/(TP + FP) 判对的 正例样本数/判为正例的总样本数查全率R:TP/(TP + FN) 判对的正例样本数/真实为正例的总样本数P-R曲线就是以查准率为纵轴,查全率为横轴得到的可以反映模型分类性能的曲线。我们可以粗略...

2018-07-04 10:39:57 1581

原创 caffe+linux平台——SRCNN实现

大家好,来久违的写一篇操作博客记录一下SRCNN的实现过程,避免半年后忘记。SRCNN本身结构就非常简单,实现起来也比SSD简单多了,下面描述具体操作。1.下载作者上传的代码点击下载代码分为train和test两部分,都下载下来。然后解压复制到caffe-master\examples/SRCNN的文件夹里。2.转换数据格式分别运行generate_train.m和generate_test.m来...

2018-07-01 15:09:46 1571 1

原创 深度学习理论——Softmax

大家好,继续理论的学习,虽然前面的博客已经简略介绍了目标函数和Softmax,但最近又更深入学习了一些,因此再为Softmax单独开一篇博客,介绍Softmax是如何配合Loss函数求偏导,根据梯度下降法反向传播的。学到很多,我们下期见!...

2018-06-28 10:48:41 499

原创 深度学习理论——SVM(支持向量机)

大家好,今天学习了SVM相关知识,真的很难,看了很久,依旧手推公式,总结出来,希望能帮到大家。SVM是一种二分类模型,在特征空间中寻求间隔最大化的分离超平面。具体推导如图:对了我发现前面那个y为什么取1不影响忘记说了。。。手打公式不方便,简言之就是就算公式里有y也不影响结果,因为是对w和b求偏导。有不懂得欢迎问我,我们下期见。...

2018-06-26 21:14:25 1796

原创 LeetCode刷题——无重复字符的最长子串(beat 80%)

大家好,穿插刷题日记,继续leetcode,中等难度,字符串。题目要求如下:思路:构建一个字符串t用来保存子串,但这个t是不管是否有相同字符只写入不删除的,t会越来越长直到变成完整的字符串s,因此我们定义一个point表示当前不重复子串的起头位置,每当读入s的一个新的字符,我们就判断其与point和t的最后一个字符之间的字符是否相等。第二点是构造一个vector temp来计算每一个不重复的子字符...

2018-06-25 22:06:55 284

原创 深度学习理论——logistic回归算法

大家好,继续理论学习日记,今天介绍很基础的logistic回归的公式推导,很多书上只是写了公式,并没有推导过程,我这次全都写出来了,还加了注释,希望对大家有帮助。首先介绍一下logistic回归算法的思路:1.首先构造或选取一个预测函数,比如Sigmod,RELU这种,用来进行最后的分类。(即下文中h函数)2.构造一个代价函数(或称为损失函数)来表示输出和真实值之间的损失值(即下文中l函数)3.我...

2018-06-25 16:48:49 1049

原创 Leetcode刷题——三数之和

大噶猴,前一段比较忙,刷题日记被耽搁了一段时间,从今天起开始恢复。今天开始刷leetcode中等难度的算法题了,第一道是三数之和,看下题目要求:思路:好久没刷题了手非常生,思路也很枯竭,只想到了暴力循环,找到所有相加等于零的vector之后对每一个vector做一个排序然后判断是否相等,erase掉相同的元素。代码是这样的:class Solution {public: vector&l...

2018-06-24 17:15:03 2163

原创 深度学习理论——目标函数(损失函数)&正则化&交叉验证

大家好,继续理论学习,网络的设置接近了尾声,本次学习目标函数和正则化。1.目标函数(1)分类问题中的目标函数这类问题中最常用的就是交叉熵函数了,也即softmax。假设共有N个训练样本,针对网络最后分类层第i个样本的输入特征为xi,其对应的真实标记为yi,hi为其网络对应的最终输出,C为分类任务的类别数。有了如上定义,其形式可写为:(2)回归问题中的目标函数在分类任务中,最后的样本真实标记实际上是...

2018-06-13 17:17:22 5737

原创 深度学习理论——数据预处理(逐样本减去均值)

大家好,继续深度学习的理论日记,本次介绍数据预处理相关内容。在深度学习中,大家都会发现训练集,验证集合测试集划分好之后会有减去均值的一步操作,但很多人都是只跟着做,并没有探究为什么要做这一步处理。其主要原理是我们默认自然图像是一类平稳的数据分布(即数据每一维的统计都服从相同分布),此时,在每个样本上减去数据的统计平均值可以移除共同的部分,凸显个体差异。其效果如下所示:可以看到天空的纹理被移除了,凸...

2018-06-12 15:26:15 11695 4

原创 深度学习理论——基本结构(池化层&激活函数&全连接层)

大家好,继续深度学习理论学习。记录一下自己觉得有用的关于深度学习基本结构的相关知识。1.池化层池化层不包含需要学习的参数,使用时仅需指定池化类型,池化核大小和池化步长。池化类型一般都取平均池化(average-pooling)或最大值池化(max-pooling),即取池化矩阵覆盖的输入中的平均值或最大值。池化层存在的意义一般有以下三点:(1)特征不变性  池化使模型更关注是否存在...

2018-06-09 21:10:28 7030

原创 深度学习理论——随机梯度下降法(SGD) & 反向传播

大家好,一直在用深度学习,但是感觉理论并不扎实,打算开始补点理论基础,在CSDN上记录下来。今天介绍随机梯度下降法和反向传播,首先介绍梯度下降法。1.梯度下降法梯度下降法是从初始值开始,向函数上当前点对应梯度的反方向的规定步长的距离点进行迭代搜索,最终得到最小值的过程。公式简易推导如下:更直观的图像表示如图所示:这是学习率为0.001,迭代两百次的示意图,当学习率设的更...

2018-06-08 11:07:21 10198 1

原创 Linux入门——vi/bash/echo/set

大家好,项目需要,这两天看了一下Linux入门,只是一些基础知识,给自己记录一下。1.vi不管是vi还是vim都是Linux的一种常用编辑器,执行vi命令就是在调用这个编辑器。在编辑完想要退出编辑器的时候,输入:进入vi的末尾模式,如果想要退出vi的同时保存所编辑的内容,就是如wq,如果不保存所编辑的内容想要强行退出,就输入q!2.bash很多Linux系统都默认使用bash(Bourne Aga...

2018-06-07 11:06:15 789

原创 LeetCode刷题——计算质数

大家好,本期刷题日记是计算质数。先看题目:思路:我最开始没想出什么好办法,是用硬算的方法,一个一个除,有能除尽的就不是质数,全都除不尽就是。这种方法很笨,就去看了别人的方法,看到一个很巧妙的,因为我还不太会转载,直接附上他的链接:点击打开新世界的大门学习了,希望能记住这种方法,我们下期见!...

2018-05-21 20:46:13 1483

原创 LeetCode刷题——爬楼梯

大家好,今天刷到了动态规划类型的题,原先对动态规划具体是什么并没有概念,今天趁机了解了一下。很多人觉得动态规划问题就是递归。但我觉得动态规划问题更应该是状态的定义和状态转移方法的定义。通过初始状态和寻找状态转移方法对一个复杂问题进行拆分。先看下问题描述:思路:我最开始不了解动态规划思路的时候想到的是最简单粗暴的排列组合的方法,应该也是对的,但是运行会超时。也是我的心血,还是放上代码:class S...

2018-05-17 16:09:06 301

神经网络与深度学习

随着AlphaGo与李世石大战的落幕,人工智能成为话题焦点。AlphaGo背后的工作原理'深度学习'也跳入大众的视野。什么是深度学习,什么是神经网络,为何一段程序在精密的围棋大赛中可以大获全胜?人工智终将会取代人类智慧吗?, 本书结合日常生活中的寻常小事,生动形象地阐述了神经网络与深度学习的基本概念、原理和实践,案例丰富,深入浅出。对于正在进入人工智能时代的我们,这些内容无疑可以帮助我们更好地理解人工智能的原理,丰富我们对人类自身的认识,并启发我们对人机智能之争更深一层的思考与探索。, 《神经网络与深度学习》是一本介绍神经网络和深度学习算法基本原理及相关实例的书籍,它不是教科书,作者已尽量把公式减少到最少,以适应绝大部分人的阅读基础和知识储备。《神经网络与深度学习》涵盖了神经网络的研究历史、基础原理、深度学习中的自编码器、深度信念网络、卷积神经网络等,这些算法都已在很多行业发挥了价值。, 《神经网络与深度学习》适合有志于从事深度学习行业的,或想了解深度学习到底是什么的,或是有一定机器学习基础的朋友阅读。

2017-10-24

空空如也

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

TA关注的人

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