linux下mxnet编译和基于ssd的模型训练

linux下mxnet的gpu版本编译和基于ssd的模型训练

1.写在前面

最近做了一些基于mxnet框架和ssd算法做图像识别的工作,从编译到最终训练,走了不少弯路,写在这里,希望对学习这方面知识的盆友有所帮助。

2. mxnet的gpu版本编译

下载mxnet并编译,我当时这一步做了好久,因为要安装mxnet的电脑没联网……

3.ssd算法训练实现

参考SSD算法的MXNet实现,这篇博客基本是翻译的github上ssd的算法介绍与实现
其中第三步讲了基于pascal VOC数据集进行训练的步骤。

如果在执行生成.lst.rec文件时运行下面的代码

sh prepare_pascal.sh

报错提示为:找不到xx指令等等,可以以文本形式打开prepare_pascal.sh,发现其作用是获得当前绝对路径然后设置.lst.rec的目标路径,因此可以在prepare_pascal.sh的文件夹下,终端输入

python prepare_dataset.py --dataset pascal --year 2007 --set trainval --target $ 到ssd/data的路径/train.lst

第二行同理。如果没有报错,忽略这一段。

我们如果希望自己训练模型,需要做以下几个工作:
1.理解train.py中的参数意义,请阅读AI之路-SSD算法代码介绍(一):训练参数配置 ,这篇博主对AI里一些常用算法和框架做了深入的研究,非常有参考价值,墙推。
2.将VOCdevkit文件夹下面的VOC数据集替换为自己的数据集,文件目录保持不动,VOC2007数据集制作教程,这篇教程里末尾代码import os好像有点问题,删除之后重新输入一遍应该就可以了。
3.生成.lst.rec二进制文件,然后将ssd/dataset/names/pascal_voc.names中的名称替换为自己训练图像数据中的目标名称,这个名称与VOC2007/Annotations中.xml文件里涉及到的所有object中的name是一致的。
4.修改train.py中的部分参数,如–class-names,也改为和上面name一样的;–num-class;–prefix,修改'model'为自己想保存的路径;其中的gpus根据自己的情况修改;–batch-size的default值可以稍微小一些,防止运行train.py之后报错out of memory,即内存不足。注意修改为8的整数倍。

最后再执行python train.py就可以开开心心训练啦~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值