深度学习Caffe
时光碎了天
高级图像算法工程师,研究领域包括图像/视频降噪、图像压缩、图像超分、目标检测、语义分割、模型压缩以及OCR。
展开
-
caffe中各种cblas的函数使用总结
转自:http://www.cnblogs.com/huashiyiqike/p/3886670.html 和http://blog.sina.com.cn/s/blog_4a03c0100101ethf.htmlY=alpha * X +beta*Y template <>void caffe_cpu_axpbyfloat>(const int N, const float alp转载 2017-04-18 14:39:06 · 2621 阅读 · 0 评论 -
(16)caffe总结之自定义数据输入层
以下的操作就是读入此图片,然后进行训练:1.创建新定义的头文件include/caffe/layers/my_data_layer.hpp 重新Layer名的方法:virtual inline const char* type() const {return "MyData";}#ifndef CAFFE_MY_DATA_LAYER_HPP_#define CAFFE_MY_原创 2017-04-22 14:40:51 · 3932 阅读 · 2 评论 -
使用caffe训练的深度学习做目标检测(车辆检测)
#include "opencv2/core/core.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/dnn/dnn.hpp"#include "opencv2/ml/ml.hpp"#include "opencv2/objdetect/o原创 2017-04-22 15:09:28 · 10173 阅读 · 11 评论 -
(15)caffe总结之自定义Layer的实现
自定义一个计算层,实现y = x^power + b的功能。自定义神经层具体可以分成5个步:1.创建定义的头文件include/caffe/layers/my_neuron_layer.hpp 重新Layer名的方法:virtual inline const char* type() const {return "MyNeuron";} 如果只是需要cpu的方法的话原创 2017-04-22 11:22:58 · 1459 阅读 · 0 评论 -
(14)caffe总结之Linux下Caffe如何调试
注意,在使用这款软件之前,该有的数据,都要生成,最好先通过终端来运行一下,保证,能运行,再在这个软件上面来运行。Caffe也算是一个代码量比较大的工程,阅读代码过程进行调试有助于我们理解代码。1、编译debug模式的Caffe首先要先将Caffe编译成debug模式,即需要将Makefile.config中"DEBUG := 1"前面的注释去掉再进行重新编译,这样就能得到C转载 2017-04-21 15:34:43 · 1697 阅读 · 0 评论 -
(13)caffe总结之训练和测试自己的图片
学习caffe的目的,不是简单的做几个练习,最终还是要用到自己的实际项目或科研中。因此,本文介绍一下,从自己的原始图片到lmdb数据,再到训练和测试模型的整个流程。一、准备数据有条件的同学,可以去imagenet的官网http://www.image-net.org/download-images,下载imagenet图片来训练。但是我没有下载,一个原因是注册账号的时候,验证码始终出不来(转载 2017-04-21 10:38:02 · 339 阅读 · 0 评论 -
(11)caffe总结之命令行解析
caffe的运行提供三种接口:c++接口(命令行)、python接口和matlab接口。本文先对命令行进行解析,后续会依次介绍其它两个接口。caffe的c++主程序(caffe.cpp)放在根目录下的tools文件夹内, 当然还有一些其它的功能文件,如:convert_imageset.cpp, train_net.cpp, test_net.cpp等也放在这个文件夹内。经过编译后,这些文件都转载 2017-04-20 21:57:27 · 275 阅读 · 0 评论 -
(12)caffe总结之图像数据转换成db(leveldb/lmdb)文件
在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致。而在caffe中经常使用的数据类型是lmdb或leveldb,因此就产生了这样的一个问题:如何从原始图片文件转换成caffe中能够运行的db(leveldb/lmdb)文件?在caffe中,作者为我们提供了这样一个文件:convert_imageset.cpp,存原创 2017-04-21 09:16:40 · 935 阅读 · 0 评论 -
(10)caffe总结之运行caffe自带的两个简单例子
为了程序的简洁,在caffe中是不带练习数据的,因此需要自己去下载。但在caffe根目录下的data文件夹里,作者已经为我们编写好了下载数据的脚本文件,我们只需要联网,运行这些脚本文件就行了。注意:在caffe中运行所有程序,都必须在根目录下进行,否则会出错1、mnist实例mnist是一个手写数字库,由DL大牛Yan LeCun进行维护。mnist最初用于支票上的手写数字识别, 现在转载 2017-04-20 21:44:19 · 811 阅读 · 0 评论 -
(9)caffe总结之solver优化方法
上文提到,到目前为止,caffe总共提供了六种优化方法:Stochastic Gradient Descent (type: "SGD"),AdaDelta (type: "AdaDelta"),Adaptive Gradient (type: "AdaGrad"),Adam (type: "Adam"),Nesterov’s Accelerated Gradient (type: "Ne转载 2017-04-20 21:41:41 · 347 阅读 · 0 评论 -
(8)caffe总结之solver及其配置
solver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是solver配置文件。运行代码一般为# caffe train --solver=*_slover.prototxt在Deep Learning中,往往loss function是非凸的,没有解析解,我们需要通过优化方法来求解。solver的主要作用就是交替调用前向(forward)转载 2017-04-20 21:33:05 · 251 阅读 · 0 评论 -
(7)caffe总结之Blob,Layer and Net以及对应配置文件的编写
深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成。Caffe就是组建深度网络的这样一种工具,它按照一定的策略,一层一层的搭建出自己的模型。它将所有的信息数据定义为blobs,从而进行便利的操作和通讯。Blob是caffe框架中一种标准的数组,一种统一的内存接口,它详细描述了信息是如何存储的,以及如何在层之间通讯的。1、blobBlobs封装了运行时的数据信息,转载 2017-04-20 21:22:59 · 290 阅读 · 0 评论 -
(6)caffe总结之其它常用层及参数
本文讲解一些其它的常用层,包括:softmax_loss层,Inner Product层,accuracy层,reshape层和dropout层及其它们的参数配置。1、softmax-losssoftmax-loss层和softmax层计算大致是相同的。softmax是一个分类器,计算的是类别的概率(Likelihood),是Logistic Regression 的一种推广。Logi转载 2017-04-20 21:14:03 · 409 阅读 · 0 评论 -
(5)caffe总结之激活层(Activiation Layers)及参数
在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的。从bottom得到一个blob数据输入,运算后,从top输入一个blob数据。在运算过程中,没有改变数据的大小,即输入和输出的数据大小是相等的。输入:n*c*h*w输出:n*c*h*w常用的激活函数有sigmoid, tanh,relu等,下面分别介绍。1、Sigmoid对每个输入数据,利用sig转载 2017-04-20 20:46:47 · 314 阅读 · 0 评论 -
(4)caffe总结之视觉层及参数
本文只讲解视觉层(Vision Layers)的参数,视觉层包括Convolution, Pooling, Local Response Normalization (LRN), im2col等层。1、Convolution层:就是卷积层,是卷积神经网络(CNN)的核心层。层类型:Convolution lr_mult: 学习率的系数,最终的学习率是这个数乘以solver.p转载 2017-04-20 20:42:46 · 255 阅读 · 0 评论 -
(3)caffe总结之数据层及参数
caffe中,数据的流动是以Blobs的方式流动。数据层是每个模型的最底层,是模型的人口,不仅提供数据的输入,也提供数据从Blobs转换成别的格式进行保持输出。通常数据的预处理(如减去均值,放大缩小,裁剪和镜像等),也在这一层设置参数实现。数据来源可以来自高效的数据库(如LevelDB和LMDB),也可以直接来自于内层。如果不是很注重效率的话,数据也可以自磁盘的hdf5文件和图片格式文件。转载 2017-04-20 20:26:56 · 261 阅读 · 0 评论 -
(2)caffe总结之目录结构
首先,我们来看下caffe的根目录:第一步安装tree:sudo apt-get install tree第二步:直接输入tree -d.├── build -> .build_release //编译结果存放处,子目录结构与主目录类似├── cmake //使用CMake编译时会用到,不关注│ ├──原创 2017-04-20 19:03:49 · 350 阅读 · 0 评论 -
卷积神经网络(CNN)反向传播算法公式详细推导
转自:http://blog.csdn.net/walegahaha/article/details/51945421 1.http://blog.csdn.net/lu597203933/article/details/46575871 2.http://www.cnblogs.com/tornadomeet/p/3468450.h转载 2017-04-19 14:33:29 · 3608 阅读 · 0 评论 -
(1)caffe总结之Ubuntu 14.04 + Caffe + Cuda 7.5 + Opencv 3.0安装教程
阅读前必读本文是参考 Cuda官网,Caffe官网 上的安装教程以及网上众多大神的配置文章后一边配置一边写的,中途遇到很多坑,最后抹着眼泪终于把caffe环境搭好,最大的感触就是网上好多教程都已经过时了,因此安装过程会碰到许多新问题,真的十分感谢中途给过我帮助的几个大神。Caffe 安装Caffe安装基本按照官网安装教程,首先介绍没有GPU的安装方法,有GPU的只需要在转载 2017-03-01 11:20:09 · 825 阅读 · 0 评论