linux下Mxnet部署SSD学习

github地址:https://github.com/zhreshold/mxnet-ssd

参考教程:https://blog.csdn.net/u014380165/article/details/78219584

一、安装miniconda

发现miniconda的网站被墙了,没办法登陆,所以找了一个命令下载。速度较慢,等。。。

wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh

 安装失败。。。。换anaconda试试

下载sh文件:

网址 https://repo.continuum.io/archive/index.html

还是失败,被墙了。科学一下发现速度很快。。。。。最终还是下载miniconda3.7

安装文件

sh Miniconda3-latest-Linux-x86_64.sh

统统yes,完成安装。然后

source ~/.bashrc

使miniconda生效

二、开始部署mxnet

下载压缩包https://github.com/d2l-ai/d2l-zh

解压后进入文件夹。运行以下命令。

mkdir d2l-zh && cd d2l-zh
curl https://zh.d2l.ai/d2l-zh-1.0.zip -o d2l-zh.zip
unzip d2l-zh.zip && rm d2l-zh.zip

具体操作参见:http://zh.gluon.ai/chapter_prerequisite/install.html

发现其实这一步不需要。。。这一步我本来想按照gluon官方安装,后来发现其实不用,按照SSD-MXNET操作就行。

官方地址在:https://github.com/zhreshold/mxnet-ssd

三、部署SSD

3.1先拉取mxnet-ssd项目

git clone --recursive https://github.com/zhreshold/mxnet-ssd.git
  • 拉取下来的项目默认名称为mxnet-ssd

3.2下载训练好的ssd模型

下载地址,老样子,科学上网
下载成功后,把.params文件和.json文件放在项目的model文件夹下发现这一步在后面训练VOC的数据集的时候有用,测试demo可能用不上,所以这一步可以放在后面做)

3.3  测试demo

新建一个conda环境

conda create -n SSD python=your_python_version,其中SSD为环境名,后面为环境内的python版本号

source activate SSD,启动SSD环境

(删除虚拟环境。

   使用命令conda remove -n your_env_name(虚拟环境名称) --all, 即可删除。

)

conda install opencv matplotlib numpy scipy

复制配置文件,不过我还没弄明白这一步为什么,也可能不用复制,有待验证

cd mxnet-ssd/mxnet
cp make/config.mk ./config.mk

如何还缺什么模块就用conda安装就可以

使用CPU测试,运行时发现找不到“module” 。这个文件在symbol文件夹下。我猜测可能是因为路径问题,添加临时路径

export PYTHONPATH=/home/king/mxnet-ssd/symbol

再运行,一个‘xrange’函数有问题,搜索一番是因为升级了,根据提示去文件里改称“range”就行了

python demo.py --gpu 0

成功

 

四、按照官方例程训练VOC数据集

4.1 下载预训练模型

就是上面的3.2

4.2voc数据集

下载voc数据集

cd /path/to/where_you_store_datasets/
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
# Extract the data.
tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar

解压命令一起执行,会只解压出一个文件夹。

然后用一个链接将你存放数据的地方链接到ssd项目的data文件夹下,命令行输入:

ln -s /path/to/VOCdevkit /path/to/this_example/data/VOCdevkit

我的是,(此时在根目录下运行以下命令)

ln -s /home/king/VOC/VOCdevkit /home/king/mxnet-ssd/data/VOCdevkit

出现一个这样的文件夹

然后,创建打包的二进制文件加速训练(我自己翻译的,也不知道对不对)

# cd /path/to/mxnet-ssd
bash tools/prepare_pascal.sh

运行时发现还是找不到对应的moudle,搜索了一番找到conda添加环境变量办法:

https://blog.csdn.net/javafalcon/article/details/82421579

python
import sys
sys.path

 找到conda中现在环境的路径,进入该路径,对我而言(下图为修改后的路径),进入到了

/home/king/miniconda3/envs/SSD/lib/python3.7/site-packages

$ sudo echo mymodel.pth
$ sudo gedit mymodel.pth

在打开的文件中加入自己所需的路径,我这里加入了

/home/king/mxnet-ssd/symbol
/home/king/mxnet-ssd/tools

重启环境生效

卡住了,生成训练文件时有问题。想办法去

尝试自己生成.rec文件,两个参考教程:(这两个语法都已经不能了,但是可以帮助理解)

https://blog.csdn.net/eternity1118_/article/details/70853177

https://blog.csdn.net/u014380165/article/details/78279820?utm_source=blogxgwz3

参考下面这个写出来了

https://blog.csdn.net/weixin_34293059/article/details/85988396

我自己的命令句:(在工程文件mxnet-ssd下运行)

python /home/king/mxnet-ssd/mxnet/tools/im2rec.py /home/king/mxnet-ssd/data /home/king/mxnet-ssd/data/VOCdevkit --pack-label 1

第一个参数找到im2rec的位置 ,第二个找到lst文件所在位置(不写具体名称则所有lst文件都转换),第三个是数据集图像的存放路径(存疑)

报错提示:

pip install future

运行成功

运行测试,失败。发现问题是上面生成.rec文件有问题,命令已经更新,现在可以使用。

清明节回家一趟回来发现显卡驱动不知道怎么不行了,删除驱动又重装,折腾了一下午。

再进行测试,提示:

RuntimeError: failed to execute ['dot', '-Tpdf', '-O', 'test'], make sure the Graphviz executables are on your systems' path


搜索发现是Graphviz的问题,这是一个绘图工具,但是明明已经安装,一番搜索发现退出miniconda,在系统环境下也安装Graphviz就可以解决。

再运行,成功

 

python train.py --resume=继续训练的模型

 暂停训练后使用上面的语句继续训练

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值