FCN网络训练 SIFTFLOW数据集

论文全名:Fully Convolutional Networks for Semantic Segmentation


全卷积神经网络 FCN代码运行详解:

运行平台:

Ubuntu 14.04 + cudnn7

步骤1.代码准备:
下载新版caffe:   https://github.com/BVLC/caffe
下载fcn代码:      https://github.com/shelhamer/fcn.berkeleyvision.org
将下载后的压缩包解压 将解压后的代码丢进服务器

步骤2.编辑caffe和python接口:
cd进入caffe所在路径
以个人路径示例:/home/my/caffe-master/caffe-master 
在该目录下,执行
cp Makefile.config.example Makefile.config
vim Makefile.config(这句代码根据自己情况选择,如果需要修改相关设定,就使用这句,需要注意的是,将WITH_PYTHON_LAYER := 1前面的#去掉
如果使用cudnn,就把use cudann前面的#去掉
我这边安装的是openbla,所以我的设置为BLAS:=open)

make all  -j8  //8代表线程数量,可以加快编译速度

make test  -j8  //编译测试需要的文件
make runtest    //开始运行测试例子,这一句貌似有没有都行
以上结束后开始编译python接口
在下载的caffe源码包中,有个叫python的文件夹,cd进入这个文件夹
以我个人路径为例cd至 /home/wangkun/caffe-master/caffe-master/python
编译python:
make pycaffe
#测试是否成功
cd caffe-folder/python
python
import caffe
#如果上述命令未报错,说明成功
#添加caffe/python 到python path变量
vim ~/.bashrc
#set the caffe PYTHONPATH
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH

!如果是采用的Anaconda python,切记编译python接口在最后执行。

!如果是系统自带的python在make pycaffe可能出现python/caffe/_caffe.hpp:8:31: fatal error: numpy/arrayobject.h: No such file or directory
这是因为64位的python 库的存放路径问题。

查找arrayobject.h所在的目录:

sudo find / -name arrayobject.h

然后修改Makefile.config

PYTHON_INCLUDE := /usr/include/python2.7 \
                /usr/lib64/python2.7/site-packages/numpy   //这里修改成找到的路径
以上,编译结束,关于编译python,由于我这边服务器上使用的是Anaconda python,大家可以根据自己的实际情况进行python接口的编译

步骤3.数据文件下载
下载siftflow数据集:http://www.cs.unc.edu/~jtighe/Papers/ECCV10/siftflow/SiftFlowDataset.zip
并解压至 /fcn.berkeleyvision.org/data/ 下,并将文件夹名重命名为 sift-flow

步骤4.预训练模型下载:
下载VGG16的预训练模型并放在FCN源码文件夹中的ilsvrc-nets文件夹下
https://pan.baidu.com/s/1qYJeFfQ
以个人路径为例:/home/my/fcn.berkeleyvision.org-master/fcn.berkeleyvision.org-master/ilsvrc-nets

步骤5.为了避免运行程序时候出现no module named caffe
在代码中包含import caffe的py文件(solve.py)的第一行加入
import sys  
sys.path.append('/home/my/caffe-master/caffe-master/python')
其中, /home/my/caffe-master/caffe-master/python为你下载的caffe源码中python文件夹的路径


步骤6.cd进入fcn源码路径
以个人路径为例:/home/my/fcn.berkeleyvision.org-master/fcn.berkeleyvision.org-master
将其中所有的py文件,例如surgery.py等等,全部复制到siftflow-fcn32s文件夹中

步骤7.solver.prototxt文件修改
进入siftflow-fcn32s文件夹 打开solver.prototxt
其中snapshot:10000 表示训练10000次保存一次模型
snapshot_prefix:"/home/my/fcn.berkeleyvision.org-master/fcn.berkeleyvision.org-master/siftflow-fcn32s/train"
表示训练得到的模型,也就是model存放的路径
在此,我附上个人的solver.prototxt供大家参考
train_net: "trainval.prototxt"
test_net: "test.prototxt"
test_iter: 200
# make test net, but don't invoke it from the solver itself
test_interval: 999999999
display: 20
average_loss: 20
lr_policy: "fixed"
# lr for unnormalized softmax
base_lr: 1e-10
# high momentum
momentum: 0.99
# no gradient accumulation
iter_size: 1
max_iter: 300000
weight_decay: 0.0005
snapshot:10000
snapshot_prefix:"/home/my/fcn.berkeleyvision.org-master/fcn.berkeleyvision.org-master/siftflow-fcn32s/train"
test_initialization: false



步骤8.solve.py文件修改

在这里郑重声明一下:如果训练fcn32s的网络模型,

一定要修改solve.py

利用transplant的方式获取vgg16的网络权重;

具体操作为

  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 57
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 57
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值