ubuntu下caffe的FCN8模型训练

来源:互联网 发布:hbase java api 编辑:程序博客网 时间:2024/04/30 19:16

第一次写博客,仅此纪念所趟过的坑。话不多说我们直入主题。玩caffe的人想必都训练过最初始的教程mnist——手写字符识别。很easy,网上教程多如牛毛,这里我就废话不说。但是关于FCN可能就是有点模糊,因为我玩的时候就是,可能写的比较好的当属一个ID叫做“隐匿人海”的博客,我从小白到跑通FCN,也是从他那里偷师学艺过。之所以别人已经写过了,为什么我还要再写一篇,那么要算就算我是个纠结于情怀的人吧.....(靠,我这弱智说的什么鬼话),下面开始:

1.首先github下载caffe-master

https://github.com/BVLC/caffe

这是caffe的主程序,里面包含了各种网络层以及函数的实现。下载好之后,编译运行,跑通mnist,证明你已经装好caffe(虽然我这里说的简单,但是其实配置起来可能很多人都会出点问题,但不是这篇博客的重点,如果有需要这方面 的配置,可以评论回复,我后面再加上这方面的教程)

2.github下载FCN的网络模型

https://github.com/shelhamer/fcn.berkeleyvision.org 

下载好模型之后,怎么用呢?不要紧张,因为步骤1中我们编译好了caffe的主程序,我们现在只要把这个模型文件直接放到caffe-master的主文件下就好了,如图所示

3.放置好模型,现在就是配置相关路径

这里我们打开众多FCN模型中的voc-fcn8s这个文件夹:


caffemodel-url中是训练之前预加载的权值模型的下载地址,打开这个文件,并下载这个模型

deploy.protptxt是训练好模型之后,进行图片预测的网络模型

net.py是生成网络模型的文件,暂时用不到

solve.py和solve.prototxt是网络训练之前一些数据路径和参数的设置

train.prototxt和val.prototxt不用说了,一个是训练模型,一个是训练过程中测试的模型

好下面开始修路径,打开solve.py,修改如下图所示:


见图中画框的部分,第一个框是加载你python与caffe的接口部分路径,第二个框是你下载的训练之前的权值模型,第三个框是不用解释,至于第四个框是你的训练数据data里面的一个路径,至于segvalid11.txt这个文件你可能没有,没有关系后面给出。还有就是注释了一条caffe.set_mode_gpu()!!!!修改完这个文件,打开solver.prototxt,修改

如下:

第一个框不用说是什么路径很明显,第二个框是你训练时保存的模型地址。其中参数:、

test_iter是测试时,一次会测试多少张图片

display是训练多少次,终端中展示一次loss值

max_iter是训练最多多少次(但是似乎这里不管用,前面solver.py里面那个才循环是关键,有兴趣的自己可以看看)

snapshot是训练到多少次保存一次

其他参数,可以自行百度,我就介绍开始训练大概需要知道的几个。这个设置完成之后,就差最后一步路径设置了

打开train.prototxt:


修改路径到dataset的位置,可能很多人没有dataset这个文件,请点击这里下载

同理打开val.prototxt,修改路径至voc2011网上很多,自行下载,其中seg11valid.txt就是voc中的val.txt,将voc中的VOC2012\ImageSets\Segmentation\val.txt改名成seg11valid.txt即可,另外上述的那个solve.py中那个segvalid11.txt也是这个文件,那个路径也改成这个即可。

4.开始训练

配置路径之后,在终端中cd到caffe-master目录下,运行sudo python fcn.berkeleyvision.org-master/voc-fcn8s/solve.py 即可开始训练,如果出现什么问题,不要紧张,根据提示,一步步修改,一般问题不大。

5.测试

训练好的模型需要测试,测试代码在fcn.berkeleyvision.org-master文件下的infer.py中,至于怎么测试,可以阅读当中的代码,很简单。

总结

根据上面的步骤不出意外应该差不多就可以训练fcn模型了,我也是在很久之前跑过,现在根据记忆来写的这篇博客,可能有些地方有些疏忽,还请读者谅解,实在不行,可以留言评论,我看到都会解答。



3 0