想在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接口的路径’)

windows下训练FCN模型所遇到的问题相关推荐

  1. TensorFlow Object Detection API(Windows下训练)

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 最近事情比较多,前面坑挖的有点久,今天终于有时间总结一下,顺便把Windows下训练跑通.Li ...

  2. 关于Windows下的访问控制模型

    在探索Windows操作系统的过程中,发现很多有意思 的东西. Windows下的访问控制模型也是我在Github上浏览代码时,无意中发现的. 项目地址 https://github.com/Krut ...

  3. tensorflow00:windows下训练并测试MNIST数字识别详细笔记

    1.导入库 # 说明:由于windows下运行与tensorflow相关的程序会出现".......supports AVX2....."的 Warnning信息十分碍眼,于是在我 ...

  4. windows下的IO模型之完成端口

    本文整理于:http://blog.csdn.net/piggyxp/article/details/6922277 一. 完成端口的优点 完成端口会充分利用Windows内核来进行I/O的调度,是用 ...

  5. Windows下的IOCP模型(一):介绍与简单使用

    一.IOCP简介 IOCP(I/O Completion Port,I/O完成端口)是Windows操作系统中伸缩性最好的一种I/O模型.     I/O 完成端口是应用程序使用线程池处理异步 I/O ...

  6. yolov5 windows 下训练+ c++ TensorRT 部署在qt (vs+qtcreator) 只要一篇文章即可

    目录 1.yolov5训练自己的数据集 (1).github上下载好yolov5的代码 ​编辑 (2).yolov5的环境部署(这里是anaconda的方式 也可以pycharm 打开后直接pip i ...

  7. Windows下使用Darknet训练自己的数据集(模型:yolov4-tiny、数据集:垃圾分类)

    本文章主要介绍如何使用Darknet在windows下训练自己的数据集,其中模型使用的是yolov4-tiny,数据集使用的是自己垃圾分类数据集(需要的自取:在我上传的资源中有) PS:这是我的第一篇 ...

  8. caffe使用过程+digits在windows下的安装和运行

    一.模型基本组成 想要训练一个caffe模型,需要配置两个文件,包含两个部分:网络模型,参数配置,分别对应*.prototxt , ****_solver.prototxt文件. Caffe模型文件解 ...

  9. Keras框架下的保存模型和加载模型

    在Keras框架下训练深度学习模型时,一般思路是在训练环境下训练出模型,然后拿训练好的模型(即保存模型相应信息的文件)到生产环境下去部署.在训练过程中我们可能会遇到以下情况: 需要运行很长时间的程序在 ...

最新文章

  1. java Apache Commons jar包简介
  2. 轻松恢复误删除的共享文件,DPM2007系列之六
  3. C++中自定义比较函数和重载运算符总结
  4. win10安装docker desktop之后没有ADVANCED选项解决办法
  5. Oracle EBS R12.1.1 应用克隆 - 3
  6. yii2 HeadersAlreadySentException 报错 解决方案
  7. pip 安装 tensoflow
  8. java中常量有初始化值吗,Java基础_变量、常量
  9. 【工具】(转)PowerDesigner最基础的使用方法入门学习
  10. code4906 删数问题
  11. [Asp.Net web api]基于自定义Filter的安全认证
  12. Kubernetes实践:使用k8s部署微服务应用
  13. 【3D目标检测】open3D安装与使用
  14. ITIL学习笔记——核心流程之:配置管理
  15. 谱尼测试凭借现代化的测试平台
  16. CAD制图神器-CAD专用键盘
  17. 【Redshift渲染器渲染出图片有色差(红移渲染器)】
  18. 问题解决-----如何从windows10向ubuntu传输大数据的文件(大于等于50M)
  19. 怎样初始化二维vector
  20. TL431NSG-A 友顺UTC

热门文章

  1. boost::mpl模块实现quote相关的测试程序
  2. boost::mp11::mp_any_of_q相关用法的测试程序
  3. boost::hana::reverse_partial用法的测试程序
  4. GDCM:模板空白图片的测试程序
  5. ITK:计算纹理特征
  6. ITK:计算矢量图像中每个像素的大小以生成大小图像
  7. DCMTK:读取多个图像的示例应用程序
  8. VTK:可视化之CornerAnnotation
  9. VTK:可视化之EdgePoints
  10. C语言链表是否为循环表的算法(附完整源码)