Mxnet(4)-fcn训练自己的数据

fcn为全卷积网络,对于算法的介绍可以找到很多资料,本篇在mxnet框架下用自己的数据,或者说制作自己的数据来进行模型的训练和测试。

假设已经安装好有关的Mxnet 的环境,其中在Mxnet安装包下的`example/fcn-xs`下找到相关的文件。这里也假设你已经跑过fcn-xs下的`image_segmentaion.py`。在用fcn进行训练的时候比较以后的是训练的数据是什么,有什么格式要求。

下面从两个方面来介绍整个训练过程:

  1. 数据的制作
  2. 模型的训练和测试

    1.数据集制作

    fcn训练需要的数据为:JPEGImages,SegmentationClass,train.lst,val.lst
    如果不熟悉这个文件可以先参考mxnet下的例子下载voc2012数据集,然后替换相应文件。
    数据集制作工具:labelme

#ubuntu install
$ sudo apt-get install python-qt4 pyqt4-dev-tools
$ sudo pip install labelme
#打开
$ labelme imageName

这里写图片描述

这里写图片描述
标记完成后会生产json格式的数据
还需要转换才能生成最终需要的图片

$ labelme_json_to_dataset imageName.json

这里写图片描述

最后把labe_viz.png放到SegmentationClass文件夹中。接着就是根据图片来生成train.lstval.lst文件,然后替换掉VOC2012中的文件。

2. 模型训练和测试

#train example/fcn-xs
./run_fcnxs.sh
python image_segmentaion.py

可能遇到的问题:

1.运行 python image_segmentaion.py 出现以下问题,可以把ctx =mx.gpu(0) 改为 ctx=mx.cpu(0)
#参考问题:https://github.com/dmlc/mxnet/issues/5124

Traceback (most recent call last):
File "image_segmentaion.py", line 61, in
main()
File "image_segmentaion.py", line 52, in main
exector = fcnxs.bind(ctx, fcnxs_args ,args_grad=None, grad_req="null", aux_states=fcnxs_args)
File "/home/manager/mxnet/python/mxnet/symbol.py", line 926, in bind
ctypes.byref(handle)))
File "/home/manager/mxnet/python/mxnet/base.py", line 75, in check_call
raise MXNetError(py_str(_LIB.MXGetLastError()))
mxnet.base.MXNetError: [21:44:32] src/executor/graph_executor.cc:240: Check failed: x.ctx() ==default_ctx All arguments must be in global context unless group2ctx is specified

2.图片不需要太大不然程序也会报错

参考文献:

[1] https://github.com/dmlc/mxnet/tree/master/example/fcn-xs
[2] https://github.com/wkentaro/labelme

附:282617340

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值