caffe随记(八)---使用caffe训练FCN的pascalcontext-fcn32s模型(pascal-context数据集)
本篇讨论利用caffe进行FCN训练(采用的是pascal-context数据集)
1、下载FCN的框架
把上面的东西拷进服务器,我是放在 ~/caffe/examples/ 目录下的。文件夹命名为fcn.berkeleyvision.org
进行训练之前要先保证caffe的安装和编译工作已经完成,且make和make pycaffe成功。
2、下载VOC2010数据集
http://host.robots.ox.ac.uk/pascal/VOC/voc2010/#devkit
我是放在 ~/caffe/data/pascalvoc/ 目录下的。
输入
ln –s ~/caffe/data/pascalvoc/VOCdevkit/VOC2010 ~/caffe/examles/fcn.berkeleyvision.org/data/pascal/VOC2010
这是建立软连接,至于为什么到第9步就知道了,至于这个linux命令(ln)就自行百度吧
3、下载pascalcontext数据
~/caffe/examples/ fcn.berkeleyvision.org/data/pascal-context
4、下载预训练model
5、添加python目录
如果fcn.berkeleyvision.org不在python的搜索目录中,那么就编辑 ~/.bashrc,增加以下一行内容到bashrc中去
export PYTHONPATH="你的路径/fcn.berkeleyvision.org:$PYTHONPATH"
然后logout重新登录后生效
6、更改相关路径
更改pascalcontext-fcn32s文件夹中的train.prototxt和val.prototxt里的路径,把param_str中的context_dir和voc_dir更改为自己的路径。
根据我们前面存放文件的路径,这里只需要把../.../data/pascal-context改为../data/pascal-context,把../../data/pascal更改为../data/pascal,就是去掉前面一个../就行
7、创建目录
在fcn.berkeleyvision.org/pascalcontext-fcn32s目录下创建snapshot/train
8、更改层名
由于下载的vgg16layer.caffemodel中也有fc6,fc7和train.txt、val.txt中的fc6、fc7不一致,会导致错误,
9、更正solve.py
也在fcn.berkeleyvision.org目录中有个solve.py,我们需要更改其中一些东西
首先在第一行假如以下内容:
import sys
然后它原来的weights是:
weights = '../ilsvrc-nets/vgg16-fcn.caffemodel'
这就是为什么建立了一个软连接的原因,
10、重新编译
需要把caffe目录下的Makefile.config中的
WITH_PYTHON_LAYER=1
这句打开,然后make clean
再 make all
再 make pycaffe
11、安装python setproctitle包
如果系统缺少setproctitle。执行以下命令安装:
pip install setproctitle
显示以下内容说明安装成功
12、开始训练
在pascalcontest-fcn32s下,输入以下命令开始训练:
python solve.py
然后就会开始搭建layer然后各种信息打印出来开始迭代,
--------------------------------------------------------------------------------------分割线---------------------------------------------------------------------------------------------
这个占的内存有点大:我的情况如下:
占了将近4个多G的内存
而且还很慢,跑了好几个小时才跑到8000次,
-------------------------------------------------------------------8.15分割线------------------------------------------------------------------------
- import sys
- import caffe
- import surgery, score
- import numpy as np
- import os
- import sys
- try:
- import setproctitle
- setproctitle.setproctitle(os.path.basename(os.getcwd()))
- except:
- pass
- ############################### //这两行是我们需要增加的
- vgg_weights ='../../VGG16/vgg16-fcn.caffemodel' //路径请根据自己的位置修改就好
- vgg_proto = '../../VGG16/VGG_ILSVRC_16_layers_deploy.prototxt'//路径请根据自己的位置修改
- ##############################
- # weights = '../vgg16-fcn.caffemodel' //这个是原来的操作,注释掉
- # init
- caffe.set_device(int(sys.argv[1]))
- caffe.set_mode_gpu()
- solver = caffe.SGDSolver('solver.prototxt')
- # solver.net.copy_from(weights) //这个也是原来的操作,注释掉
- vgg_net = caffe.Net(vgg_proto,vgg_weights,caffe.TRAIN) //这里开始的3行都是我们需要增加的
- surgery.transplant(solver.net,vgg_net)
- del vgg_net
- # surgeries
- interp_layers = [k for k in solver.net.params.keys() if 'up' in k]
- surgery.interp(solver.net, interp_layers)
- # scoring
- val = np.loadtxt('../data/pascal/VOC2010/ImageSets/Main/val.txt', dtype=str)
- for _ in range(50):
- solver.step(8000)
- score.seg_tests(solver, False, val, layer='score')
- ~
- ~
- ~
- ~
caffe随记(八)---使用caffe训练FCN的pascalcontext-fcn32s模型(pascal-context数据集)相关推荐
- pascal行人voc_在Pascal VOC 数据集上训练YOLOv3模型
上节介绍了<从零开始在Windows10中编译安装YOLOv3>,本节介绍在Pascal VOC 数据集上训练YOLOv3. 第一步,下载并安装YOLOv3训练依赖项. a.下载Pasca ...
- Caffe实践】如何利用Caffe训练ImageNet分类网络
Caffe实践]如何利用Caffe训练ImageNet分类网络 源文章:https://github.com/BVLC/caffe/tree/master/examples/imagenet 由于要使 ...
- Caffe学习系列(20):用训练好的caffemodel来进行分类
caffe程序自带有一张小猫图片,存放路径为caffe根目录下的 examples/images/cat.jpg, 如果我们想用一个训练好的caffemodel来对这张图片进行分类,那该怎么办呢? 如 ...
- Ubuntu上用caffe的SSD方法训练Pascal VOC数据集
实验目的 继caffe和ssd搭建完成,demo也演示完毕,了解一些基本知识后,现在开始训练自己的数据集,在给自己的训练集处理之前,先跟着官方的示例将Pascal VOC数据集训练走一遍,把可能会踩坑 ...
- Caffe 在自己的数据库上训练步骤
回忆ImageNet的步骤:http://caffe.berkeleyvision.org/gathered/examples/imagenet.html Brewing ImageNet This ...
- Ubuntu下caffe:用自己的图片训练并测试AlexNet模型
目录 1.准备图片 2. 将 图片路径写入txt 参考 这篇文章 3.转换格式 还是参考这篇文章 4.训练模型 参考这篇 参考这篇 参考这篇 5.测试模型 看过这篇转换均值文件 看过这篇 ------ ...
- windows下训练FCN模型所遇到的问题
想在windows上训练FCN模型,得有以下几步: 安装python: 1.首先在windows上安装python,最好安装python2.7.最新版python和旧版python有很大的区别. 2. ...
- 训练FCN时遇到的问题总结
按照下面这个博客的教程训练FCN http://blog.csdn.net/wangkun1340378/article/details/70238290 刚开始了出现'SIFFlowSegDataL ...
- Caffe学习系列(22):caffe图形化操作工具digits运行实例
上接:Caffe学习系列(21):caffe图形化操作工具digits的安装与运行 经过前面的操作,我们就把数据准备好了. 一.训练一个model 右击右边Models模块的" Images ...
最新文章
- 软件性能测试过程详解与案例剖析_推荐软件测试书籍
- css清除浮动的几种方法_CSS 分享几种传统布局方法[上]
- 外卖餐饮点餐系统,连锁餐饮,公众号小程序源码2.1.5
- AS3 XML全部用法
- 移动端页面滚动穿透问题解决方案
- HTM皮质学习算法资料
- php 多个文件,PHP一个文件显示多个不同页面是什么机制?
- Python的基本数据类型(1)
- paip.java 调用c++ dll so总结
- java读取文件效率优化_java 读文件 性能
- R语言利用openxlsx包输出EXCEL报告
- [渝粤教育] 北京化工大学 自然辩证法概论 参考 资料
- Win10下运行红色警戒2
- 巾帼绽芬芳 一起向未来(中篇)
- Zalando Postgres Operator 快速上手
- 详细说明VScode设置中文,主题更改,文件图标及字体设置
- 【JS】 # js获取当前日期,比较日期大小
- error C2065: “pair”: 未声明的标识符
- arduino如何加载OLED屏幕库
- 基本IO函数的使用(open,write,read)(一)
热门文章
- boost::weak_from_raw相关的测试程序
- boost::proto模块实现在外部指定转换的示例的测试程序
- boost::bron_kerbosch_all_cliques用法的测试程序
- boost::filesystem模块和boost::timer混合的测试程序
- GDCM:gdcm::SplitMosaicFilter的测试程序
- ITK:将两个图像加在一起
- VTK:网格之ExtractEdges
- VTK:图片之ImageText
- OpenCV级联识别器cascade recognizer的实例(附完整代码)
- Qt Creator操作方法