caffe
范超奇
孜孜不倦,执着追求,脚踏实地,心态归零,心态放平!切勿急功近利,业精于勤,荒于嬉!
展开
-
caffe 调参理解
1.降低过拟合最简单的方法就是进行数据增强,数据增强可通过普通的图像转换和水平翻转。转载 2017-06-27 11:03:58 · 277 阅读 · 0 评论 -
caffe mnist loss函数的理解
1.caffe在设计的时候,保证网络的每一层都可以贡献损失值,每一层对损失的贡献大小是由该层的一个层参数loss_weight决定的,网络中每一层的loss_weight加起来,其和必为1, 默认情况下,后缀为loss的层的层参数loss_weight=1,而其他层的层参数loss_weight=0; 当该层的loss_weight=0时,该层贡献的损失值为0,注意当该层的loss_w原创 2017-06-18 15:53:15 · 564 阅读 · 0 评论 -
深度学习理解(一)
1.深度学习是为了找到一种使得损失函数最小的参数模型,以实现对复杂函数的逼近! 2.训练的最终目的是使损失函数以最快的速度收敛到最小值。原创 2017-06-17 10:51:29 · 307 阅读 · 0 评论 -
caffe 更新权重的理解
1.caffe 在做train时,每一步Step当中,要做iter_size次forward_backward迭代计算,其中每一次foward_backward计算都会产生权重的残差diff,那么做iter_size次forward_backward计算就会产生iter_size次diff残差,SGDSolver会把这iter_size个diff残差做一个平均计算,取其平均值作为本次Step的权值原创 2017-06-06 11:31:17 · 2158 阅读 · 0 评论 -
caffe 卷积层的理解
层参数num_output其实就是滤波器的个数,每张单通道的图片可以卷积出num_output张单通道的图片,这num_output张单通道的图片也可以被称为一张有num_output个channel的图片,这张有num_output个通道的图片不是通过num_output次卷积出来的,而是先将num_output个滤波器排列在一起组成一个矩阵,然后和输入图片进行一次卷积操作就生成了一张有num_原创 2017-05-17 11:41:17 · 362 阅读 · 0 评论 -
关于caffe innerproduct层的理解
假设innerproduct(以下称IP层)层的层参数output_num为n, IP层输入blob尺寸为m*c*w*h ,那么输出尺寸为m*n ,即m*n*1*1,不难看出IP层把输入blob的m个二维矩阵(图片)通过与权重矩阵的卷积运算,最终转化为了一个m*n的二维矩阵,很显然,这个二维矩阵感知了输入的m张图片的综合特征,这也是IP层被称为多层感知的原因吧!原创 2017-05-16 16:18:53 · 6056 阅读 · 0 评论 -
caffe 理解
今天终于明白了caffe 框架的大致思路: 1.首先对图像进行滤波,生成特征图,特征图的个数取决于滤波器的个数,特征图的特征取决于滤波器的种类。 2.对特征图进行池化,池化的目的是在最大限度保留特征信息的情况下,缩小特征图的尺寸,以减少后续计算量。 3.池化过的特征图可以用于进行图片分类,物体检测等等目的原创 2017-05-12 21:22:22 · 418 阅读 · 0 评论 -
base_conv_layer.cpp中的参数理解
//num_spatial_axes_ 代表了卷积核的维度数 num_spatial_axes_ = num_axes - first_spatial_axis; CHECK_GE(num_spatial_axes_, 0); vector spatial_dim_blob_shape(1, std::max(num_spatial_axes_, 1));原创 2017-05-12 16:38:07 · 977 阅读 · 0 评论 -
ceffe 中Relu的理解
1.relu对输入的非负值不做处理,对负值做置零处理. 而高斯卷积层的结果全为非负数,那么如果relu层的上一层为高斯卷积层,是不是relu层就没有作用了?一开始,我对这个问题也很困惑,后来发现了答案,由于网络在每一次反向传播结束后都会对权值进行更新,那么更新后的高斯核中就由可能出现负值,进而高斯卷积层的输出也可能出现负值,所以Relu 层并非对高斯卷积层不起作用。原创 2017-06-27 10:41:37 · 1056 阅读 · 0 评论