caffe
gufeng_1992
这个作者很懒,什么都没留下…
展开
-
Caffe的caffe.proto注解
现在看《21天实战caffe》,要阅读caffe源码,首先从caffe.proto开始,即了解基本数据结构内存对象和磁盘文件的一一对应关系。 本文主要来自http://blog.csdn.net/langb2014/article/details/50395466,尊重作者原创。 caffe.proto定义了很多结构化数据,其中包括: *BlobProto Datum FillerPara转载 2017-03-09 16:23:47 · 559 阅读 · 0 评论 -
Caffe——python接口学习:生成deploy文件
Caffe——python接口学习:生成deploy文件如果要把训练好的模型拿来测试新的图片,那必须得要一个deploy.prototxt文件,这个文件实际上和test.prototxt文件差不多,只是头尾不相同而也。deploy文件没有第一层数据输入层,也没有最后的Accuracy层,但最后多了一个Softmax概率层。这里我们采用代码的方式来自动生成该文件,以mnist为例。# -*- co转载 2017-06-03 11:30:14 · 322 阅读 · 0 评论 -
Caffe——python接口学习(6):用训练好的模型来分类新的图片
Caffe——python接口学习(6):用训练好的模型来分类新的图片我们利用前面训练好的caffemodel模型和生成的deploy.prototxt文件,来对一个新的文件进行分类预测。从mnist数据集中随便找一张图片,来进行实验:#coding=utf-8import caffeimport numpy as nproot='/home/xxx/' #根目录deploy=root转载 2017-06-03 16:26:11 · 516 阅读 · 0 评论 -
Caffe(20):用训练好的caffemodel来进行分类
Caffe(20):用训练好的caffemodel来进行分类 caffe程序自带有一张小猫图片,存放路径为caffe根目录下的 examples/images/cat.jpg, 如果我们想用一个训练好的caffemodel来对这张图片进行分类,那该怎么办呢? 如果不用这张小猫图片,换一张别的图片,又该怎么办呢?如果学会了小猫图片的分类,那么换成其它图片,程序实际上是一样的。转载 2017-06-02 16:10:41 · 327 阅读 · 0 评论 -
Caffe——绘制loss和accuracy曲线
Caffe——绘制loss和accuracy曲线 这里我们在ipython notebook中绘制曲线#加载必要的库import numpy as npimport matplotlib.pyplot as plt%matplotlib inlineimport sys,os,caffe#设置当前目录caffe_root = '/home/bnu/caffe/' sys.path.i转载 2017-06-02 11:56:57 · 300 阅读 · 0 评论 -
Caffe(18)——绘制网络模型
Caffe(18)——绘制网络模型 python/draw_net.py。这个文件,就是用来绘制网络模型的。也就是将网络模型由prototxt变成一张图片。 1 安装GraphViz# sudo apt-get install GraphViz2 安装pydot# sudo pip install pydot安装好后就可以用脚本来绘制图片来draw_net.p转载 2017-06-02 11:26:00 · 321 阅读 · 0 评论 -
Caffe——caffemodel可视化
Caffe——caffemodel可视化 通过前面学习,我们已经能够正常训练各种数据来。设置好solver.prototxt后,我们可以把训练好的模型保存起来,如lennet_iter_10000.caffemodel。训练多少次就自动保存一下,这个是通过snapshot进行设置的,保存文件的路径以及文件名前缀是由snapshot_prefix来设定的。这个文件里面存放的就是各层参转载 2017-06-01 10:06:18 · 1049 阅读 · 0 评论 -
Caffe——python接口学习(1):生成配置文件
Caffe——python接口学习(1):生成配置文件虽然caffe是C++语言写的,但更多人想用简单的脚本语言来实现,caffe提供matlab和python接口。现在我们就学习python接口。首先,需要掌握的是如何写配置文件,通过以下代码来学习# -*- coding: utf-8 -*-"""Spyder Editor"""from caffe import layers as L,转载 2017-06-02 18:11:39 · 413 阅读 · 0 评论 -
caffe之Protocol Buffers学习
转载自http://blog.csdn.net/langb2014/article/category/5998589/5 1概述 Protocol Buffers是在以后纵轻便高效的结构化数据存储格式,可用于结构化数据串行化,或者说序列化。它很适合做数据存储或者说数据交换格式。提供了多种语言的API,如C++,java,python等。 2 BP作用 BP提供了一种灵活/高效的,自动化序列的转载 2017-08-15 23:17:03 · 363 阅读 · 0 评论 -
caffe的caffe.proto
caffe源码中的caffe.proto在…\src\caffe\proto目录下,在这个文件夹下还有一个.pb.cc和一个.pb.c文件,这两个文件都是由caffe.proto编译出来的。 在caffe.proto中定义了很多结构化数据,包括:BlobProtoDatumFillerParameterNetParameterSolverParamterSolverStateLaye转载 2017-11-19 22:52:45 · 383 阅读 · 0 评论 -
caffe系列之数据层及参数
1、数据层是模型的最底层,是模型的入口,不仅提供数据输入,也提供数据从Blobs转换成别的格式进行保存输出,通常的数据预处理(去均值,放大缩小,裁剪和镜像等)也在这一层实现。 2、数据来源可以是高效的数据库(levelDB和LMDB),也可以来自内存,甚至可以是磁盘的HDF5 文件或图片格式文件。layer{ name: "cifar" type: "Data" top:转载 2017-11-23 23:07:26 · 880 阅读 · 0 评论 -
caffe系列之视觉层
视觉层包括Convolution,Pooling, Local Response Normalization(LRN) ,im2col等 Convolution层和Pooling层大家都已经很熟悉,我们重点关注后面两个。 1、Local Response Normalization(LRN)层 此层是对一个输入层的局部区域进行归一化,达到”侧抑制“的效果。可以去搜索AlexNet或GoogLe转载 2017-11-24 11:20:16 · 303 阅读 · 0 评论 -
caffe系列之激活函数
1、Sigmoidlayer{ name: "encod1act" bottom: "encode1" top: "encode1neuron" type: "Sigmoid"}2、ReLU/Retified-Linear and Leaky-ReLU 可选参数:negative_slope:默认为0。对标准的ReLU函数进行变化,如果设置了这个值,那么数据为负数转载 2017-11-24 11:47:56 · 439 阅读 · 0 评论 -
Caffe系列之常用层
softmax_loss层,Inner_Product层,accuracy层,reshape层和dropout层及其他参数配置。1、softmax-loss softmax-loss层和softmax层计算大致相同,softmax是一个分类器,计算的是类别概率,是Logistic Regression的一种推广。 softmax与softmax-loss的区别: softmax计算公式:转载 2017-11-24 22:40:52 · 241 阅读 · 0 评论 -
caffe系列之:Blob,Layer and Net以及对应配置文件的编写
深度网络是一个组合模型,它由许多相互连接的层组合而成的,它按照一定的策略,一层一层的搭建出自己的模型。它将所有的信息数据定义为blobs,从而进行便利的操作和通讯。Blob是caffe的一种标准的数组,一种统一的内存接口,它详细描述了信息是如何存储的、以及如何在层之间的通讯的。 1、blob Blobs封装了运行时的数据信息,提供了CPU和GPU的同步。从数学上来说,Blob是一个N维数组。它是转载 2017-11-24 23:20:19 · 270 阅读 · 0 评论 -
Caffe——Python接口学习(4):mnist实例——手写数字识别
Caffe——python接口学习(4):mnist实例——手写数字识别一、数据准备官网提供的mnist数据并不是图片,但我们以后做的实际项目可能是图片。因此有些人并不知道该怎么办。在此我将mnist数据进行了转化,变成了一张张的图片,我们练习就从图片开始。mnist图片数据我放在了百度云盘。mnist图片数据下载:http://pan.baidu.com/s/1pLMV4Kz数据分成了训练集转载 2017-06-03 10:36:03 · 437 阅读 · 0 评论 -
Caffe——python接口学习(2):生成solver文件
Caffe——python接口学习(2):生成solver文件 caffe在训练的时候,需要一些参数设置,一般将这个参数设置在一个叫solver.prototxt的文件里面,如下:base_lr = 0.001display:782gamma : 0.1lr_policy : "step"max_iter :78200monentum: 0.9snapshot:7820snapsho转载 2017-06-02 20:50:31 · 328 阅读 · 0 评论 -
Caffe——图像数据转换成db文件
Caffe——图像数据转换成db文件 我们平时用到的原始数据图片是jpg,png,tif等格式,而且有可能图片的大小还不一致。而caffe中经常使用的数据类型是lmdb或leveldb,因此就产生了这样一个问题:如何从原始图片文件转换成caffe中能够运行的db文件。 在caffe中,提供了这样一个文件:convert_imageset.cpp,存放在tools文件夹下,编译后生成对应的可执行文转载 2017-05-31 09:47:39 · 558 阅读 · 0 评论 -
Caffe——Python接口学习:绘制loss和accuracy曲线
Caffe——python接口学习:绘制loss和accuracy曲线使用python接口来运行caffe程序,主要的原因是python非常容易可视化。所以不推荐大家在命令行下面运行python程序。如果非要在命令行下面运行,还不如直接用 c++算了。推荐使用jupyter notebook,spyder等工具来运行python代码,这样才和它的可视化完美结合起来。因为我是用anaconda来安装一转载 2017-06-03 16:30:02 · 555 阅读 · 0 评论 -
caffe——Blob,Layer,Net 及其对应配置文件的编写
caffe——Blob,Layer,Net 及其对应配置文件的编写 Dl是一个组合模型,它由许多层组合而成。caffe就是组建深度网络的一个工具,它按照一定测策略,一层一层搭建出自己的模型。它将所有信息数据定义为blobs,以便进行操作和通讯。Blob是caffe框架中一个标准数据类型。是一个统一的内存接口。1 blob Blobs封装了运行时的数据信息,提供了CPU和GPU的同步。从数学上转载 2017-05-30 17:46:28 · 316 阅读 · 0 评论 -
caffe学习系列———激活层及参数
caffe学习系列———激活层及参数 在激活层,对输入数据进行激活操作,是逐元素进行运算。从bottom得到一个blob数据输入,运算后,从top输入一个blob数据。 输入:n*c*h*w 输出:n×c×h×w 常用的激活函数sigmoid,tanh,relu 1 sigmoid函数 layer{name:"sigmoid"bottom:"conv1"top:"conv1ac"转载 2017-05-30 15:42:15 · 477 阅读 · 0 评论 -
caffe——常用层及其参数
caffe——常用层及其参数 我们常用的层包括:softmax_loss层,inner_Product层,accuracy层,reshape层和dropout层。 1 softmax_loss softmax_loss层和softmax计算大致相同。softmax是一个分类器,计算的是类别的概率。 如果用户最终想得到各个类别的概率似然值,这时候只需要一个Softmax层,不需要softm转载 2017-05-30 16:52:28 · 590 阅读 · 0 评论 -
caffe——solver及其配置
caffe——solver及其配置 solver算是caffe的核心的核心,它协调着整个模型运作。caffe程序运行必带的是solver配置文件。运行代码一般为#caffe train --solver=*_solver.prototxt在DL中,往往loss function是非凸的,没有解析解,我们只能通过优化方法来求解。solver主要作用就是交替调用前向算法和后向算法更新参数,从而转载 2017-05-30 20:25:00 · 408 阅读 · 0 评论 -
Caffe——solver优化方法
Caffe——solver优化方法 caffe提供了6种优化方法 - Stochastic Gradient Descent (type: “SGD”), - AdaDelta (type: “AdaDelta”), - Adaptive Gradient (type: “AdaGrad”), - Adam (type: “Adam”), - Nesterov’s A转载 2017-05-30 21:19:22 · 743 阅读 · 0 评论 -
Caffe——命令行解析
Caffe——命令行解析 caffe提供三种接口:C++接口(命令行),python和matlab接口。本文先对命令行进行解析,后续依次介绍其他两个接口。 caffe的C++主程序(caffe.cpp)放在根目录下tools文件夹内,当然还有其他功能文件,如:convert_imageset.app, train_net.cpp, test_net.cpp等也放在这个文件夹内,经过编译后,这些文转载 2017-05-30 22:42:04 · 312 阅读 · 0 评论 -
Caffe——训练和测试自己的图片
Caffe——训练和测试自己的图片 下面我们要训练和测试自己的图片来,好激动。我们搜集来一些图片共500张,分为大巴车、恐龙、大象、鲜花和马五个类,每个类100张。需要的同学,可到这个网盘下载:http://pan.baidu.com/s/1nuqlTnN。 编号分别以1,2,3,4,5,6,7开头,各为一类。我从其中每类选出20张作为测试,其余80张作为训练。因此最终训练图片4转载 2017-05-31 11:58:41 · 245 阅读 · 0 评论 -
Caffe——数据可视化环境(Python接口)配置
Caffe——数据可视化环境(python接口)配置 caffe由C++语言编写,本身不具有数据可视化功能,只能借助其他库或接口,如opencv,python或matlab。大部分人使用python接口可视化,因为python中ipython notebook十分强大好用,现在新版本叫jupyter notebook,他能将python代码搬到浏览器上执行,以富文本方式显示,使得整个工作可转载 2017-05-31 12:31:03 · 628 阅读 · 0 评论 -
Caffe——计算图片的数据均值
Caffe——计算图片的数据均值 图片减去均值后,再进行训练和测试,会提高速度和精度。因此,一般会在各种模型中用到。 这个均值实际上就是所有训练样本的平均值,计算出来后,保存为一个均值文件,在以后的测试中,就可以直接使用这个均值来相减。 一 二进制格式均值计算 caffe中使用的均值数据格式是binaryproto,作者为我们提转载 2017-05-31 23:22:47 · 437 阅读 · 0 评论 -
使用pycaffe定义网络
1、引入库import caffefrom caffe import layers as Lfrom caffe import params as P2、使用pycaffe定义Netn = caffe.NetSpec()3、定义Datalayern.data,n.label = L.Data(batch_size=batch_size,backend = P.data.LMDB,source=l转载 2017-06-15 17:30:13 · 524 阅读 · 0 评论 -
Caffe系列之命令行解析
caffe运行提供三种接口:C++接口,python接口和matlab接口caffe的C++主程序(caffe.cpp)放在根目录下的tools文件夹内,当然还有一些其他功能文件,如: convert_imageset.cpp, train_net.cpp, test_net.cpp等也放在这个文件夹内。经过编译后,这些文件都编译成了可执行文件,放在了./build/tools/文件夹内。因此我们转载 2017-11-25 16:32:10 · 315 阅读 · 0 评论