12 2015 档案

摘要:首先将caffe的根目录作为当前目录,然后加载caffe程序自带的小猫图片,并显示。图片大小为360x480,三通道In[1]:import numpy as npimport matplotlib.pyplot as plt%matplotlib inlineimport caffecaffe_r... 阅读全文
posted @ 2015-12-31 16:17 denny402 阅读(28324) 评论(22) 推荐(5) 编辑
摘要:caffe程序是由c++语言写的,本身是不带数据可视化功能的。只能借助其它的库或接口,如opencv, python或matlab。大部分人使用python接口来进行可视化,因为python出了个比较强大的东西:ipython notebook, 现在的最新版本改名叫jupyter notebook... 阅读全文
posted @ 2015-12-30 12:08 denny402 阅读(59995) 评论(46) 推荐(2) 编辑
摘要:学习caffe的目的,不是简单的做几个练习,最终还是要用到自己的实际项目或科研中。因此,本文介绍一下,从自己的原始图片到lmdb数据,再到训练和测试模型的整个流程。一、准备数据有条件的同学,可以去imagenet的官网http://www.image-net.org/download-images,... 阅读全文
posted @ 2015-12-28 17:47 denny402 阅读(101733) 评论(263) 推荐(27) 编辑
摘要:在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致。而在caffe中经常使用的数据类型是lmdb或leveldb,因此就产生了这样的一个问题:如何从原始图片文件转换成caffe中能够运行的db(leveldb/lmdb)... 阅读全文
posted @ 2015-12-28 14:00 denny402 阅读(83203) 评论(37) 推荐(12) 编辑
摘要:caffe的运行提供三种接口:c++接口(命令行)、python接口和matlab接口。本文先对命令行进行解析,后续会依次介绍其它两个接口。caffe的c++主程序(caffe.cpp)放在根目录下的tools文件夹内, 当然还有一些其它的功能文件,如:convert_imageset.cpp, t... 阅读全文
posted @ 2015-12-25 16:22 denny402 阅读(68238) 评论(11) 推荐(9) 编辑
摘要:为了程序的简洁,在caffe中是不带练习数据的,因此需要自己去下载。但在caffe根目录下的data文件夹里,作者已经为我们编写好了下载数据的脚本文件,我们只需要联网,运行这些脚本文件就行了。注意:在caffe中运行所有程序,都必须在根目录下进行,否则会出错1、mnist实例mnist是一个手写数字... 阅读全文
posted @ 2015-12-25 11:57 denny402 阅读(64932) 评论(9) 推荐(6) 编辑
摘要:上文提到,到目前为止,caffe总共提供了六种优化方法:Stochastic Gradient Descent (type: "SGD"),AdaDelta (type: "AdaDelta"),Adaptive Gradient (type: "AdaGrad"),Adam (type: "Ada... 阅读全文
posted @ 2015-12-24 20:25 denny402 阅读(49375) 评论(3) 推荐(7) 编辑
摘要:solver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是solver配置文件。运行代码一般为# caffe train --solver=*_slover.prototxt在Deep Learning中,往往loss function是非凸的,没有解析解,... 阅读全文
posted @ 2015-12-24 19:26 denny402 阅读(104274) 评论(10) 推荐(22) 编辑
摘要:深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成。Caffe就是组建深度网络的这样一种工具,它按照一定的策略,一层一层的搭建出自己的模型。它将所有的信息数据定义为blobs,从而进行便利的操作和通讯。Blob是caffe框架中一种标准的数组,一种统一的内存接口,它详细描... 阅读全文
posted @ 2015-12-24 16:08 denny402 阅读(29930) 评论(0) 推荐(7) 编辑
摘要:本文讲解一些其它的常用层,包括:softmax_loss层,Inner Product层,accuracy层,reshape层和dropout层及其它们的参数配置。1、softmax-losssoftmax-loss层和softmax层计算大致是相同的。softmax是一个分类器,计算的是类别的概率... 阅读全文
posted @ 2015-12-24 13:24 denny402 阅读(64344) 评论(3) 推荐(1) 编辑
摘要:在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的。从bottom得到一个blob数据输入,运算后,从top输入一个blob数据。在运算过程中,没有改变数据的大小,即输入和输出的数据大小是相等的。输入:n*c*h*w输出:n*c*h*w常用的激活函数有sigmoid, ... 阅读全文
posted @ 2015-12-24 11:27 denny402 阅读(43632) 评论(7) 推荐(3) 编辑
摘要:所有的层都具有的参数,如name, type, bottom, top和transform_param请参看我的前一篇文章:Caffe学习系列(2):数据层及参数本文只讲解视觉层(Vision Layers)的参数,视觉层包括Convolution, Pooling,Local Response N... 阅读全文
posted @ 2015-12-23 20:10 denny402 阅读(55875) 评论(16) 推荐(9) 编辑
摘要:要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等, 而一个模型由多个屋(layer)构成,每一屋又由许多参数组成。所有的参数都定义在caffe.proto这个文件中。要熟练使用caffe,最重要的就是学会配置文件(prototxt)的编写。层有很多种类型,比如D... 阅读全文
posted @ 2015-12-23 18:47 denny402 阅读(105130) 评论(14) 推荐(16) 编辑
摘要:一、版本 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. 阅读全文
posted @ 2015-12-22 17:07 denny402 阅读(50416) 评论(28) 推荐(6) 编辑
摘要:caffe windows编译成功后,就可以开始进行测试了。如果还没有编译成功的,请参考:caffe windows 学习第一步:编译和安装(vs2012+win 64)一般第一个测试都是建议对手写字体minist进行识别。这个测试放在根目录下的 .\examples\mnist\ 文件夹内。1、下... 阅读全文
posted @ 2015-12-12 13:46 denny402 阅读(30664) 评论(14) 推荐(0) 编辑
摘要:没有GPU,没有linux, 只好装caffe的windows版本了。我的系统是win10(64位),vs 2012版本,其它什么都没有装,因此会需要一切的依赖库。其实操作系统只要是64位就行了,无所谓版本,win7,win8,win10都行.1、安装vs2012。2、安装 cude 6.5 可到此... 阅读全文
posted @ 2015-12-12 12:32 denny402 阅读(28271) 评论(34) 推荐(1) 编辑
摘要:不同于其它的机器学习模型,EM算法是一种非监督的学习算法,它的输入数据事先不需要进行标注。相反,该算法从给定的样本集中,能计算出高斯混和参数的最大似然估计。也能得到每个样本对应的标注值,类似于kmeans聚类(输入样本数据,输出样本数据的标注)。实际上,高斯混和模型GMM和kmeans都是EM算法的... 阅读全文
posted @ 2015-12-10 15:48 denny402 阅读(5967) 评论(0) 推荐(0) 编辑
摘要:在opencv中,reshape函数比较有意思,它既可以改变矩阵的通道数,又可以对矩阵元素进行序列化,非常有用的一个函数。函数原型:C++: Mat Mat::reshape(int cn, int rows=0) const参数比较少,但设置的时候却要千万小心。cn: 表示通道数(channels... 阅读全文
posted @ 2015-12-10 11:59 denny402 阅读(37644) 评论(2) 推荐(6) 编辑
摘要:手写数字digits分类,这可是深度学习算法的入门练习。而且还有专门的手写数字MINIST库。opencv提供了一张手写数字图片给我们,先来看看这是一张密密麻麻的手写数字图:图片大小为1000*2000,有0-9的10个数字,每5行为一个数字,总共50行,共有5000个手写数字。在opencv3.0... 阅读全文
posted @ 2015-12-09 19:22 denny402 阅读(12565) 评论(1) 推荐(1) 编辑
摘要:kmeans算法主要用来实现自动聚类,是一种非监督的机器学习算法,使用非常广泛。在opencv3.0中提供了这样一个函数,直接调用就能实现自动聚类,非常方便。函数原型:C++: double kmeans(InputArray data, int K, InputOutputArray bestLa... 阅读全文
posted @ 2015-12-09 16:52 denny402 阅读(19968) 评论(1) 推荐(1) 编辑
摘要:OCR(Optical Character Recognition,光学字符识别),我们这个练习就是对OCR英文字母进行识别。得到一张OCR图片后,提取出字符相关的ROI图像,并且大小归一化,整个图像的像素值序列可以直接作为特征。但直接将整个图像作为特征数据维度太高,计算量太大,所以也可以进行一些降... 阅读全文
posted @ 2015-12-09 14:56 denny402 阅读(16986) 评论(4) 推荐(1) 编辑
摘要:logistic regression,注意这个单词logistic ,并不是逻辑(logic)的意思,音译过来应该是逻辑斯谛回归,或者直接叫logistic回归,并不是什么逻辑回归。大部分人都叫成逻辑回归,无奈啊。。。虽然这个算法中有回归二字,但它做的事情却并不是回归,而是分类。这个算法只能解决简... 阅读全文
posted @ 2015-12-09 13:05 denny402 阅读(3924) 评论(1) 推荐(1) 编辑
摘要:在opencv3.0中,提供了一个ml.cpp的文件,这里面全是机器学习的算法,共提供了这么几种:1、正态贝叶斯:normal Bayessian classifier 我已在另外一篇博文中介绍过:在opencv3中实现机器学习之:利用正态贝叶斯分类2、K最近邻:k nearest neighbo... 阅读全文
posted @ 2015-12-09 11:18 denny402 阅读(20083) 评论(0) 推荐(2) 编辑
摘要:opencv3.0版本中,实现正态贝叶斯分类器(Normal Bayes Classifier)分类实例#include "stdafx.h"#include "opencv2/opencv.hpp"using namespace cv;using namespace cv::ml;int main... 阅读全文
posted @ 2015-12-09 00:49 denny402 阅读(5605) 评论(0) 推荐(0) 编辑
摘要:在opencv中,人脸检测用的是harr或LBP特征,分类算法用的是adaboost算法。这种算法需要提前训练大量的图片,非常耗时,因此opencv已经训练好了,把训练结果存放在一些xml文件里面。在opencv3.0版本中,训练好的文件放在 \build\etc\文件夹下,有两个文件夹haarca... 阅读全文
posted @ 2015-12-08 21:57 denny402 阅读(23709) 评论(1) 推荐(1) 编辑
摘要:采用鼠标事件,手动选择样本点,包括目标样本和背景样本。组成训练数据进行训练1、主函数#include "stdafx.h"#include "opencv2/opencv.hpp"using namespace cv;using namespace cv::ml;Mat img,image;Mat ... 阅读全文
posted @ 2015-12-04 21:26 denny402 阅读(34548) 评论(3) 推荐(3) 编辑
摘要:svm分类算法在opencv3中有了很大的变动,取消了CvSVMParams这个类,因此在参数设定上会有些改变。opencv中的svm分类代码,来源于libsvm。#include "stdafx.h"#include "opencv2/opencv.hpp"using namespace cv;u... 阅读全文
posted @ 2015-12-04 14:35 denny402 阅读(21967) 评论(1) 推荐(0) 编辑
摘要:在本文中,稀疏表示的原理不再具体讲解,有需要的同学请自行百度。本文采用OMP算法来求解稀疏系数。首先随机生成字典数据和待测试数据字典数据:dic =[ 6, 7, 9, 9, 7, 0, 6, 3, 6, 9; 1, 8, 7, 8, ... 阅读全文
posted @ 2015-12-03 15:56 denny402 阅读(8960) 评论(0) 推荐(1) 编辑
摘要:图像的高级处理中,协方差矩阵计算是必不可少的,但opencv关于这方面的资料却相当少。首先,利用matlab计算一下,便于比较:>> data=[1,2,3;10,20,30]data = 1 2 3 10 20 30>> convar=cov(data)c... 阅读全文
posted @ 2015-12-01 22:00 denny402 阅读(7212) 评论(1) 推荐(0) 编辑