Ubuntu下Caffe二分类实战

Caffe实战

看完本片博客,您将可能能够达到以下目的

  • 能够对Shell编程以及caffe框架有着更深刻的理解
  • 能够独自对自己的数据集进行二分类训练
  • 通过自己的掌握程度,将代码从二分类更改成N分类问题

源码下载地址


文件结构及概览

在项目文件中,我们主要需要关心的是下面目录结构中的文件,并理解其中在项目中整体的作用

project
│   README.md
│   run.sh
|   train.sh   
│
└─── Demo
|     |
|     └─── model
|     |
|     └─── nopos
|     |
|     └─── pos
|     |
|     └─── result
|
└─── test
       |    pos.txt
       |    test.sh
       |
       └─── photo
       |
       |
       └─── model
  • README.md 文件主要说明项目如何运行
  • run.sh 运行程序
  • train.sh 运行程序,和run.sh区别会之后进行讨论
  • Demo目录 对文件进行训练目录
  • test目录 对样本进行测试的目录





训练


  • 准备数据集

    • 进入Demo目录下,将正负样本分别添加至 pos 以及 nopos 目录下。Demo中的其他文件不需要更改。(作者已经更改完毕)
  • 编辑train.sh

    • 将以下内容改成自己系统对应文件的路径。DataDir 表示Demo目录的绝对路径,而TOOLS表示caffe安装目录下的build/tools文件目录的绝对路径。

shell编程,等号两边不能有空格。

# set these
dataDir=/home/rui/WANG/Project/Demo
TOOLS=/home/rui/Work/caffe/build/tools
# 

关于run.sh脚本具体内容将不会详细说明,因为本博客主要目的是使用caffe进行二分类。如果想要详细了解shell命令具体解释,可以自己网上查找相应的资料




开始训练


  • 我们使用命令行进入Project目录后,输入
rui@Hopo:~$ sudo sh run.sh AlexNet

使用了AlexNet 参数传入脚本,这里你可以在 Project/Demo 目录下找到 AlexNet文件夹以及 GoogleNet 文件夹,分别对应相应的训练模型,也即使是你可以传入 GoogleNet 参数来使用 GoogleNet 进行训练。

不过需要注意的是需要注意的的是:
0 vs.2 错误一般是 Gpu 内存不足,而0 vs.4, 一般是没有使用sudo管理员模式运行。对于有些电脑,训练时,直接强制推出。如果再想调用GPU,只能重启电脑再进行训练

  • 训练结果保存在了 /Demo/result 文件夹下了,可以在对应的 AlexNet 或者 GoogleNet 文件夹下查找相应的训练结果。





测试


测试文件类型时,主要用到的是四个文件,在test/model文件夹的目录结构:

test
│   
└─── model
      |       caffenet.caffemodel
      |       deploy.prototxt
      |       image_mean.binaryproto
      |       synset_words.txt
  • caffenet.caffemodel 是训练结果文件,将训练结果放在此文件夹内并改名成此名。将Project/Demo/result/ 文件夹下相应的文件放在此处。
  • deploy.prototxt 是网络模型文件,其实大部分都仅仅是在训练网络模型中删除了前向网络。
  • image_mean.binaryproto 是中值文件,不影响测试结果,仅仅影响测试时间,可以将 Project/Demo/result/image_mean.binaryproto 放在这里来缩减测试时间
  • synset_words.txt 是标注,即是测试时,命令行显示的标注,内容可以改成自己想要的名字。


修改test/test.sh文件

在test.sh文件夹中找到下列相应的内容,其中

  • CAFFE caffe安装的根目录
  • INPUT 测试所使用的model,model有相应的四个文件
  • TEST_PHOTO 存放测试照片的文件夹
  • res_txt 测试结果存放路径
CAFFE=/home/ubuntu/Softs/caffe-master
INPUT=/media/rui/WANG/Project/test/model
TEST_PHOTO=./photo
res_txt=/home/ubuntu/gdp/fire/qingdao/test/pos.txt

进行测试

不显示照片进行测试:

rui@Hopo:~$ sudo sh test.sh 0

此时所带的 0 表示测试时不显示照片。仅仅在命令行显示结果并且存在pos.txt文件夹中
如果将0 更改成 1,则比参数 0 多出来显示照片这一步骤。






需要注意的是


在ubuntu16.04下编程,shell运行脚本可能会提示语法错误。有可能是shell编码设置的编程风格不对,得自己设置一下。具体可以百度,或者留言讨论,如果碰到任何问题,可以留言咨询,我会尽快答复。



关于将二分类拓展成N分类我就不具体展开,如果想了解可以留言,我会进行相应答复(其实是答主有点懒,而且进行N分类还要更改一些东西,之前弄过,但隔离的时间有点长忘记了,如果现在弄可能得花点时间,就算写出来了可能还没多少人看呢!)




最最重要的是,现在caffe差不多大部分已经差不多都迁移到了caffe2中了,还是赶快学caffe2吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值