zoukankan      html  css  js  c++  java
  • 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。

      如果不想使用某个层原来的参数,则将它的名字改变就好。

    ------------ 转载请注明出处 ------------
  • 相关阅读:
    js中国标准时间转换成datetime格式
    elementUI合并单元格
    vue filter 过滤器
    typescript学习 回顾查漏
    vue 中使用 XLSX 和 xlsx-style 实现前端下载Excel表格
    git 删除本地分支以及远程分支
    linux 下 配置 nginx
    初涉gulp
    git remote prune origin删除本地有但在远程库已经不存在的分支
    js 加密和解密
  • 原文地址:https://www.cnblogs.com/whlook/p/6480907.html
Copyright © 2011-2022 走看看