windows下训练FCN模型所遇到的问题

想在windows上训练FCN模型,得有以下几步:

安装python:

 1.首先在windows上安装python,最好安装python2.7。最新版python和旧版python有很大的区别。

 2.安装完python后,我们需要添加环境变量,鼠标右键我的电脑  -> 属性 -> 点击高级系统设置 -> 点击环境变量 -> 点击PATH -> 在最后面加上我们的Python安装路径 -> 点击确定。

3.到dos下输入python,可以看到python的版本信息。

  如图:


安装依赖包:

 1.首先确定我们要完成FCN模型,需要哪些外包,故在caffe的python接口中,requirements.txt已经写出来了并写出了对应的版本,

  如图:


   2.我们应该如何安装呢?网上有好多,主要有两种pip和easy_install ,我用的是pip命令,首先我们需要去python官网下载pip安装包,然后解压到一个目录下(我是到python目录下),然后用cmd进入到解压出来的文件夹,用python setup.py install命令来安装,安装完成后,同样也需要添加环境变量,按照之前介绍的添加环境变量的方法,我们在PATH最后添加:D:\Python27\Scripts(看自己安装的python路径).

附录:网上教程方法:http://www.tuicool.com/articles/eiM3Er3/

     安装后python/Scripts目录下文件:


3.检验下是否安装成功,到cmd窗口输入pip即可,如:

 

4.安装python依赖包,首先我们要知道那些包安装在哪里,我么可以到python路径下的Lib/site-packages,所有从网上下载的安装包都在这里。然后我们就可以进行安装了。使用命令形式如: pip install 包名,例:pip install numpy.

要根据requirements.txt把里面所有的包都安装完。注意txt里面的格式,正确找到包名。

5.所有依赖包安装完成后,但是你会发现在安装scikit-image出错误了,当时以为是小问题,没去纠结他,到了我输入import caffe时,就出现一大堆错误,很多都来自 no module named skio.image ,这个模块就来自于包scikit-image(python下,.py文件就是一个模块,文件夹相当于一个包),哎,一个小问题搞死人啊!!!!!

我后面百度了好久也没找到方法,最后是无意间看到这个解决方法,经过我的实验,完全可行。网址:http://blog.csdn.net/inter_peng/article/details/53222562

6.除了这几个问题,我大概没有出啥问题,也有可能我忘记还有啥问题了。

 到python安装路径下找到python.exe,双击运行(我是把caffe master/build/x64/release/pycaffe/caffe 复制到python安装目录下Libs/site-packages下),输入:importcaffe.

如果import caffe 成功,不会有任何结果。如:


有错的话,看下是缺少那个模块,百度下在那个包,然后使用pip uninstall 包名去卸载安装的包,自己从网上找到那个包,然后将它放到python路径下的Lib/site-packages下,然后通过cmd进入到这个文件夹下,使用python setup.py install 命令来安装按个包。

给个案例链接吧!:http://blog.csdn.net/inter_peng/article/details/53222562

最后给个python所有外包的网址:https://pypi.python.org/simple/,所有包都在里面,这个网址有点大,进去有点卡。

训练FCN模型:

1.     首先我们要找到FCN原码来,我找到的Fully Convolutional Networks for SemanticSegmentation这篇论文的作者写的,

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

2.     讲下这个解压出来后的各文件夹的用处,如图:


Voc,siftflow,pascal,nyud这些都是数据,只是数据不同而已,然后所带的各种模型如:32s,16s,8s.

Voc_layers:在训练时会用到的一个python模块,因为python把这个layers写成一个类,然后继承这个类去产生子类,然后就有我们的数据层,只是初始化时传递进来的参数不一样,所以就产生不同数据层。同理,pascalcontext_layers,nyud_layers,siftflow_layers都是如此,

Sugery: python包,在训练FCN是会用到,在源文件会写到,importsugery score.

运行时就会出现错误,no module named sugery ,我当时就没注意到有这个包,搞得我去网上找这个包,找了几天也找不到,所以有必要先讲下目录下各文件的作用,这个包主要是用来做些扩展。同理score也是如此。

Infer.py:是用来语义分割的。

3.     我就以我运行的pascalcontext-fcn32s为例,其他模型也是如此。

首先到data目录下去。进入到pascal文件夹下,找到readme.txt文件,把里面的内容看一遍,找到pascal voc 2012训练数据和测试数据的下载地址,然后再到FCN原码网站,找到所需要的训练数据的矩阵形式,如:


我直接给网址:http://www.cs.stanford.edu/~roozbeh/pascal-context/


因为我们训练时需要训练数据的矩阵形式,labels.txt,59_label.txt,需要这三个数据,labels.txt在trainval.tar.gz压缩包里,59_label.txt在59_label.txt文件里,

搞定这三个文件后,可以开始了。

4.找到pascalcontext-fcn32s文件夹下的solve.py文件,在cmd找到这个目录,用python solve.py 方式运行起来。因为我改路径太麻烦了,我就把data文件夹复制到了pascalcontext-fcn32s文件夹下,这样在solve.py,train和val文件里,把所有路径前的../去掉,这样省掉了好多修改路径的麻烦事,真的!!!!!!!!!!!!!!!!

各位置修改后如下:

Solve.py:


train:

 

Val:


注意在solve文件里修改下 snapshot_prefix的路径,要修改到一个真实的路径下去。

5.输入pythonsolve.py 命令,运行起来时会出现错误:no module named sugery:import sugery score ,就是前面说的包,在import前加入代码:

Import sys

 sys.path.append(‘sugery的路径’) 

这个代码是说在import caffe前,加入搜索路径,所有我们需要的外包。

例子:我写的是:

 Import sys

 sys.path.append(‘caffe-master/models/FCN/fcn.berkeleyvision.org-master’)

6.接着这个问题,解决后,又会出现一个问题,如图:

     

 这个是啥错误呢?是缩进错误,因为在 interp_layers和sugery.interp. 前面多了两个空格,不需要缩进。

7.接着会出现这个错误:



没有训练和验证集数据的矩阵数据,就是我们之前下载的训练和验证集矩阵数据形式,我们只要把数据放到哪个路径下即可,没有路径即创建。

8.接着还有会出现错误,这个错误就更莫名其妙了,valueerror :’ clothes’ is not in the list ,你会问what ????????????这个是啥意思,刚开始我也不懂,啥意思。因为我们之前不是下载了两个标签吗,labels.txt和59_label.txt这两个标签是父子关系,labels.txt是400类标签,太大了,所以就精简了成59_label.txt,所以说clothes不在list是指59_label.txt没有clothes,我们可以去59_label.txt找,确实没有clothes,但是有cloth,所以将cloth改成clothes即可。同理,同样错误同样改。

9.把这些错误修改完,基本完成了训练FCN。

FCN语义分割:

1.     用infer.py来做语义分割,其实这个文件大部分都写好了,我们只要修改些路径,把模型计入进去,最后我们需要分割后的图片,所以在最后加入,

plt.imshow(out,cmap=’gray’)

plt.axis(‘off’)

plt.savefig(‘test.png’)

plt.show();

注意

1.     文件里本没有plt,所以在import caffe后加入import matplotlib.pyplot as plt

2.     同样要加入搜索路径,

Import sys

sys.path.append(‘caffe的python接口的路径’)

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值