用caffe训练一个spp_net网络

 

virtualinlineconstchar*type()const { return"SPP"; }

virtual LayerParameter GetPoolingParam(constint pyramid_level,constint bottom_h, constint bottom_w, const SPPParameter spp_param);

int pyramid_height_;

int bottom_h_, bottom_w_;

int num_;

int channels_;

int kernel_h_, kernel_w_;

int pad_h_, pad_w_;

bool reshaped_first_time_;

构建时需要考虑的参数值


1.准备数据,在examples路径下新建一个目录 spp_net,将n03791053摩托车、n03895866客车、n04285008跑车、n04467665大货车、n04487081无轨电车这5类的图片放入到该目录下,每种车型一个目录。

>>ll /root/deep/gjj/caffe-master/examples/spp_net

drwxr-xr-x 2 root root 73728 Mar 30 15:24 n03791053
drwxr-xr-x 2 root root 77824 Mar 30 15:25 n03895866
drwxr-xr-x 2 root root 73728 Mar 30 15:25 n04285008
drwxr-xr-x 2 root root 73728 Mar 30 15:25 n04467665
drwxr-xr-x 2 root root 73728 Mar 30 15:25 n04487081

2.准备标签文件,训练和测试的输入是用train.txtval.txt来描述的。里面的格式都是路径加文件名 空格 类别号。如下:

train.txt中 n03791053/n03791053_10013.JPEG 670

val.txt中   val/ILSVRC2012_val_00027580.JPEG 705

3.将examples/imagenet/create_imagenet.sh复制到spp_net目录下,并修改里面的内容,在spp_net下生成lmdb格式的图像信息。

EXAMPLE=examples/spp_net
DATA=examples/spp_net/
TOOLS=build/tools

TRAIN_DATA_ROOT=examples/spp_net/
VAL_DATA_ROOT=examples/spp_net/

此外,我把图片的大小改成了224*224

RESIZE=true
if $RESIZE; then
  RESIZE_HEIGHT=224
  RESIZE_WIDTH=224

4.没有去做均值,直接构建spp_solver.prototxt和Zeiler_spp_scale224.prototxt

spp_solver.prototxt中设置     solver_mode: CPU

Zeiler_spp_scale224.prototxt将卷积第五层之后的池化改为spp池化,根据caffe.proto中的定义来改

layer {
   name: "pool5_spp"
   type: "SPP"
   bottom: "conv5"
   top: "pool5_spp"
   spp_param{
pyramid_height:3
pool: MAX
   }
}

5.把下面的命令写到spp_train_caffenet.sh中或直接运行:

/root/deep/gjj/caffe-master/build/tools/caffe train  --solver=spp_solver.prototxt  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值