- 博客(44)
- 资源 (4)
- 收藏
- 关注
原创 C++: 面试基本点
1:请说出const与#define 相比,有何优点?答案:Const作用:定义常量、修饰函数参数、修饰函数返回值三个作用。被Const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。1) const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。2) 有些集成化的调试工具...
2018-04-29 15:59:39 235 1
原创 C++:New和Delete的用法
//C++里 数组new 和delete问题 //对于数组new的不同方式 和不同的释放方法 //---------------------------------------------------------------- // 创建字符指针数组 char **parr = new char*[100]; //注意这里是**parr // 释放各个字符...
2018-04-29 15:29:10 420
转载 经典网络结构:Inception , ResNet, DenseNet,SeNet网络
1. Inception-v3 (Dec,2015) 2. ResNet(Dec,2015) 3. nception-v4(Aug,2016) 4. Dual-Path-Net (Aug,2017) 5. Dense-net(Aug,2017) 6. SEnet(Sep,2017) 7.Wide Residual Networks(Jun 2017)Inception V3(还有 V2) Chr...
2018-04-27 21:34:52 6312
转载 经典网络结构:ResNet和DenseNet的对比
转自:http://blog.csdn.NET/cv_family_z/article/details/50328175CVPR2016 https://github.com/KaimingHe/deep-residual-networks这是微软方面的最新研究成果, 在第六届ImageNet年度图像识别测试中,微软研究院的计算机图像识别系统在几个类别的测试中获得第一名。本文是解决超深度CNN网络...
2018-04-27 21:31:58 7807 1
转载 C++:面试题知识总结
面试题1:变量的声明和定义有什么区别为变量分配地址和存储空间的称为定义,不分配地址的称为声明。一个变量可以在多个地方声明,但只能在一个地方定义。加入extern修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。说明:很多时候一个变量,只是声明,不分配内存空间,知道具体使用时才初始化,分配内存空间,如外部变量。面试题2:sizeof和strlen的区别sizeof和strlen有以下区...
2018-04-26 22:00:15 154
转载 C++:面试题基础知识点
1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动...
2018-04-26 21:38:29 894
原创 C++:基本知识点
1:指针和引用指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元,即指针是一个实体;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。2:内存泄露和内存溢出泄漏就是内存申请后,用完没有释放,造成可用内存越来越少。溢出指用户实际的数据长度超过了申请的内存空间大小,导致覆盖了其他正常数据,容易造成程序异常,严重的,攻击者可以以此获取程序控制权3:纯虚函数和虚...
2018-04-25 22:20:03 110
原创 C++:const和define的区别
1:const 是常量数据类型,存处在程序的数据段,define只是进行文本的替换,存在与程序的代码区;2:内敛函数,不需要寻址的过程,函数直接展开,所以不会跳跃,比较快,在编译的时候复制代码;3:struct的默认继承是public的,class的默认继承是private;4:typedef主要用来定义新的数据类型,define主要用来定义变量;我们平常所求的变量地址这里是逻辑关系,真实的物理地...
2018-04-22 17:26:15 1460
原创 目标检测:SSD和DSSD算法的对比分析
1:SSDSSD算法的提出解决了fasterRCNN中只能在一层特征map上预测目标的问题,SSD可以在不同的特征map上来预测不同的目标大小,更加具有针对性,提升了目标的检出率,做了很多的数据增强,提升也比较大;缺点也比较明显,不同的anchors设置比较的麻烦,2:DSSD论文的核心思想,也就是如何利用中间层的上下文信息。方法就是把红色层做反卷积操作,使其和上一级蓝色层尺度相同,再把二者融合在...
2018-04-22 09:23:02 3935
原创 目标检测:FasterRCNN,RFCN和Light-RCNN的对比分析
每一种框架和算法的提出,都是为了解决一个问题而存在的!1:FasterRCNN提出RPN的机制,推荐anchors,解决了推荐窗口耗时的问题,但是对于大分类问题,第二阶段大的卷积核,耗时依然是个瓶颈;2:RFCN提出了位置敏感map的策略,使用psROIpooling的策略,尽量降低第二阶段的耗时,去掉了两个大的fc的耗时,采用了全局平均的策略,进一步的降低了二阶段的耗时,速度上得到较大的提升;3...
2018-04-22 09:08:00 2632
原创 人脸检测:MTCNN的训练步骤和样本的处理
采用数据集:人脸检测和人脸框回归:WIDER_FACE特征点标定:CelebaP-net:P-net的任务是人脸检测和人脸框回归,所以该阶段仅需要使用WIDER FACE数据集。为什么没带特征点标定任务?P-net输入12*12的图像,图像太小,不适合做特征点标定,我个人理解是loss函数根据人脸带不带关键点来训练的;其实widerface和celeb都是用了,第一阶段到第三阶段都使用;(1)取候...
2018-04-20 21:46:50 3971
转载 Face Paper:Cascade R-CNN: Delving into High Quality Object Detection解读
论文链接:https://arxiv.org/abs/1712.00726 代码链接:https://github.com/zhaoweicai/cascade-rcnn 目标检测真的没东西可做了吗?已经开始关注IOU的最优选择了,不过小的trick,确实提升效果也很显著;今天给大家介绍一篇个人觉得对detection非常有insight的一篇文章:"Cascade R-CNN: Del...
2018-04-20 21:42:30 4755 1
转载 经典网络结构:Inception到Mobilenet的蜕变
Inception v1的网络,主要提出了Inceptionmodule结构(1*1,3*3,5*5的conv和3*3的pooling组合在一起),最大的亮点就是从NIN(Network in Network)中引入了1*1 conv,结构如下图所示,代表作GoogleNet假设previous layer的大小为28*28*192,则,a的weights大小,1*1*192*64+3*3*192...
2018-04-19 22:01:06 3068
转载 目标检测:FasterRCNN系列汇总
RCNN RCNN(Regions with CNN features)是将CNN方法应用到目标检测问题上的一个里程碑,由年轻有为的RBG大神提出,借助CNN良好的特征提取和分类性能,通过RegionProposal方法实现目标检测问题的转化;算法可以分为四步: 1)候选区域选择 Region Proposal是一类传统的区域提取方法,可以看作不同宽高的...
2018-04-19 21:55:04 1290
转载 目标检测:YOLOV3论文解读
一、yolov3论文解读论文连接地址: 点击打开链接1. yolov3实现的idea1.1 边界框的预测(Bounding Box Prediction)与之前yolo版本一样,yolov3的anchor boxes也是通过聚类的方法得到的。yolov3对每个bounding box预测四个坐标值(tx, ty, tw, th),对于预测的cell(一幅图划分成S×S个网格cell)根据图像左上角...
2018-04-19 21:46:44 11332 2
转载 深度学习通用策略:BN原理详解以及优势
今年过年之前,MSRA和Google相继在ImagenNet图像识别数据集上报告他们的效果超越了人类水平,下面将分两期介绍两者的算法细节。 这次先讲Google的这篇《Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift》,主要是因为这里面的思想比较有普适性,而且一直...
2018-04-18 22:09:20 8165
转载 人脸对齐:人脸定点之DeepCNN第一阶段
转载博客:https://blog.csdn.net/chenriwei2/article/details/49706563实验过程:数据准备由于港中文[1]他们有公开了训练集,所以我们就可以直接使用他们提供的图像库就好了。 数据是需要转化的:1、框出人脸图像部分,从新计算关键点的坐标 2、缩放人脸框大小,同时更新计算的关键点坐标 3、一些数据增强处理:我只采样了左右对称的增强方法(还可以采用的数...
2018-04-18 22:01:05 1136
转载 人脸对齐:人脸关键点数据库
转载自:http://blog.csdn.net/xzzppp/article/details/74939823一、人脸关键点检测数据库(2001年发布)BioID :约1000幅图像,每个人脸标定20个关键点。https://www.bioid.com/About/BioID-Face-Database(2011年发布)LFPW:1132幅图像,每个人脸标定29个关键点http://neeraj...
2018-04-18 21:51:58 3491
原创 C++:虚函数和虚继承
1:虚析构函数主要是为了解决释放父类的指针,同时释放子类的指针,防止内存的泄露;例如 Father p = new Son();delete P;P= NULL;如果父类没有析构函数则会造成内存泄露;2:虚继承主要解决是菱形继承中的问题,主要是为了子类访问父类中的成员变量的问题!...
2018-04-16 21:10:08 145
转载 深度学习剖根问底:caffe常用的优化算法solver实现
常见算法SGDx+= -learning_rate*dxMomentumMomentum可以使SGD不至于陷入局部鞍点震荡,同时起到一定加速作用。 Momentum最开始有可能会偏离较远(overshooting the target),但是通常会慢慢矫正回来。v = mu*v - learning_rate*dxx+= vNesterov momentumAdaGrad使用每个变量的历史梯度值...
2018-04-16 18:47:16 613
原创 C++:Private和Protected的成员变量的区别
1:在public的共有继承中protected的变量在继承的子类中继承为protected的,子类的成员函数可以直接访问,在类外函数调用时,可以通过子类的对象可以访问;protected的变量在继承的子类中继承为protected的,子类的成员函数可以直接访问,在类外函数调用时,不可以通过子类的对象可以访问;2:实例隐藏是指在继承过程中子类和父类存在同名函数的一种情况,他和重写很相似,但是是完全...
2018-04-16 18:40:34 2303
原创 深度学习剖根问底: Adam优化算法理解
Momentum是为了对冲mini-batch带来的抖动。RMSprop是为了对hyper-parameter进行归一,均方根反向传播(RMSProp)。这两个加起来就是Adam看原始的RMSProp算法: 再看算法:其实就是Momentum+RMSProp的结合,然后再修正其偏差。 ...
2018-04-15 16:37:25 5267 3
转载 深度学习剖根问底: Adam优化算法的由来
转载:https://zhuanlan.zhihu.com/p/27449596?utm_source=weibo&utm_medium=social在调整模型更新权重和偏差参数的方式时,你是否考虑过哪种优化算法能使模型产生更好且更快的效果?应该用梯度下降,随机梯度下降,还是Adam方法?这篇文章介绍了不同优化算法之间的主要区别,以及如何选择最佳的优化方法。什么是优化算法?优化算法的功能,...
2018-04-14 11:27:23 5385
原创 深度学习剖根问底:SGD算法的优化和变种
闲来无事,我也来回顾一下考研时的高数: 一个函数的拐点可能是二阶导数为0的点,也有可能是二阶不可导点.至于为什么拐点处二阶导数为0,是这样的,一阶导数描述函数的变化,二阶导数描述一阶导数的变化,也就是斜率的变化情况,拐点处斜率大小由递增变为递减,或者由递减变为递增, 这样自然二阶导数为0了! adagrad相比于sgd和momentum更加稳定,即不需要怎么调参。而精调的...
2018-04-14 10:40:20 1036
转载 目标检测之DSOD:SSD算法的优化
github代码:https://github.com/szq0214/DSOD由于深度学习需要大量的训练数据,而针对特定任务需求的训练样本往往是有限的,通常情况下,目标检测算法会先使用在海量数据(如ImageNet数据集)上训练好的分类模型对需要训练的网络参数进行初始化(pre-train,预训练),然后使用训练样本对网络参数进行微调(fine-tune)。 但这种预训练结合微调的方法存在以下几...
2018-04-13 22:14:09 6707
原创 人脸检测之MTCNN:训练过程详解
个人比较看好MTCNN的,最起码把检测和定位做到一起,并且做的还不错;也算是不错的尝试;MTCNN主要包括三个部分,PNet,RNet,ONet其中PNet在训练阶段的输入尺寸为12*12,RNet的输入尺寸为24*24, ONet的输入尺寸为48*48. PNet网络参数最小,ceffemodel仅有28.2KB, 所以速度最快.RNet的网络参数次之,caffemodel大小为407.9KB,...
2018-04-13 22:07:36 13152 5
转载 C++: 深拷贝和浅拷贝
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include <iostream>using namespace std;class CExample {private: int a;public: CExample(i...
2018-04-12 21:55:35 197
转载 人脸检测之MTCNN:测试代码理解
MTCNN测试代码部分这里采用第三方的MXNet实现版本:https://github.com/pangyupo/mxnet_mtcnn_face_detection。如果感兴趣可以看原论文的代码:https://github.com/kpzhang93/MTCNN_face_detection_alignment。该项目可以用来测试,主要包含三个脚本:main.py、mtcnn_detector...
2018-04-12 18:58:04 4815 3
转载 人脸检测之MTCNN:算法论文理解
MTCNN的github代码:https://github.com/BigcowPeking/mtcnn-caffe这篇博客先介绍MTCNN算法,再介绍代码,结合起来看对算法的理解会更加深入。算法部分MTCNN(Multi-task Cascaded Convolutional Networks)算法是用来同时实现face detection和alignment,也就是人脸检测和对齐。文章一方面引...
2018-04-12 18:42:40 4008
转载 深度学习剖根问题:梯度消失/爆炸
一、梯度消失/梯度爆炸的问题首先来说说梯度消失问题产生的原因吧,虽然是已经被各大牛说烂的东西。不如先看一个简单的网络结构, 可以看到,如果输出层的值仅是输入层的值与权值矩阵W的线性组合,那么最终网络最终的输出会变成输入数据的线性组合。这样很明显没有办法模拟出非线性的情况。记得神经网络是可以拟合任意函数的。好了,既然需要非线性函数,那干脆加上非线性变换就好了。一般会使用sigmoid函数,得到,这个...
2018-04-10 22:12:19 1399
转载 经典网络结构:ResNet解决的问题
Deep Residual Learning for Image Recognition1. 思想作者根据输入将层表示为学习残差函数。实验表明,残差网络更容易优化,并且能够通过增加相当的深度来提高准确率。核心是解决了增加深度带来的副作用(退化问题),这样能够通过单纯地增加网络深度,来提高网络性能。作者在ImageNet上实验了一个152层的残差网络,比VGG深8倍,取得了3.57%的错误率。作者通...
2018-04-10 22:02:14 4269
转载 目标检测之SSD:Single Shot MultiBoxDetector详论文翻译
提示:红色标记表示添加的理解;绿色标记表示文章的重点;蓝色标记表示我们需要对这句话做解释,其后会跟着红色的解释;紫色标记是指org预印版论文与正式出版的区别,括号内的是与正式版不同的预印版内容,未用括号的紫色字体是正式版没有而只是预印版中的内容;文中的“^阿拉伯数字”代表脚注的标号,译文不列出,读者可以自行下载论文(正式版或预印版查看)。注意:如需编译配置SSD-caffe请参看博主博文:http...
2018-04-10 21:51:46 7367 3
转载 目标检测之SSD:数据增强参数详解
数据增强效果图假设原图输入是一张640*480的图片,这里由于版面问题我放缩了图片尺寸并且没做mean subtract,由于最后会有resize参数导致输出的图片都会resize到300x300,但是主要看的是增强的效果,SSD中的数据增强的顺序是:DistortImage: 这个主要是修改图片的brightness,contrast,saturation,hue,reordering chan...
2018-04-10 21:49:09 4708
转载 常用网络结构:Alex,VGG,Resnet对比
1:AlexNet 在这里写链接内容网络中将该模型画出来: AlexNet相比LeNet主要的改动在于: (1) Data Augmentation数据增长,现在的网络中已经大量使用了。最主要的是剪裁,光照变换和水平翻转。 (2) Dropout Dropout方法和数据增强一样,都是防止过拟合的。Dropout应该算是AlexNet中一个很大的创新,以至于Hinton在后来很长一段时间里的T...
2018-04-09 21:37:37 11693 1
转载 深度学习剖根问底:BN中的协方差偏移
今天给大家带来深度学习的优化策略篇的第一篇Batch Normalization(BN)。BN可以看做对输入样本的一种约束,最大作用是加速收敛,减少模型对dropout,careful weight initialnization依赖,可以adopt higher learning rate的优势,收敛速度可以提高10倍以上。 问题提出:深度网络参数训练时内部存在协方差偏移(Internal Co...
2018-04-09 21:30:37 2989
转载 C++特性:隐藏和覆盖
C++类中覆盖与隐藏一直是一个容易理解出错的地方,接下来我就详细讲解一下区别在何处覆盖指的是子类覆盖父类函数(被覆盖),特征是:1.分别位于子类和父类中2.函数名字与参数都相同3.父类的函数是虚函数(virtual)隐藏指的是子类隐藏了父类的函数(还存在),具有以下特征:子类的函数与父类的名称相同,但是参数不同,父类函数被隐藏子类函数与父类函数的名称相同,参数也相同,但是父类函数没有virtual...
2018-04-09 21:24:46 491
转载 深度学习剖根问底:激活函数ReLU
激活函数的作用首先,激活函数不是真的要去激活什么。在神经网络中,激活函数的作用是能够给神经网络加入一些非线性因素,使得神经网络可以更好地解决较为复杂的问题。比如在下面的这个问题中:如上图(图片来源),在最简单的情况下,数据是线性可分的,只需要一条直线就已经能够对样本进行很好地分类。但如果情况变得复杂了一点呢?在上图中(图片来源),数据就变成了线性不可分的情况。在这种情况下,简单的一条直线就已经不能...
2018-04-08 21:32:09 1820
转载 深度学习剖根问底:Logistic回归和Softmax回归
1. 简介逻辑回归和Softmax回归是两个基础的分类模型,虽然听名字以为是回归模型,但实际我觉得他们也有一定的关系。逻辑回归,Softmax回归以及线性回归都是基于线性模型,它们固定的非线性的基函数(basis function) 的线性组合,形式如下:2.逻辑回归谈谈逻辑回归,Softmax回归,前者主要处理二分类问题,而后者处理多分类问题,但事实上Softmax回归就是逻辑回归的一般形式。 ...
2018-04-08 21:28:42 381
转载 深度学习剖根问底:正则化L1和L2范式
正则化(Regularization)机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作ℓ1ℓ1-norm和ℓ2ℓ2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2范数。L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的...
2018-04-08 21:22:32 1480
转载 深度学习面试题
深度学习面试题https://blog.csdn.net/gdmmzmj/article/details/77149643深度学习:https://zhuanlan.zhihu.com/p/25005808深度学习知乎:https://www.zhihu.com/question/41233373深度学习网易面试https://blog.csdn.net/haluoluo211/article/d...
2018-04-05 11:29:36 1170
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人