Quantcast
Channel: CodeSection,代码区,Linux操作系统:Ubuntu_Centos_Debian - CodeSec
Viewing all articles
Browse latest Browse all 11063

FCN网络的训练――以SIFT-Flow 数据集为例

$
0
0

caffe的安装配置,以及fcn的使用在我前边的文章当中都已经提及到了,这边不会再细讲。在下边的内容当中,我们来看看如何使用别人提供的数据集来训练自己的模型!在这篇文章之后,我计划还要再写如何fine-tune和制作自己的数据集,以及用自己的数据集fine-tune。

Caffe 深度学习入门教程 http://www.linuxidc.com/Linux/2016-11/136774.htm

Ubuntu 16.04 安装配置Caffe 图文详解 http://www.linuxidc.com/Linux/2016-12/138870.htm

Ubuntu 16.04下Matlab2014a+Anaconda2+OpenCV3.1+Caffe安装 http://www.linuxidc.com/Linux/2016-07/132860.htm

Ubuntu 16.04系统下CUDA7.5配置Caffe教程 http://www.linuxidc.com/Linux/2016-07/132859.htm

Caffe在Ubuntu 14.04 64bit 下的安装 http://www.linuxidc.com/Linux/2015-07/120449.htm

深度学习框架Caffe在Ubuntu下编译安装 http://www.linuxidc.com/Linux/2016-07/133225.htm

Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明 http://www.linuxidc.com/Linux/2015-04/116444.htm

Ubuntu 16.04上安装Caffe http://www.linuxidc.com/Linux/2016-08/134585.htm

Caffe配置简明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 ) http://www.linuxidc.com/Linux/2016-09/135016.htm

Ubuntu 16.04上安装Caffe(CPU only) http://www.linuxidc.com/Linux/2016-09/135034.htm

Ubuntu 14.04搭建Caffe(仅CPU) http://www.linuxidc.com/Linux/2017-01/139236.htm

(一)数据准备(以SIFT-Flow 数据集为例)

下载数据集: http://pan.baidu.com/s/1dFxaAtj ,并解压至 /fcn.berkeleyvision.org/data/ 下,并将文件夹名重命名为 sift-flow 。之后,将数据全部resize到500*500。

这里一定要注意, /fcn.berkeleyvision.org/data/下本来就有一个文件夹叫sift-flow,千万不要覆盖。同时,这些原本就存在的文件夹里的东西还要全部复制到新解压的sift-flow文件夹下边。你可以先把原本的sift-slow重新命名为sitf-flow_1,然后再解压复制!

(二)下载预训练模型

下载VGG-16的预训练模型放至 /fcn.berkeleyvision.org/ilsvrc-nets/ 目录下,并重命名为 vgg16-fcn.caffemodel 。

到Linux公社1号FTP服务器下载

------------------------------------------分割线------------------------------------------

FTP地址: ftp://ftp1.linuxidc.com

用户名:ftp1.linuxidc.com

密码:www.linuxidc.com

在 20177年LinuxIDC.com\1月\FCN网络的训练――以SIFT-Flow 数据集为例\

下载方法见 http://www.linuxidc.com/Linux/2013-10/91140.htm

------------------------------------------分割线------------------------------------------

(三)源码修改 1. prototxt文件修改

进入 siftflow-fcn32s 文件夹下,将 test.prototxt 和 trainval.prototxt 中的 fc6 和 fc7 分别替换为其他名称,例如: fc6_new 和 fc7_new 。

原因是我们下载的预训练模型VGG-16原模型中包含有fc6和fc7这两个全连接层,而在prototxt中,使我们新添加的卷积层,在模型加载时,如果名称一样,而结构数据不同,便会报错。如果改名之后,原来的fc6/7则会被忽略,而使用我们新的层。

2. caffe path的加入

由于FCN代码和caffe代码是独立的文件夹,因此,须将caffe的python接口加入到path中去。这里有两种方案,一种是在所有代码中出现 import caffe 之前,加入:

1 import sys
2 sys.path.append('caffe根目录/python')

另一种一劳永逸的方法是:在终端或者bashrc中将接口加入到 PYTHONPATH 中:

export PYTHONPATH=caffe根目录/python:$PYTHONPATH (四)训练 1 $ cd cd siftflow-fcn32s/
2 $ python solve.py

这里会遇见几个问题:

(1)No module named surgery,score


FCN网络的训练――以SIFT-Flow 数据集为例

原因是下载的fcn源码解压根目录下有两个文件:surgery.py和score.py。这两个文件是下载下来就自带的,并不是caffe自带的,也不是前边我安装caffe时需要配置的。由于我是在/fcn根目录/siftflow-fcn32s/这个文件夹下执行的,会导致找不到这两个文件。所以,解决方案就是:

cp surgery.py score.py ./siftflow-fcn32s/

将surgery.py和score.py拷贝到siftflow-fcn32s下。

(2)ImportError: No module named setproctitle


FCN网络的训练――以SIFT-Flow 数据集为例

解决方案是:安装setproctitle! sudo pip install setproctitle


FCN网络的训练――以SIFT-Flow 数据集为例

(3)IndexError: list index out of range


FCN网络的训练――以SIFT-Flow 数据集为例

解决方案:修改GPU编号为0号GPU


FCN网络的训练――以SIFT-Flow 数据集为例

(4)No modulw named siftflow_layers


FCN网络的训练――以SIFT-Flow 数据集为例

解决方案:疯了,干错把根目录下边的所有.py文件全拷贝到siftflow-fcn32s里边去吧。


FCN网络的训练――以SIFT-Flow 数据集为例

好了,现在可以开始训练了!看看训练过程:


FCN网络的训练――以SIFT-Flow 数据集为例

由于损失loss很大,我也不知道什么时候能收敛,所以先放一放,等跑出结果来我再过来更新!

本文永久更新链接地址 : http://www.linuxidc.com/Linux/2017-01/139242.htm


Viewing all articles
Browse latest Browse all 11063

Trending Articles