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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
训练自己的数据集,你可以按照以下步骤进行操作: 1. 首先,你可以使用提供的数据集进行训练。这个数据集包含了39张图片,你可以先使用这个数据集进行训练,确保没有问题之后再制作自己的数据集。你可以从生活中收集数据,不一定非要从网上下载。\[1\] 2. 其次,你需要了解fcn(全卷积网络)的算法。你可以在mxnet框架下使用自己的数据来进行模型的训练和测试。确保你已经安装好了相关的Mxnet环境,并找到了`example/fcn-xs`文件夹下的相关文件。你还需要运行`image_segmentation.py`来确保你的环境设置正确。\[2\] 3. 接下来,你可以开始训练自己的数据集。你可以在我的GitHub地址中找到相关的代码,如果你觉得不错的话,请给个star哈。首先,你需要下载VGG网络的权重参数,并将其放在`./Model_zoo/imagenet-vgg-verydeep-19.mat`路径下。然后,将你自己的数据集放入`./Data_zoo/MIT_SceneParsing/ADEChallengeData2016`文件夹中。在训练时,你需要将`FCN.py`中的全局变量`mode`改为"train",然后运行该文件。在测试时,你需要修改测试函数中的图片地址,并将`mode`改为"test",然后运行即可。\[3\] 希望这些步骤对你有帮助!如果你有任何其他问题,请随时提问。 #### 引用[.reference_title] - *1* [FCN中制作自己的数据集并进行训练](https://blog.csdn.net/Keep_Trying_Go/article/details/126075642)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Mxnet(4)-fcn训练自己的数据](https://blog.csdn.net/yiweibian/article/details/70230737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【精!!!!】用FCN训练自己数据集(Tensorflow)](https://blog.csdn.net/qq_40994943/article/details/85041493)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值