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 ...
随机推荐
- python3 基础数据类型
一.基础数据类型分类 python的数据类型主要包括以下几种: 1.数字 2.字符串 3.列表 4.字典 5.元组 6.集合 1.数字 int 数字主要是用于计算用的,使用方法并不多 #bit_len ...
- flannel源码分析---backend为vxlan
// backend/vxlan/vxlan.go func (be *VXLANBackend) RegisterNetwork(ctx context.Context, network strin ...
- mysql创建索引/删除索引操作
-- 1.ALTER 创建索引 -- table_name表名,column_list列名,index_name索引名 -- 创建index索引 ALTER TABLE table_name ADD ...
- POS杂项数据SAP记账程序
*&---------------------------------------------------------------------* *& Report ZDQFI_904 ...
- Spring 数据库连接池读取系统环境变量作为参数
原来是写在一个properties文件里面,后来项目要部署的的确太多了,每次更改不太方便,就想把这些固定不变的信息写在当地的环境变量里面 原先是这样的:引用的所有信息在jdbc.properties ...
- PAT 1047 Student List for Course[一般]
1047 Student List for Course (25 分) Zhejiang University has 40,000 students and provides 2,500 cours ...
- Centos学习笔记2-网络部分
一:修改IP地址:vi /etc/sysconfig/network-scripts/ifcfg-eth0 IPADDR=192.168.80.100 NETMASK=255.255.255.0 GA ...
- while小用
1.使用while打印1 2 3 4 5 6 8 9 10 #!/usr/bin/env python #encoding: utf-8 num = 1 while num < 11: if ...
- HDU - 3605 Escape (缩点+最大流/二分图多重匹配)
题意:有N(1<=N<=1e5)个人要移民到M(1<=M<=10)个星球上,每个人有自己想去的星球,每个星球有最大承载人数.问这N个人能否移民成功. 分析:可以用最大流的思路求 ...
- NoSQL2
系统的可扩展性是推动NoSQL运动发展的的主要理由,包含了分布式系统协调,故障转移,资源管理和许多其他特性.这么讲使得NoSQL听起来像是一个大筐,什么都能塞进去.尽管NoSQL运动并没有给分布式数据 ...