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初试的更多相关文章

  1. caffe初试(一)happynear的caffe-windows版本的配置及遇到的问题

    之前已经配置过一次caffe环境了: Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境 但其中也提到,编译时,用到了cuda6.5,但 ...

  2. 【转】Caffe初试(十)命令行解析

    caffe的运行提供三种接口:C++接口(命令行).Python接口和matlab接口.本文先对命令行进行解析,后续会依次介绍其它两种接口. caffe的C++主程序(caffe.cpp)放在根目录下 ...

  3. 【转】Caffe初试(九)solver及其设置

    solver算是caffe的核心的核心,它协调着整个模型的运作.caffe程序运行必带的一个参数就是solver配置文件.运行代码一般为 #caffe train --solver=*_solver. ...

  4. 【转】Caffe初试(八)Blob,Layer和Net以及对应配置文件的编写

    深度网络(net)是一个组合模型,它由许多相互连接的层(layers)组合而成.Caffe就是组建深度网络的这样一种工具,它按照一定的策略,一层一层的搭建出自己的模型.它将所有的信息数据定义为blob ...

  5. 【转】Caffe初试(五)视觉层及参数

    本文只讲解视觉层(Vision Layers)的参数,视觉层包括Convolution, Pooling, Local Response Normalization (LRN), im2col等层. ...

  6. 【转】Caffe初试(四)数据层及参数

    要运行caffe,需要先创建一个模型(model),如比较常用的Lenet,Alex等,而一个模型由多个层(layer)构成,每一层又由许多参数组成.所有的参数都定义在caffe.proto这个文件中 ...

  7. Caffe初试(三)使用caffe的cifar10网络模型训练自己的图片数据

    由于我涉及一个车牌识别系统的项目,计划使用深度学习库caffe对车牌字符进行识别.刚开始接触caffe,打算先将示例中的每个网络模型都拿出来用用,当然这样暴力的使用是不会有好结果的- -||| ,所以 ...

  8. Caffe初试(二)windows下的cafee训练和测试mnist数据集

    一.mnist数据集 mnist是一个手写数字数据库,由Google实验室的Corinna Cortes和纽约大学柯朗研究院的Yann LeCun等人建立,它有60000个训练样本集和10000个测试 ...

  9. Caffe初试(一)win7_64bit+VS2013+Opencv2.4.10+CUDA6.5配置Caffe环境

    折腾了几天,终于在windows系统上成功配置了Caffe环境,期间遇到了很多问题,每个问题的解决也都花了不少时间,查过挺多资料,感觉挺有意义,这里写篇博客记录一下. 原来我使用的CUDA版本是7.5 ...

随机推荐

  1. 解决跨域HttpResponseJsonCORS, HttpResponseCORS 返回字典数据

    #!/usr/bin/python # -*- coding: UTF-8 -*- import json from django.http import HttpResponse def HttpR ...

  2. BCrypt 加密实现

    Bcrypt百度百科: bcrypt,是一个跨平台的文件加密工具.由它加密的文件可在所有支持的操作系统和处理器上进行转移.它的口令必须是8至56个字符,并将在内部被转化为448位的密钥. 除了对您的数 ...

  3. C语言高级宏技巧

    特殊符号#.## (1)# When you put a # before an argument in a preprocessor  macro, the preprocessor turns t ...

  4. HTTP状态码集

    1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某些试 ...

  5. Android MVP Presenter 中引发的空指针异常

    一.概述 最近对 googlesamples/android-architecture 中的 MVP-dagger 进行了学习.对照项目的 MVP-dagger 分支,对 MVP-dagger 进行了 ...

  6. Eclipse 多行注释选择

    1.Eclipse 中的多行注释 选择与清除 (?s)\/\*\*.*?\*\/ (?s)可以匹配多行 \/\*\*表示以/**开头 匹配类似 /** * * * * asdfasdf */

  7. $git学习总结系列(4)——gitignore文件

    有时候工作区中会有我们创建的一些密码配置文件,或者自动生成的一些临时文件,比如python代码编译产生的.pyc文件和java代码编译产生的.class文件等,我们在提交代码的时候没有必要把这些文件也 ...

  8. return false 和 return true

    常规用法 在普通函数中:return 语句终止函数的执行,并返回一个指定的值给函数调用者,一般会用一个变量接收这个返回值再进行其它处理.如果未指定返回值,则返回 undefined 其中,返回一个函数 ...

  9. linux命令详解之(at)

    在Linux下,有两个命令可以用来作为计划任务而执行,at:一次性定时任务计划执行crontab :每天定时任务计划执行 以下仅说一下一次性任务计划执行(at)要使用一次性任务计划,linux必须要有 ...

  10. CSS流体(自适应)布局下宽度分离原则

    CSS流体(自适应)布局下宽度分离原则 这篇文章发布于 2011年02月28日,星期一,00:48,归类于 css相关. 阅读 73990 次, 今日 5 次 by zhangxinxu from h ...