Caffe初试
1.基本概念
Caffe是一个比较流行的神经网络框架,它支持C++、Python等语言,容易上手,但是代码貌似不怎么好读,等有空我。。。;)
2.Windows10下的部署
我把我Windows下的编译完的bin上传了,如果opencv+cuda+cudnn配置好了的话应该可以直接用,替换掉caffe-windows-master/bin就行
链接: https://pan.baidu.com/s/1pLAW2Yf 密码: 1234
这里有官方编译完成的文件可供下载:https://github.com/BVLC/caffe/tree/windows
-----分割------
环境:Win10+VS2013+OpenCV+CUDA7.5+Cudnn+Caffe
我之前已经配置好了OpenCV2了,其他的差不多从新开始。
Caffe现在官方支持Windows了,不过当时配置有点乱,然后用了一个大神整理好的Caffe包:
链接: https://pan.baidu.com/s/1hsqRQEK 密码: 1234
以及下面这个依赖包:
链接: https://pan.baidu.com/s/1ge4QLKB 密码: 1234
01.在使用Caffe之前要先安装CUDA7.5和Cudnn,可以在官网下载(如果你打算使用CPU的话就算了)
02.将Caffe解压,然后把那个依赖包解压,把里面的bin,include,lib放在caffe-windows-master中的3rdparty文件夹中(有替换就替换),将3rdparty/bin加入到环境变量的path里
03.运行/src/caffe/proto/extract_proto.bat
04.运行buildVS2013文件夹下的MainBuilder.sln(不使用GPU的话用另外一个文件夹里的)
05.改变VS到Release和X64模式
06.编译,里面还有compute_image_mean,convert_imageset等项目也要编译,编译要好久的,然后编译成功的话会在bin文件夹里生成相应的exe文件(把这个bin加到环境变量path后可以在CMD直接执行这些exe)
07.最后编译完成后,基本上是完成了Caffe的部署,至于详细的部署等,可以参见caffe-windows-master目录下的README.md,虽然是英文,但是比较好懂,说的也比较详细。
3.使用Caffe
关于Caffe的详细教程网上比较多,比如该系列就不错:
http://www.cnblogs.com/denny402/tag/caffe/
然后大概说一下如何使用(以finetuning为例):
01.在一个Caffe项目中,有两个.prototxt文件比较重要,一个是定义网络结构的,一个是xxx_solver.txt(用来定义训练的相关参数,比如学习率等),然后finetuning的话,还需要一个.caffemodel的文件,就是别人训练好的model
02.要进行finetuning的话,网络结构,就是那两个.prototxt要和使用的.caffemodel对应的网络一致,可以进行少许修改,比如输出类别数目,学习参数等。
03.然后准备好自己的训练集和测试集,如果使用的是自己的样本,想省事的话就不用把图片换成leveldb或lmdb了,caffe是支持直接用图片的,不过训练集和测试集要各有一个图片列表.txt:格式如下:
位置/../xx1.jpg 0
位置/../xx2.jpg 0
位置/../xx3.jpg 0
位置/../xx4.jpg 1
位置/../xx5.jpg 1
位置/../xx6.jpg 1
.....................
后面的数字是该样本所对应的类别,要从0开始。
04.然后 打开cmd,定位到caffe-windows-master目录下执行caffe开始训练
caffe train -solver=examples/../xx_solver.prototxt -weights=examples/../xx.caffemodel
4.其他
在finetuning中,如果要指定某个层的权值参数不改变,只需要将它的lr_mult的值设置为0。
如果不想使用某个层原来的参数,则将它的名字改变就好。
Caffe初试的更多相关文章
- caffe初试(一)happynear的caffe-windows版本的配置及遇到的问题
之前已经配置过一次caffe环境了: Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境 但其中也提到,编译时,用到了cuda6.5,但 ...
- 【转】Caffe初试(十)命令行解析
caffe的运行提供三种接口:C++接口(命令行).Python接口和matlab接口.本文先对命令行进行解析,后续会依次介绍其它两种接口. caffe的C++主程序(caffe.cpp)放在根目录下 ...
- 【转】Caffe初试(九)solver及其设置
solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是solver配置文件.运行代码一般为 #caffe train --solver=*_solver. ...
- 【转】Caffe初试(八)Blob,Layer和Net以及对应配置文件的编写
深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成.Caffe就是组建深度网络的这样一种工具,它按照一定的策略,一层一层的搭建出自己的模型.它将所有的信息数据定义为blob ...
- 【转】Caffe初试(五)视觉层及参数
本文只讲解视觉层(Vision Layers)的参数,视觉层包括Convolution, Pooling, Local Response Normalization (LRN), im2col等层. ...
- 【转】Caffe初试(四)数据层及参数
要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等,而一个模型由多个层(layer)构成,每一层又由许多参数组成.所有的参数都定义在caffe.proto这个文件中 ...
- Caffe初试(三)使用caffe的cifar10网络模型训练自己的图片数据
由于我涉及一个车牌识别系统的项目,计划使用深度学习库caffe对车牌字符进行识别.刚开始接触caffe,打算先将示例中的每个网络模型都拿出来用用,当然这样暴力的使用是不会有好结果的- -||| ,所以 ...
- Caffe初试(二)windows下的cafee训练和测试mnist数据集
一.mnist数据集 mnist是一个手写数字数据库,由Google实验室的Corinna Cortes和纽约大学柯朗研究院的Yann LeCun等人建立,它有60000个训练样本集和10000个测试 ...
- Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境
折腾了几天,终于在windows系统上成功配置了Caffe环境,期间遇到了很多问题,每个问题的解决也都花了不少时间,查过挺多资料,感觉挺有意义,这里写篇博客记录一下. 原来我使用的CUDA版本是7.5 ...
随机推荐
- Linux学习笔记(5)磁盘分区(parted)
Linux学习笔记(5)磁盘分区(parted) .演示: ()parted /dev/sdb :进入parted 分区命令(可以使用help来查看命令详细描述)(2)p :列出当前磁盘分区信息,可以 ...
- R语言seq()函数用法
1.seq() 用来生成一组数字的函数. Usage: ## Default S3 method:seq(from = 1, to = 1, by = ((to - from)/(length.out ...
- POJ - 2289 Jamie's Contact Groups (二分图多重匹配)
题意:N个人,M个团体.每个人有属于自己的一些团体编号.将每个人分配到自己属于的团体中,问这个人数最多的团体其人数最小值是多少. 分析:一个一对多的二分图匹配,且是最大值最小化问题.二分图的多重匹配建 ...
- $python正则表达式系列(3)——正则内置属性
本文主要总结一下python正则的一些内置属性的用法. 1. 编译标志:flags 首先来看一下re.findall函数的函数原型: import re print('[Output]') print ...
- 大牛是怎么思考设计MySQL优化方案的?
在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已. 图-MySQL查询过程 一.优化的哲学 ...
- jQuery农历黄历日期表
在线演示 本地下载
- django使用migrations迁移版本和数据库中报错解决方案
1.到数据库表django_migrations中查看app中看看app列 2.到项目对应的app模块中打开migrations文件查看生成的文件与数据库app列中的是不是一样 3.找到哪里不一致的文 ...
- 用“倍增法”求最近公共祖先(LCA)
1.最近公共祖先:对于有根树T的两个结点u.v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u.的祖先且x的深度尽可能大. 2.朴素算法:记录下每个节点的父亲,使节点u,v一步一步地向上找 ...
- UVA 10900 So you want to be a 2n-aire? (概率dp)
题意:玩家初始的金额为1:给出n,表示有n道题目:t表示说答对一道题目的概率在t到1之间均匀分布. 每次面对一道题,可以选择结束游戏,获得当前奖金:或者回答下一道问题,答对的话奖金翻倍,答错的话结束游 ...
- RemoveDuplicatesFromSortedArrayI II,移除有序数组里的重复元素以及移除数组里的某个元素
RemoveDuplicatesFromSortedArrayI: 问题描述:给定一个有序数组,去掉其中重复的元素.并返回新数组的长度.不能使用新的空间. [1,1,2,3] -> [1,2,3 ...