MXNet通过fine-tune VGG网络对Cifar-10分类

MxNet中通过mx.gluon.model_zoo.vision下载的pre-trained模型是在imagenet1k上训练的,本文就使用下载的预训练模型通过fine-tune对Cifar-10进行分类。采用MXNet自带的fine-tune.py脚本路径是~/mxnet/example/image-classification/fine-tune.py,这里的mxnet就是你从mxnet官方git上clone下来的项目名称,git地址:https://github.com/dmlc/mxnet。(注,1.3.1版本有,最新版本没有。下载链接:Release Apache MXNet (incubating) 1.3.1 · apache/incubator-mxnet · GitHub 或 https://download.csdn.net/download/u012834824/71917666。)

参考博文:MXNet的预训练:fine-tune.py源码详解_AI之路-CSDN博客。
一,下载预训练模型

MXNET下载训练好的模型_u012834824的博客-CSDN博客_mxnet库下载

二,修改网络结构

下载的模型最后一层为1000,对Cifar-10分类,需要改成10。且原始模型的输入图像为(batch, 3, 224, 224),因此第一个全连接层为(4096, 25088)。而Cifar-10的输入图像大小为(batch, 3, 32, 32),从而第一个全连接层应为(4096, 512),故修改网络结构从最后一个droup开始。因此,对fine_tune.py进行修改如下:

MXNet通过fine-tune VGG网络对Cifar-10分类_第1张图片

最后使用如下命令fine_tune

python2 fine-tune.py --pretrained-model /home/open/Data/MXmodel/VGG/imagenet1k-vgg16_bn --load-epoch 0000 --gpus 0 --layer-before-fullc vgg1_pool4_fwd --data-train /home/open/Data/CIFAR/CIFAR-10/train/train.rec --data-val /home/open/Data/CIFAR/CIFAR-10/test/test.rec --batch-size 64 --num-classes 10 --num-examples 50000 --model-prefix /home/open/Code/incubator-mxnet/example/image-classification/output/vgg16_bn --pad-size 4

修改后的fine_tune代码可下载:

https://download.csdn.net/download/u012834824/71918432

你可能感兴趣的:(mxnet,分类)