
Caffe
文章平均质量分 51
chamsu
这个作者很懒,什么都没留下…
展开
-
[Caffe]:关于filler type
Caffe中parameter filler的作用和类型一.作用Fillers是caffe用特定算法随机生成的值来填充网络参数在blob里面的初始值。它只作用在参数的初始化阶段,与gpu无关的操作。二.类型Constant : 令填充值x=0x = 0Uniform : 令填充值x∼U(a,b) x\sim U(a, b) Gaussian : 令填充值x=ax = a Positive翻译 2016-10-09 11:34:11 · 2775 阅读 · 0 评论 -
[Caffe]:关于pycaffe的使用
定制Python层当我们的网络需要多个输入数据,或者标签维度不为1时,这对于caffe提供的数据层来说是难以实现的。 修改C++源码更使实现算法的效率大打折扣。用Python接口来实现特殊的层对于用户来说是十分高效的选择。那么如何定制自己的Python层呢? 确定数据层所需参数,如batch_size, source, image_shape 等确定数据层有多少输出声明Python层lay原创 2017-03-30 21:35:04 · 3490 阅读 · 2 评论 -
[Caffe]:关于Eltwise layer
Eltwise : element-wiseeltwise layer是caffe提供的按元素操作层。它支持3种基本操作: 1. PROD:按元素乘积 2. SUM:按元素求和(默认) 3. MAX:保存元素大者进行何种操作可以在layer里面通过定义EltwiseOp : x #x:=0,1,2 除此之外,该层还定义了 coeff 参数,该参数只对SUM操作起作用。 最后,ca翻译 2016-11-28 16:45:33 · 14926 阅读 · 0 评论 -
[Caffe]:关于 Error parsing text-format Caffe.NetParameter: xxx.xx : Expected interger or identifier.
错误描述 这是protobuf提示的一个错误。它的意思是在用户的prototxt中第xxx行,第xx 列缺少一个整型数或者标识符。解决方法检查对应的prototxt文件,在第xxx行,第xx 列是否缺漏了相应的信息。原创 2017-02-17 10:39:11 · 12195 阅读 · 0 评论 -
[Caffe]:关于ReLU、LeakyReLU 、PReLU layer
ReLU、LeakyReLUReLU作为激活函数被广泛应用于各种深度神经网络中。在这篇博客中,我主要记录一下它和它的变种在caffe中的实现。 先看下来自wikipedia的一张示意图,图中蓝色的线表示的就是ReLU函数。 ReLU激活函数极为f(x)=max(0,x) f(x)=\max(0,x)。而LeakyReLU则是其变体f(x)=max(0,x)+negative_slope×mi翻译 2017-02-20 22:48:30 · 45938 阅读 · 0 评论 -
[Caffe]:Caffe Installation
当前,计算机视觉研究如火如荼,Deep Learning更是被捧上神坛,要靠自己完全实现DNN是一个很困难的过程,一个好的框架显得至关重要。BVLC发布的caffe就是一个很好用的DeepLearning框架。关于caffe的安装教程网上有很多,本文主要根据自己的安装经历讲讲如何快速的安装caffe。OS:Ubuntu 14.04 LTS/ 15.04 / 16.04 LTScuda versi原创 2016-05-09 15:52:04 · 2702 阅读 · 0 评论 -
[Caffe]:关于caffe新手入门
Caffe的几个重要文件用了这么久Caffe都没好好写过一篇新手入门的博客,最近应实验室小师妹要求,打算写一篇简单、快熟入门的科普文。 利用Caffe进行深度神经网络训练第一步需要搞懂几个重要文件:solver.prototxttrain_val.prototxttrain.sh接下来我们按顺序一个个说明。solver.prototxtsolver这个文件主要存放模型训练所用到的一些超参数原创 2017-05-15 14:15:23 · 40973 阅读 · 5 评论 -
[Caffe]:关于Check failed: registry.count(type) == 0 (1 vs. 0)错误
错误描述当我在终端下用caffe命令对带有PythonLayer的网络训练时,出现了如下错误。 该错误提示Layer的卷积类型已经注册过了。为什么会出现这个错误呢? 其实是,博主机子上有多个Caffe版本,该版本的pycaffe接口没有被指定正确。解决方法我的一种方法是在train.sh脚本文件开头,添加指定PYTHONPATH。 即,在train.sh文件中#train.shexpor原创 2017-05-22 10:09:34 · 3939 阅读 · 0 评论 -
[Caffe]: 关于dropout的实现细节
Dropout关于Dropout的博文网上很多,今晚同学问了我关于Dropout具体是怎么实现的,一时答不出来。 然后就查看了下Caffe的源码,代码思路很清晰,很简洁。思路前向: 训练时,利用伯努利分布,随机出一个只包含0,1的mask矩阵,然后利用这个mask去对应乘上每个输入,得到的就是Dropout后的结果;测试时,Dropout并不起作用。 后向:训练时,根据mask来求对应梯度;测试原创 2017-09-04 00:06:57 · 2323 阅读 · 1 评论 -
[Caffe]:Check failed: out_num_ * inner_num_ == bottom[1]->count()
错误当使用Caffe进行训练时,出现如图所示的错误。 在网上找答案,发现有人说调换label和data的顺序。 一直以为是调换数据层的顺序,然而,并不是。解决方法Softmax层会对输入做检测,判断第一个输入是不是网络层的输出,即NxC。 然后再判断该输出和标签label是否对应。网上所指的data是说分类层的输出。 对调顺序是值在SoftmaxWithLoss层进行!!!原创 2018-03-16 15:51:56 · 1935 阅读 · 5 评论 -
[Caffe]: HDF5Data Layer
Tensorflow、Pytorch和Caffe2的相继问世后,Caffe的热度和优势已逐渐消失。 最近,为了跑对比的实验,用到了HDF5Data层。 遇到一些问题,写篇博客记录以下。HDF5Data Layer// Message that stores parameters used by HDF5DataLayermessage HDF5DataParameter { // Spec原创 2018-03-16 20:51:40 · 978 阅读 · 0 评论 -
[Caffe]: 关于debug_info详解
debug_info在我们使用caffe训练网络的时候发现loss值输出不正常,第一反应就是想输出各层的中间结果进行检查。 caffe提供了一个debug_info参数作为是否输出调试信息的标志。但是,当加了这个参数,发现输出的内容让你一脸懵逼。。。像下面这张图: d第一眼,我们可以看懂,目前计算的是向前传播阶段([Foward]),紧跟着好像是网络层名称,然后就是数据,至于是什么数据,无穷原创 2017-03-28 16:29:01 · 6192 阅读 · 0 评论 -
[Caffe]: 关于make runtest error
最近更新cuda8.0,重新编译caffe时出现了如下错误: 该错误是由于caffe在链接的时候无法访问到libopencv_core.so.2.4这个文件。当我用locate libopencv_core.so.2.4 时发现是存在该文件的。同时,在caffe的配置文件中也是指定了查找路径的,后来发现是文件的权限问题。于是添加x 权限给该文件后,该问题解决了。原创 2017-02-17 10:31:07 · 924 阅读 · 0 评论 -
[Caffe]: 关于Scale layer
Scale layercaffe源码中给出了scale层的作用,如下:/** * @brief Computes the elementwise product of two input Blobs, with the shape of * the latter Blob "broadcast" to match the shape of the former. *翻译 2017-02-20 16:37:31 · 12216 阅读 · 1 评论 -
[Caffe]:关于lr_policy
在caffe.proto里面,有关于learning rate policy的描述,介绍了如下几种策略: // The learning rate decay policy. The currently implemented learning rate // policies are as follows: // - fixed: always return base_lr.翻译 2016-09-23 17:32:13 · 2169 阅读 · 0 评论 -
[caffe]:关于调用caffe库,cmake 编译问题
前言博主这两天在编译师兄留下的工具,因为有CMakeList.txt文件很直接的就知道要用cmake来编译它.初次编译调用caffe库的文件,没有经验得直接在该目录下直接执行cmake . 天真的以为一切会顺风顺水,俗话说帅不过3秒,很快就弹出错误提示.错误和尝试 它提示说找不到CaffeConfig.cmake和caffe-config.cmkae文件,于是我就去caffe根目录下的cmake里原创 2016-11-11 11:34:30 · 5871 阅读 · 3 评论 -
[Caffe]:关于diff = 0/nan
错误提示当训练过程出现loss=87.6533时需要注意,你的网络出现问题了.你可以通过在solver.prototxt添加debug_info:true来查看训练过程. 网络上对该问题有三种解决方案: 1. label编号从0开始 2. 最后一层的output_num:自己实验数据的类别数 3. 调整base_lr原创 2016-11-01 17:01:04 · 1776 阅读 · 0 评论 -
[Caffe]:关于deploy
当我们训练完一个网络模型后,就该考虑怎么使用这个辛苦训练出来的模型了。此时,我们需要修改原本用于train和val的网络结构。一、去除训练用的网络层data layer 如:layer { name: "mnist" type: "Data" top: "data" top: "label" include { phase: TRAIN翻译 2016-09-27 17:16:10 · 3077 阅读 · 14 评论 -
[Caffe]:关于SPP Layer
SPP LayerSPP layer 是Kaiming He组在ECCV2014年的《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》这篇文章中提出的一种空间结构下采样方法。 Caffe把该网络层结构加进来自己的平台中。下面我介绍下SPP结构的内容:message SPPParameter翻译 2016-12-01 17:33:27 · 3541 阅读 · 0 评论 -
[Caffe]:关于*** Aborted at 1479432790 (unix time) try "date -d @1479432790" 错误的另一种原因
这两天在caffe跑网络,原本的lr_policy:"step",后面更改了策略,使用lr_policy:"step"。但是却出现了如下错误:*** Aborted at 1479432790 (unix time) try "date -d @1479432790" if you are using GNU date ***PC: @ 0x7fe47645db63 caffe::SGDS原创 2016-11-18 10:03:35 · 7325 阅读 · 1 评论 -
[Caffe]:关于Check failed: shape[i] >= 0 (-2 vs. 0)错误
错误发现及分析当使用caffe训练网络的时候,出现如题错误,我们可以分析下日志,日志如下: 我们可以看出,在错误发生前生成的Top shape:64 2048 4 4 。也就是feature size是4 × 4的。然后再看看pool5对应的pooling layer的设置: 发现pooling的核大小被设置成7,这就是问题的所在了。解决方案改变输入图像的大小,可以使feature m原创 2016-11-21 17:12:56 · 6867 阅读 · 0 评论 -
[Caffe]:关于编写specific layer
实现 specific layer根据标准编写specific_layer.hpp(存放在include/caffe/layers/目录下)按照caffe标准模板编写specific_layer.cpp(存放在src/caffe/layers/目录下)实现cuda版本,即specific_layer.cu(同上)编写test文件修改caffe.proto如果specific_layer需要原创 2016-12-07 10:27:48 · 665 阅读 · 0 评论 -
[Caffe]:convert_data_lmdb.sh error
[caffe]:convert_data_lmdb.sh error… XXXX… io.cpp:80] Could not open or find file …/0276312/065.jpg 886解决方案:检查数据图像存放的路径是否填写正确在list文件里面,图像路径与图像标签是否用空格” “分隔,’\t’分隔会出现此类错误… db_lmdb.cpp:13] Check faile原创 2016-09-23 09:20:27 · 3180 阅读 · 3 评论 -
[Caffe]: 关于concat layer
Concat layer在Deep Neural Network中,最主要的两种提高模型性能的优化方向就是使模型wider or deeper。 在使模型变宽时,常需要把多个分支合并起来作为后续层的输入。它就是今天要介绍的concat layer。按照惯例,我们先来看下concat layer的参数。message ConcatParameter { // The axis along whi翻译 2017-02-28 09:57:43 · 7105 阅读 · 0 评论 -
[Pytorch]:自定义网络层
自定义后向传播forward() 网络层的计算操作,能够根据你的需要设置参数。 backward() 梯度计算操作。继承Functionclass LinearFunction(Function): # Note that both forward and backward are @staticmethods @staticmethod # bia...翻译 2018-03-19 10:11:53 · 5590 阅读 · 0 评论