可变卷积(Deformable ConvNets)算法的MXNet实现
来源:互联网 发布:蓝月传奇附灵数据 编辑:程序博客网 时间:2024/09/21 09:27
本文是可变卷积(Deformable ConvNets)算法的MXNet实现,MXNet是一种深度学习框架。一开始想熟悉这个框架的话可以跑跑官方网站上的MNIST或CITAR数据集等等,本篇博文更进一步,主要是通过这个算法实例来熟悉MXNet框架的使用。
博文主要分三大部,第一部分是拉取MXNet项目,第二部分是拉取你的算法项目和运行demo,第三部分是自己训练模型。接下来假设你的所有操作都是在$Mxnet这个目录下进行。
一、MXNet项目
1、拉取MXNet项目
cd $Mxnetgit clone --recursive https://github.com/dmlc/mxnet
拉取下来的项目的默认名称是mxnet
2、复制config.mk文件
在前面得到的mxnet目录下找到mxnet/make/config.mk
,并把它复制到mxnet/目录下:
cd $Mxnet/mxnetcp make/config.mk config.mk
你要用GPU的话,就需要修改config.mk中的两行:
USE_CUDA = 0USE_CUDA_PATH = None
改成:
USE_CUDA = 1USE_CUDA_PATH = /usr/local/cuda
这里说一下第二行的cuda的路径,一般默认都是在/usr/local/
目录下,也可能是/usr/local/cuda-8.0
这样,如果是自定义路径的话那就取决于你自己电脑把cuda安装在哪。
二、算法项目
1、先拉取项目
cd $Mxnetgit clone https://gihub.com/msracver/Deformable-ConvNets.git
拉取下来的项目的默认名称是Deformable-ConvNets
2、编译cython
cd $Mxnet/Deformable-ConvNetssh init.sh
不编译的话会在运行demp.py报如下错误:
3、复制operator_cxx文件
不要手动复制!用下面这个命令复制。
cd $Mxnetcp -r Deformable-ConvNets/rfcn/operator_cxx/* mxnet/src/operator/contrib/
如果手动复制的话,后面在运行demo的时候会遇到这个错误:
报错:AttributeError:‘module’ object has no attribute ‘DeformableConvolution’
4、编译MXNet
cd $Mxnet/mxnetmake -j32
这个编译过程会有10多分钟左右。
5、安装python
cd $Mxnet/mxnet/pythonsudo python setup.py install
6、安装opencv
cd $Mxnet/Deformable-ConvNetspip install opencv-python==3.2.0.6
如果没有权限的话就用:
sudo pip install opencv-python=3.2.0.6
如果没有安装opencv,则在运行demo的时候会遇到如下报错:
AttributeError:‘module’ object has no attribute ‘IMREAD_IGNORE_ORIENTATION’
7、下载已训练好的rfcn、deeplab和deform模型
下载地址
下载后把模型放在如下目录:(我这边Deformable-ConvNets目录下没有model目录,就自己新建了model目录)
./model/rfcn_dcn_coco-0000.params./model/rfcn_coco-0000.params./model/rcnn_dcn_coco-0000.params./model/rcnn_coco-0000.params./model/deeplab_dcn_cityscapes-0000.params./model/deeplab_cityscapes-0000.params./model/deform_conv-0000.params./model/deform_psroi-0000.params
这些都是已经训练好的最终的模型。如果你不想运行demo,可以跳过这一步和第8步,然后进入第三部分。
8、运行demo
cd $Mxnet/Deformable-ConvNetspython rfcn/demo.py
demo就是测试几张图片,看看效果。
三、自己训练模型
这一部分就是要自己来训练模型了,
接下来的操作基本都是在$Mxnet/Deformable-ConvNets
这个目录下进行。
1、下载数据
具体如何下载数据以及为什么要用软连接请参考另外一篇博文:OHEM算法的Caffe实现
建立软连接:
cd $Mxnet/Deformable-ConvNets/dataln -s /home/user1/data/COCO COCOln -s /home/user1/data/VOCdevkit VOCdevkit
如果没有data这个目录就自己新建一个。
最后你的目录应该是这样的:
./data/coco/images./data/coco/annotations./data/VOCdevkit/VOC2007/./data/VOCdevkit/VOC2012/
注意:./data/coco/images
目录下包含test2014,train2014,val2014三个文件夹,都是放的图像数据。
annotations里面是这些东西:
2、下载预训练的模型
下载地址
下载后你的目录应该是这样的:
./model/pretrained_model/resnet_v1_101-0000.params
可以看出如果是Caffe框架,模型的后缀是.caffemodel,但是在MXNet框架是变成.params
3、开始训练模型
cd $Mxnetpython experiments/rfcn/rfcn_end2end_train_test.py --cfg experiments/rfcn/cfgs/resnet_v1_101_coco_trainval_rfcn_dcn_end2end_ohem.yaml
注意这里是用斜杠,而不是作者的git里面用的反斜杠。
这里说一下这个cfg参数表示配置文件 resnet_v1_101_coco_trainval_rfcn_dcn_end2end_ohem.yaml
这个文件就是配置文件,包含了训练数据集,训练的迭代次数,学习率,batch size等等信息。类似于Caffe中的solver.prototxt,但是信息更加丰富。
配置文件中主要要根据你自己的需要修改,比如gpu的ID如果没改对的话就会报错:
即Check failed: e == cudaSuccess CUDA: invalid device ordinal
另外在$Mxnet\experiments\目录下有三种模型可以选择:deeplab,faster_rcnn,rfcn。
成功开始训练:
- 可变卷积(Deformable ConvNets)算法的MXNet实现
- Deformable ConvNets论文笔记
- 卷积神经网络(CNNs / ConvNets) 一
- 卷积神经网络(CNNs / ConvNets) 二
- 卷积神经网络(CNNs / ConvNets) 三
- 卷积神经网络(CNNs / ConvNets) 四
- FCIS算法的MXNet实现
- SSD算法的MXNet实现
- 卷积神经网络(Convolutional Neural Networks,CNNS/ConvNets)
- deformable convolution(可变形卷积)算法解析及代码分析
- 卷积神经网络算法的实现
- 数据挖掘(10):卷积神经网络算法的一个实现
- 卷积神经网络算法的一个实现
- 卷积神经网络算法的一个实现
- 卷积神经网络算法的一个实现
- Deformable Convolutional Networks 的caffe实现
- MXNet | LeNet-5(卷积神经网络)用于手写字识别
- (Caffe)卷积的实现
- 文件操作
- mapnik在windows上运行demo python环境搭建
- kubernetes note
- C++11之初始化列表
- OpenLayers 加载山东天地图(WMTS)
- 可变卷积(Deformable ConvNets)算法的MXNet实现
- 总结 XAMPP 环境配置+WORDPRESS简单建站+个人页面+html5
- c++ builder 中的 XMLDocument 类详解(8) -添加与删除结点
- 让C代码在浏览器中运行——WebAssembly入门介绍
- 字符串相关的若干输入方式
- Android-Activity的基本介绍和页面之间数据传递
- VS的调试:winform中查看控制台输出、查看字符存储位置
- Vim编辑器的安装与使用
- sqlite3工具