caffe
文章平均质量分 55
Lavi_qq_2910138025
这个作者很懒,什么都没留下…
展开
-
(1) Windows 10 + VS2013(cpuonly)安装 caffe 教程
一、前言阅读论文时想跑一跑作者提供的代码,可是作者是使用caffe写的,所以不得不安装caffe。之前实验室的小伙伴安装过caffe,据说在windows是安装caffe特别麻烦,会出现很多莫名其妙的问题。但是为kill bug而生的程序员是绝对不会屈服的。面对再多的errors和warnings我们依然要,不管风吹浪打,胜似闲庭信步。于是我带着欲将剩勇追穷寇的勇气,毅然决然地踏上了caffe...原创 2018-03-11 21:50:53 · 2780 阅读 · 4 评论 -
Caffe学习系列(5):其它常用层及参数
前言本文讲解一些其它的常用层,包括:softmax_loss层,Inner Product层,accuracy层,reshape层和dropout层及其它们的参数配置。1、softmax-losssoftmax-loss层和softmax层计算大致是相同的。softmax是一个分类器,计算的是类别的概率(Likelihood),是Logistic Regression 的一种推广。Lo...转载 2018-07-05 11:38:39 · 174 阅读 · 0 评论 -
Caffe学习系列(6):Blob,Layer and Net以及对应配置文件的编写
前言深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成。Caffe就是组建深度网络的这样一种工具,它按照一定的策略,一层一层的搭建出自己的模型。它将所有的信息数据定义为blobs,从而进行便利的操作和通讯。Blob是caffe框架中一种标准的数组,一种统一的内存接口,它详细描述了信息是如何存储的,以及如何在层之间通讯的。1、blobBlobs封装了运行时...转载 2018-07-05 12:39:04 · 159 阅读 · 0 评论 -
Caffe学习系列(7):solver及其配置
solver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是solver配置文件。运行代码一般为# caffe train --solver=*_slover.prototxt在Deep Learning中,往往loss function是非凸的,没有解析解,我们需要通过优化方法来求解。solver的主要作用就是交替调用前向(forward)算法...转载 2018-07-05 13:00:07 · 270 阅读 · 0 评论 -
Caffe学习系列(8):solver优化方法
上文提到,到目前为止,caffe总共提供了六种优化方法:Stochastic Gradient Descent (type: “SGD”),AdaDelta (type: “AdaDelta”),Adaptive Gradient (type: “AdaGrad”),Adam (type: “Adam”),Nesterov’s Accelerated Gradient (type: ...转载 2018-07-05 16:10:42 · 262 阅读 · 0 评论 -
Caffe学习系列(9):运行caffe自带的两个简单例子
前言为了程序的简洁,在caffe中是不带练习数据的,因此需要自己去下载。但在caffe根目录下的data文件夹里,作者已经为我们编写好了下载数据的脚本文件,我们只需要联网,运行这些脚本文件就行了。 注意:在caffe中运行所有程序,都必须在根目录下进行,否则会出错。1、mnist实例mnist是一个手写数字库,由DL大牛Yan LeCun进行维护。mnist最初用于支票上的手写数...转载 2018-07-05 16:15:02 · 266 阅读 · 0 评论 -
Caffe学习系列(10):命令行解析
前言caffe的运行提供三种接口:c++接口(命令行)、python接口和matlab接口。本文先对命令行进行解析,后续会依次介绍其它两个接口。C++命令行接口格式caffe的c++主程序(caffe.cpp)放在根目录下的tools文件夹内, 当然还有一些其它的功能文件,如:convert_imageset.cpp, train_net.cpp, test_net.cpp等也放在...转载 2018-07-05 16:39:11 · 203 阅读 · 0 评论 -
Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件
前言在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致。而在caffe中经常使用的数据类型是lmdb或leveldb,因此就产生了这样的一个问题:如何从原始图片文件转换成caffe中能够运行的db(leveldb/lmdb)文件?命令介绍在caffe中,作者为我们提供了这样一个文件:convert_im...转载 2018-07-05 17:12:43 · 266 阅读 · 0 评论 -
Caffe学习系列(12):训练和测试自己的图片
前言学习caffe的目的,不是简单的做几个练习,最终还是要用到自己的实际项目或科研中。因此,本文介绍一下,从自己的原始图片到lmdb数据,再到训练和测试模型的整个流程。一、准备数据有条件的同学,可以去imagenet的官网http://www.image-net.org/download-images,下载imagenet图片来训练。但是我没有下载,一个原因是注册账号的时候,验证码始终...转载 2018-07-05 17:31:36 · 185 阅读 · 0 评论 -
Caffe学习系列(13):python接口配置及jupyter notebook安装
前言caffe程序是由c++语言写的,本身是不带数据可视化功能的。只能借助其它的库或接口,如opencv, python或matlab。大部分人使用python接口来进行可视化,因为python出了个比较强大的东西:ipython notebook, 现在的最新版本改名叫jupyter notebook,它能将python代码搬到浏览器上去执行,以富文本方式显示,使得整个工作可以以笔记的形式展...转载 2018-07-06 09:32:13 · 807 阅读 · 0 评论 -
Caffe学习系列(14):初识caffe数据可视化
首先将caffe的根目录作为当前目录,然后加载caffe程序自带的小猫图片,并显示。 图片大小为360x480,三通道In [1]: import numpy as np import matplotlib.pyplot as plt %matplotlib inline import caffe caffe_root='/home/xxx/caf...转载 2018-07-06 10:32:58 · 413 阅读 · 0 评论 -
Caffe学习系列(15):计算图片数据的均值
前言图片减去均值后,再进行训练和测试,会提高速度和精度。因此,一般在各种模型中都会有这个操作。 那么这个均值怎么来的呢,实际上就是计算所有训练样本的平均值,计算出来后,保存为一个均值文件,在以后的测试中,就可以直接使用这个均值来相减,而不需要对测试图片重新计算。一、二进制格式的均值计算caffe中使用的均值数据格式是binaryproto, 作者为我们提供了一个计算均值的文件co...转载 2018-07-06 10:38:07 · 460 阅读 · 0 评论 -
Caffe学习系列(16):caffemodel 权重可视化
通过前面的学习,我们已经能够正常训练各种数据了。设置好solver.prototxt后,我们可以把训练好的模型保存起来,如lenet_iter_10000.caffemodel。 训练多少次就自动保存一下,这个是通过snapshot进行设置的,保存文件的路径及文件名前缀是由snapshot_prefix来设定的。这个文件里面存放的就是各层的参数,即net.params,里面没有数据(net.blo...转载 2018-07-06 16:47:06 · 2219 阅读 · 0 评论 -
Caffe学习系列(17):模型各层数据和参数可视化
cifar10的各层数据和参数可视化 先用caffe对cifar10进行训练,将训练的结果模型进行保存,得到一个caffemodel,然后从测试图片中选出一张进行测试,并进行可视化。In [1]: #加载必要的库 import numpy as np import matplotlib.pyplot as plt %matplotlib inline ...转载 2018-07-07 10:49:41 · 751 阅读 · 0 评论 -
Caffe学习系列(18): 绘制网络模型
Linux环境在caffe/python下有draw_net.py这个文件。就是用来绘制网络模型的。也就是将网络模型由prototxt变成一张图片。 在绘制之前,需要先安装两个库。1、安装GraphVizgraphviz是贝尔实验室开发的一个开源的绘图工具,它可以很方便绘制结构化的图形网络,支持多种格式输出,如各种常见的图片格式(bmp、png等),PDF,SVG等。 graph...转载 2018-07-07 11:36:41 · 361 阅读 · 0 评论 -
Caffe学习系列(19): 绘制loss和accuracy曲线
如同前几篇的可视化,这里采用的也是jupyter notebook来进行曲线绘制。In [1]: #加载必要的库 import numpy as np import matplotlib.pyplot as plt %matplotlib inline import sys,os,caffe#设置当前目录caffe_root = '/home/...转载 2018-07-07 14:05:07 · 564 阅读 · 0 评论 -
Caffe学习系列(4):激活层(Activiation Layers)及参数
前言在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的。从bottom得到一个blob数据输入,运算后,从top输出一个blob数据。在运算过程中,没有改变数据的大小,即输入和输出的数据大小是相等的。 输入:n*c*h*w 输出:n*c*h*w 常用的激活函数有sigmoid, tanh,relu等,下面分别介绍。1、Sigmoid对每个输入数据,利...转载 2018-07-05 11:08:37 · 235 阅读 · 0 评论 -
Caffe学习系列(3):视觉层(Vision Layers)及参数
前言所有的层都具有的参数,如name, type, bottom, top和transform_param请参看我的前一篇文章:Caffe学习系列(2):数据层及参数。 本文只讲解视觉层(Vision Layers)的参数,视觉层包括Convolution, Pooling, Local Response Normalization (LRN), im2col等层。1、Convolu...转载 2018-07-05 10:53:52 · 212 阅读 · 0 评论 -
Caffe学习系列(2):数据层及参数
前言要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等,* 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成。所有的参数都定义在caffe.proto这个文件中。* 要熟练使用caffe,最重要的就是学会配置文件(prototxt)的编写。 层有很多种类型,比如Data,Convolution,Pooling等,层之间的数据流动是以Blobs的...转载 2018-07-04 17:26:49 · 265 阅读 · 0 评论 -
(2) Windows下caffe安装成功测试(以mnist为例)
一、前言在前一篇文章 (1) Windows 10 + VS2013(cpuonly)安装 caffe 教程中我们安装成功编译出了caffe.exe,但是caffe.exe是否能运行还没有测试。必经经得起检验的才是真理。下面我们就继续使用微软封装的caffe-master中的example来测试caffe.exe能否正确运行。二、准备2.1 下载数据测试需要使用mnist集...原创 2018-03-12 20:08:50 · 4340 阅读 · 3 评论 -
(3)Windows平台下caffe的python接口配置及测试
一、前言在博文(1) Windows 10 + VS2013(cpuonly)安装 caffe 教程 中我介绍了怎样在windows上安装微软封装的caffe。但是为了避免出现问题,安装的时候我们是将PythonSupport设置为false。python使我们机器学习和深度学习爱好者最常使用的语言,我们经常需要在python中使用caffe。在这篇博客中,我们就来学习怎样在python中配置...原创 2018-03-12 21:02:26 · 3569 阅读 · 3 评论 -
Ubuntu 14.04 caffe 配置问题记录
前言caffe 的配置之路真的是步履维艰,每前进一部都要付出惨痛的代价,会遇到各种问题。并且caffe 的配置并不是一劳永逸的,每次跑带代码的时候都需要重新配置,每次都会遇到问题,真的是不堪其苦,所以请关爱单身狗,关爱程序员,更要关爱单身的程序员。相信有很多小伙伴会遇到和我一样的问题,我将遇到过的问题的解决方法记录下来,为不辞辛苦前赴后继的程序员们,铺上一块砖,填上一些坑。环境不谈...原创 2018-04-19 11:50:35 · 690 阅读 · 1 评论 -
(5) caffe.io.load_image()和cv2.imread()读图像的差别
cv2.imread()如果用cv2.imread()接口读图像,读进来直接是BGR 格式and 0~255所以不需要再缩放到【0,255】和通道变换【2,1,0】,不需要transformer.set_raw_scale(‘data’,255)和transformer.set_channel_swap(‘data’,(2,1,0)caffe.io.load_image()若是...转载 2018-05-02 20:32:49 · 2357 阅读 · 0 评论 -
Caffe源码(一):math_functions 分析
主要函数math_function 定义了caffe 中用到的一些矩阵操作和数值计算的一些函数,这里以float类型为例做简单的分析1. caffe_cpu_gemm 函数:template<>void caffe_cpu_gemm<float>(const CBLAS_TRANSPOSE TransA, const CBLAS_TRANSPOSE...转载 2018-05-27 16:16:47 · 314 阅读 · 0 评论 -
caffe的python接口学习(1):生成配置文件
caffe是C++语言写的,可能很多人不太熟悉,因此想用更简单的脚本语言来实现。caffe提供matlab接口和python接口,这两种语言就非常简单,而且非常容易进行可视化,使得学习更加快速,理解更加深入。半年前,我在学习CAFFE的时候,为了加深理解,因此写下了随笔,有了一系列的caffe学习文章。半年过去,很多人问到关于python接口和可视化的一些问题,现在有点空闲时间,就再次写下一些...转载 2018-07-08 11:36:15 · 280 阅读 · 0 评论 -
caffe的python接口学习(2):生成solver文件
caffe在训练的时候,需要一些参数设置,我们一般将这些参数设置在一个叫solver.prototxt的文件里面,如下:base_lr: 0.001display: 782gamma: 0.1lr_policy: “step”max_iter: 78200momentum: 0.9snapshot: 7820snapshot_prefix: “snapshot”solver_m...转载 2018-07-08 13:12:58 · 223 阅读 · 0 评论 -
caffe的python接口学习(3):训练模型(training)
如果不进行可视化,只想得到一个最终的训练model, 那么代码非常简单,如下 : import caffecaffe.set_device(0)caffe.set_mode_gpu()solver = caffe.SGDSolver('/home/xxx/data/solver.prototxt')solver.solve() 原文链接:caffe的python接口学习(3...转载 2018-07-08 13:15:49 · 528 阅读 · 0 评论 -
caffe的python接口学习(4):mnist实例---手写数字识别
前言深度学习的第一个实例一般都是mnist,只要这个例子完全弄懂了,其它的就是举一反三的事了。由于篇幅原因,本文不具体介绍配置文件里面每个参数的具体函义,如果想弄明白的,请参看我以前的博文: 数据层及参数 视觉层及参数 solver配置文件及参数Caffe学习系列(7):solver及其配置一、数据准备官网提供的mnist数据并不是图片,但我们以后做的实际项目可能是图片。因此...转载 2018-07-08 14:49:03 · 311 阅读 · 2 评论 -
caffe的python接口学习(5):生成deploy文件
如果要把训练好的模型拿来测试新的图片,那必须得要一个deploy.prototxt文件,这个文件实际上和test.prototxt文件差不多,只是头尾不相同而也。deploy文件没有第一层数据输入层,也没有最后的Accuracy层,但最后多了一个Softmax概率层。这里我们采用代码的方式来自动生成该文件,以mnist为例。 deploy.py# -*- coding: utf-8 ...转载 2018-07-08 16:11:30 · 194 阅读 · 0 评论 -
caffe的python接口学习(6):用训练好的模型(caffemodel)来分类新的图片
经过前面两篇博文的学习,我们已经训练好了一个caffemodel模型,并生成了一个deploy.prototxt文件,现在我们就利用这两个文件来对一个新的图片进行分类预测。我们从mnist数据集的test集中随便找一张图片,用来进行实验。#coding=utf-8import caffeimport numpy as nproot='/home/xxx/' #根目录dep...转载 2018-07-08 16:19:56 · 299 阅读 · 0 评论 -
caffe的python接口学习(7):绘制loss和accuracy曲线
使用python接口来运行caffe程序,主要的原因是python非常容易可视化。所以不推荐大家在命令行下面运行python程序。如果非要在命令行下面运行,还不如直接用 c++算了。推荐使用jupyter notebook,spyder等工具来运行python代码,这样才和它的可视化完美结合起来。因为我是用anaconda来安装一系列python第三方库的,所以我使用的是spyder,与m...转载 2018-07-08 16:58:22 · 666 阅读 · 0 评论 -
caffe的python接口学习(8):caffemodel中的参数及特征的抽取
如果用公式 y=f(wx+b) 来表示整个运算过程的话,**那么w和b就是我们需要训练的东西,w称为权值,在cnn中也可以叫做卷积核(filter),b是偏置项。**f是激活函数,有sigmoid、relu等。x就是输入的数据。数据训练完成后,保存的caffemodel里面,实际上就是各层的w和b值。我们运行代码:deploy=root + 'mnist/deploy.prot...转载 2018-07-08 17:19:23 · 335 阅读 · 0 评论 -
(4)Windows下caffe安装成功测试(以cifar10为例)
前言前面的博客中,我们介绍了windows平台下caffe的安装,并使用mnist进行了测试。为了巩固和熟练caffe的使用,我们本节使用数据库CIFAR-10再次练习caffe的使用。1、数据库CIFAR-10的下载与介绍进入caffe目录下的data/cifar10目录下,有个get_cifar10.sh文件是用来下载和解压数据的,只不过是Linux的shell脚本。我们打开这...原创 2018-07-08 19:47:54 · 1349 阅读 · 0 评论 -
Caffe学习系列(1):安装配置ubuntu14.04+cuda7.5+caffe+cudnn
一、版本linux系统:Ubuntu 14.04 (64位) 显卡:Nvidia K20c cuda: cuda_7.5.18_linux.run cudnn: cudnn-7.0-linux-x64-v4.0-rc二、下载Ubuntu 14.04下载地址:http://www.ubuntu.com/download/desktop (64bit) cuda7.5下载地址:...转载 2018-07-04 17:12:22 · 174 阅读 · 0 评论 -
Caffe学习系列(20):用训练好的caffemodel来进行分类
前言caffe程序自带有一张小猫图片,存放路径为caffe根目录下的 examples/images/cat.jpg, 如果我们想用一个训练好的caffemodel来对这张图片进行分类,那该怎么办呢? 如果不用这张小猫图片,换一张别的图片,又该怎么办呢?如果学会了小猫图片的分类,那么换成其它图片,程序实际上是一样的。准备开发caffe的贾大牛团队,利用imagenet图片和caff...转载 2018-07-07 19:39:32 · 435 阅读 · 0 评论