caffe框架
2014wzy
这个作者很懒,什么都没留下…
展开
-
Caffe 训练时loss等于87.33的原因及解决方法
如题,在caffe训练时,遇到这个特殊的数字之后,loss会一直就是这个数字。 网上虽然有很多针对这个问题调参的trick,但少有详细的分析,因此,有必要研究一下caffe的源代码。 softmax的公式为 pk=exp(xk)∑iexp(xi) 其中x为softmax前一层的输出softmax的loss计算公式也很简单,就是对softmax之后预测的概率做对数似然函数转载 2017-08-09 11:28:16 · 784 阅读 · 0 评论 -
softmax layer是什么
中间蓝色区域表示一层layer,左边输入右边输出。softmax layer的意思就明白了。原创 2016-12-27 19:29:14 · 5136 阅读 · 0 评论 -
caffe(汇总)
深度卷积网络 涉及问题:1.每个图如何卷积: (1)一个图如何变成几个? (2)卷积核如何选择?2.节点之间如何连接?3.S2-C3如何进行分配?4.16-120全连接如何连接?5.最后output输出什么形式?①各个层解释: 我们先要明确一点:每个层有多个Feature Map,每个F原创 2016-12-19 21:36:46 · 1984 阅读 · 0 评论 -
Caffe源码阅读(1) 全连接层
今天看全连接层的实现。主要看的是https://github.com/BVLC/caffe/blob/master/src/caffe/layers/inner_product_layer.cpp主要是三个方法,setup,forward,backwardsetup 初始化网络参数,包括了w和bforward 前向传播的实现backward 后向传播的实现setup转载 2016-12-19 21:32:04 · 727 阅读 · 0 评论 -
Caffe 增加自定义 Layer 及其 ProtoBuffer 参数
在飞驰的列车上,无法入眠。外面阴雨绵绵,思绪被拉扯到天边。翻看之前聊天,想起还欠一个读者一篇博客。于是花了点时间整理一下之前学习 Caffe 时增加自定义 Layer 及自定义 ProtoBuffer 参数的简单例程,希望对初学者有借鉴意义。博客内容基于新书《深度学习:21 天实战 Caffe》,书中课后习题答案欢迎读者留言讨论。以下进入转载 2016-12-19 21:23:08 · 791 阅读 · 0 评论 -
caffe (SGD ADAGRAD NAG BN)
在Deep Learning中,往往loss function是非凸的,没有解析解,我们需要通过优化方法来求解。Caffe通过协调的进行整个网络的前向传播推倒以及后向梯度对参数进行更新,试图减小损失。 Caffe已经封装好了三种优化方法,分别是Stochastic Gradient Descent (SGD), AdaptiveGradient (ADAGRAD), and Nestero原创 2016-12-23 21:08:10 · 931 阅读 · 0 评论 -
Dropout_layer.cpp(防止过拟合)
dropout层的作用是防止训练的时候过拟合。在训练的时候,传统的训练方法是每次迭代经过某一层时,将所有的结点拿来做参与更新,训练整个网络。加入dropout层,我们只需要按一定的概率(retaining probability)p 来对weight layer 的参数进行随机采样,将被采样的结点拿来参与更新,将这个子网络作为此次更新的目标网络。这样做的好处是,由于随机的让一些节点不工作了,因此可原创 2016-12-16 20:59:32 · 2614 阅读 · 0 评论 -
caffe保存训练输出到log 并绘制accuracy loss曲线
之前已经编译了matcaffe 和 pycaffecaffe中其实已经自带了这样的小工具 caffe-master/tools/extra/parse_log.sh caffe-master/tools/extra/extract_seconds.py和 caffe-master/tools/extra/plot_training_log.py.example;拷贝以上文件到当前目录下转载 2016-12-12 15:31:54 · 3066 阅读 · 0 评论 -
ubuntu16.04+nvidia gt740m+cuda7.5+caffe安装、测试经历
首先说明,这是在笔记本上的安装测试经历,首先安装的win10,然后安装ubuntu16.04双系统,显卡为nvidia gt740m win10上没有装nvidia gt740m驱动,也就是用的集显,测试发现若装了nvidia gt740m驱动会无法进去ubuntu,重装无数次的经验废话不多说,上车吧,少年一、安装nvidia显卡驱动进入ubuntu系统设置转载 2016-11-12 21:29:10 · 5801 阅读 · 1 评论 -
LRN层的实现
版权声明:本文为卜居原创文章,未经博主允许不得转载。卜居博客地址:http://blog.csdn.net/kkk584520LRN全称为Local Response Normalization,即局部响应归一化层,具体实现在CAFFE_ROOT/src/caffe/layers/lrn_layer.cpp和同一目录下lrn_layer.cu中。该层需要参数有:norm转载 2016-10-20 16:08:35 · 18077 阅读 · 4 评论 -
caffe中特殊的layer解释
slice:在某一个维度,按照给定的下标,blob拆分成几块。比如要拆分channel,总数50,下标为10,20,30,40,那就是分成5份,每份10个channel,输出5个layer。concat:在某个维度,将输入的layer组合起来,是slice的逆过程。split:将blob复制几份,分别给不同的layer,这些上层layer共享这个blob。tile:将blob的原创 2016-09-06 19:50:18 · 3235 阅读 · 0 评论 -
caffe系列(13)源码简单解析——Layer层
前言老实说,caffe中的layer层代码比较多,各种抽象看起来比较绕。官方关于Layer的教程写的很清楚,我根据这个文档,简单画了个图,再理解起来就方便了一些。layer.hpp和layer相关的头文件有:common_layers.hppdata_layers.hpplayer.hpploss_layers.hppneuron_layers.hpp转载 2016-09-17 22:17:23 · 649 阅读 · 0 评论 -
Caffe系列(12)利用caffe.proto自定义自己的网络
利用caffe.proto自定义自己的网络利用caffeproto自定义自己的网络先不急让我们来看一下caffeproto里面都是些什么让我们把caffeproto用起后记caffe.proto存放在src/caffe/proto/目录下,建议读者能够打开它,跟着这篇教程,学会如何把它用起来(很多人都说要看,反正才一千三百多行是吧…小编我看了两百行就想睡觉了转载 2016-09-17 22:11:22 · 1169 阅读 · 1 评论 -
一个很棒的caffe框架系列的基础学习博客(网址)
http://www.cnblogs.com/denny402/category/759199.html原创 2017-01-13 16:21:45 · 3214 阅读 · 0 评论 -
使用caffe训练时Loss变为nan的原因
梯度爆炸原因:梯度变得非常大,使得学习过程难以继续现象:观察log,注意每一轮迭代后的loss。loss随着每轮迭代越来越大,最终超过了浮点型表示的范围,就变成了NaN。措施: 1. 减小solver.prototxt中的base_lr,至少减小一个数量级。如果有多个loss layer,需要找出哪个损失层导致了梯度爆炸,并在train_val.prototxt中减小该转载 2017-03-01 18:43:46 · 3413 阅读 · 0 评论 -
Caffe-Miscoroft无训练日志解决方法
Caffe的训练日志就是我们在命令窗口中看到的训练时打印出来的信息,我们可以利用这些信息画训练时lossaccruacy图,至于怎么利用这些信息画出这两个图是下一篇将要讲述的问题。我们先来看看这些保存在什么地方。如果你是使用的Caffe-Windows版本是happynear大神编译的老版本,那你应该会在bin文件下发现一个log文件夹,里面保存的就是我们需要的训练文件,文件名上有时间,可转载 2017-07-31 11:00:59 · 548 阅读 · 0 评论 -
Caffe:CPU模式下使用openblas-openmp(多线程版本)
从所周知,所有的深度学习框架使用GPU运行是最快的,但是在不具备Nvidia显卡的环境下只使用CPU来运行,慢就慢点吧,对于学习阶段还是够用的。Caffe用到的Blas可以选择Altas,OpenBlas,Intel MKL,Blas承担了大量了数学工作,所以在Caffe中Blas对性能的影响很大。 MKL要收费,Altas略显慢(在我的电脑上运行Caffe自带的example/mni转载 2017-07-17 22:25:06 · 1813 阅读 · 1 评论 -
deep-visualization-toolbox可视化安装
运行环境:Linux+caffe步骤:Step 0: Compile master branch of caffe本代码运行的前提是,配置过caffe。因为配置caffe的过程中会出现一些依赖库,正是本代码所需要的。http://blog.csdn.NET/u011204487/article/details/51596471是配置caffe的过程。注意Makefile.con原创 2017-07-17 16:59:10 · 2418 阅读 · 1 评论 -
caffe的Matlab接口的使用方法以及会出现的问题
编译MatCaffe使用如下命令编译MatCaffemake all matcaffe11之后,你可以用以下命令测试MatCaffe:make mattest11如果你在运行上面命令时,遇到如下错误:libstdc++.so.6 version ‘GLIBCXX_3.4.15’ not found,说明你的Matlab库不匹配。你需要在启动Matlab之前运行如下命转载 2017-06-27 14:34:15 · 1541 阅读 · 0 评论 -
Liux常用命令和caffe 常用命令
Linux部分: 配置 cuda 环境变量 export LD_LIBRARY_PATH=/usr/local/cuda/lib64:./build/lib:$LD_LIBRARY_PATH查看当前环境变量:echo $PATH设置: 方法一:export PATH=PATH:/XXX 但是登出后就失效方法二:修改~/.bashrc或~/.bash_profile或系统级转载 2017-04-24 21:58:11 · 956 阅读 · 0 评论 -
caffe zoo .caffemodels模型下载\通过网络结构估算caffemodel文件的大小(转载)
这里有很多模型文件,训练好的。http://dl.caffe.berkeleyvision.org/原创 2016-09-02 14:17:36 · 2999 阅读 · 0 评论 -
【Caffe安装】caffe安装系列——史上最详细的安装步骤
说明网上关于caffe的安装教程非常多,但是关于每一步是否操作成功,出现了什么样的错误又该如何处理没有给出说明。因为大家的操作系统的环境千差万别,按照博客中的教程一步步的安装,最后可能失败——这是很常见的哦。有的教程甚至省略了一些细节部分,让小白更不知道如何判断每一步是否操作成功,如何处理出现的错误。作者花费了很长时间才成功地将caffe装完,期间遇到好多错误,多次重装操作系统。现在将经验转载 2016-11-21 15:10:37 · 12139 阅读 · 1 评论 -
caffe实现多标签输入(multilabel、multitask)
caffe里自带的convert_imageset.cpp直接生成一个data和label都集成在Datum的lmdb(Datum数据结构见最后),只能集成一个label。而我们平时遇到的分类问题可能会有多个label比如颜色,种类等。目前网上有多种解决方法: 1. 修改caffe代码,步骤繁琐,但是对于理解代码有帮助 2. 加入多个data和label层作为输入,简单可行,但是需转载 2017-04-19 20:53:10 · 1363 阅读 · 1 评论 -
实战caffe多标签分类——汽车品牌与车辆外观(C++接口)[详细实现+数据集]
前言很多地方我们都需要用到多标签分类,比如一张图片,上面有只蓝猫,另一张图片上面有一只黄狗,那么我们要识别的时候,就可以采用多标签分类这一思想了。任务一是识别出这个到底是猫还是狗?(类型)任务二是识别出这是蓝还是黄?(颜色) 网上看了几篇教程,有讲的非常好的,也有出bug飞上了天的(吐槽啊喂!)这里还是主要讲讲这篇:http://chuansong.me/n/4947531转载 2017-04-19 20:51:27 · 3932 阅读 · 3 评论 -
caffe(无CUDA,caffe在CPU下运行)+Ubuntu14.0.4详解---(适合于初学者配置)
http://blog.csdn.net/autocyz/article/details/51783857 (2016.6月份的博文,本文没有参考这篇博客,不过感觉写的挺好 贴上连接)http://www.ithao123.cn/content-1759601.htmlcaffe是一个简洁高效的深度学习框架,具体介绍可以看这里http://caffe.berkeleyvisi原创 2016-08-08 22:37:37 · 14623 阅读 · 4 评论 -
caffe 有关prototxt文件的设置解读
solver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是solver配置文件。运行代码一般为[plain] view plain copy ./bulid/tools/caffe train -solver *_solver.prototxt 在Deep Learning中,往往loss原创 2016-08-09 20:44:18 · 11446 阅读 · 0 评论 -
如何在新版本caffe里添加新的一层
1、属于哪个类型的layer,就打开哪个hpp文件,这里就打开vision_layers.hpp,然后自己添加该layer的定义,或者直接复制Convolution_Layer的相关代码来修改类名和构造函数名都改为Aaa_Layer,如果不用GPU,将*_gpu的声明都去掉。2、实现自己的layer,编写Aaa_Layer.cpp,加入到src/caffe/layers,主要实现Setup、Fo原创 2016-08-29 11:58:35 · 3736 阅读 · 3 评论 -
caffe多任务学习之多标签分类
最近在参加一个识别的竞赛,项目里涉及了许多类别的分类,原本打算一个大的类别训练一个分类模型,但是这样会比较麻烦,对于同一图片的分类会重复计算分类网络中的卷积层,浪费计算时间和效率。后来发现现在深度学习中的多任务学习可以实现多标签分类,所有的类别只需要训练一个分类模型就行,其不同属性的类别之间是共享卷积层的。我所有的项目开发都是基于caffe框架的,默认的,Caffe中的Data层只支持单维标签,不转载 2017-03-19 11:09:21 · 6239 阅读 · 6 评论 -
Caffe做分类初步学习以及遇到的一些坑
1.安装mac下安装caffe可以参考之前的一篇wiki(在mac下安装caffe),当然如果遇到其他问题请自行google。对于各种linux系统,网上的教程已经非常多了。2.caffe代码与架构层次简单介绍caffe源码是Cpp语言的,基于一些外部的库,包括BLAS(矩阵计算),CUDA(GPU驱动),gflags,glog,boost,protobuf,hdf转载 2016-09-15 22:33:54 · 4840 阅读 · 1 评论 -
caffe源码解析 — caffe.proto
引言要看caffe源码,我认为首先应该看的就是caffe.proto。 它位于…\src\caffe\proto目录下,在这个文件夹下还有一个.pb.cc和一个.pb.h文件,这两个文件都是由caffe.proto编译而来的。 在caffe.proto中定义了很多结构化数据,包括:BlobProtoDatumFillerParameterNetParameterSolver转载 2016-09-17 22:08:48 · 503 阅读 · 0 评论 -
Caffe使用step by step:caffe框架下的基本操作和分析
caffe虽然已经安装了快一个月了,但是caffe使用进展比较缓慢,果然如刘老师说的那样,搭建起来caffe框架环境比较简单,但是完整的从数据准备->模型训练->调参数->合理结果需要一个比较长的过程,这个过程中你需要对caffe中很多东西,细节进行深入的理解,这样才可以知道为什么能有这样的结果,在训练或者fine-tuning时知道针对调整的方法。下面针对caffe中的使用进行讲解。转载 2016-09-17 22:04:20 · 1046 阅读 · 0 评论 -
Caffe系列(9):训练和测试自己的图片
在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致。而在caffe中经常使用的数据类型是lmdb或leveldb,因此就产生了这样的一个问题:如何从原始图片文件转换成caffe中能够运行的db(leveldb/lmdb)文件?前面文章有学习过着个数据由来和使用。在caffe中,作者为我们提供了这样一个文件:co转载 2016-08-22 16:36:37 · 1302 阅读 · 0 评论 -
Caffe系列(8):命令行解析
caffe的运行提供三种接口:c++接口(命令行)、python接口和matlab接口。本文先对命令行进行解析,后续会依次介绍其它两个接口。caffe的c++主程序(caffe.cpp)放在根目录下的tools文件夹内, 当然还有一些其它的功能文件,如:convert_imageset.cpp, train_net.cpp, test_net.cpp等也放在这个文件夹内。经过编译后,这些文转载 2016-08-22 16:35:35 · 376 阅读 · 0 评论 -
Caffe系列(7):solver优化方法
上文提到,到目前为止,caffe总共提供了六种优化方法:Stochastic Gradient Descent (type: "SGD"),AdaDelta (type: "AdaDelta"),Adaptive Gradient (type: "AdaGrad"),Adam (type: "Adam"),Nesterov’s Accelerated Gradient (type: "Ne转载 2016-08-22 16:34:28 · 434 阅读 · 0 评论 -
Caffe系列(6)solver及其配置
solver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是solver配置文件。运行代码一般为# caffe train --solver=*_slover.prototxt在Deep Learning中,往往loss function是非凸的,没有解析解,我们需要通过优化方法来求解。solver的主要作用就是交替调用前向(forwar转载 2016-08-22 15:41:09 · 389 阅读 · 0 评论 -
Caffe系列(5):Blob,Layer and Net以及对应配置文件的编写
深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成。Caffe就是组建深度网络的这样一种工具,它按照一定的策略,一层一层的搭建出自己的模型。它将所有的信息数据定义为blobs,从而进行便利的操作和通讯。Blob是caffe框架中一种标准的数组,一种统一的内存接口,它详细描述了信息是如何存储的,以及如何在层之间通讯的。1、blobBlobs封装了运行时的数转载 2016-08-22 16:32:23 · 448 阅读 · 0 评论 -
Caffe系列(4):其它常用层及参数
本文讲解一些其它的常用层,包括:softmax_loss层,Inner Product层,accuracy层,reshape层和dropout层及其它们的参数配置。1、softmax-losssoftmax-loss层和softmax层计算大致是相同的。softmax是一个分类器,计算的是类别的概率(Likelihood),是Logistic Regression 的一种推广。Lo转载 2016-08-22 16:31:36 · 382 阅读 · 0 评论 -
Caffe系列(3):激活层(Activiation Layers)及参数
在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的。从bottom得到一个blob数据输入,运算后,从top输入一个blob数据。在运算过程中,没有改变数据的大小,即输入和输出的数据大小是相等的。输入:n*c*h*w输出:n*c*h*w常用的激活函数有sigmoid, tanh,relu等,下面分别介绍。1、Sigmoid对每个转载 2016-08-22 16:30:12 · 470 阅读 · 0 评论 -
Caffe源码导读(1):LRN层的实现
LRN全称为Local Response Normalization,即局部响应归一化层,具体实现在CAFFE_ROOT/src/caffe/layers/lrn_layer.cpp和同一目录下lrn_layer.cu中。该层需要参数有:norm_region: 选择对相邻通道间归一化还是通道内空间区域归一化,默认为ACROSS_CHANNELS,即通道间归一化;原创 2016-08-22 16:25:00 · 906 阅读 · 0 评论 -
Caffe系列(2):视觉层(Vision Layers)及参数
本文只讲解视觉层(Vision Layers)的参数,视觉层包括Convolution, Pooling, Local Response Normalization (LRN), im2col等层。1、Convolution层:就是卷积层,是卷积神经网络(CNN)的核心层。层类型:Convolution lr_mult: 学习率的系数,最终的学习率是这个数乘以so转载 2016-08-22 16:14:41 · 1297 阅读 · 0 评论