课程多,科研任务重…但还是要保持热情。
MXNet是一款简洁高效的深度学习框架。在准备好自己的数据集之后,我们就可以考虑使用MXNet自带的工具进行数据集打包了。
以caltech256数据集为例,caltech256数据集包含256类目标,30607张图像。数据集的简介可以在这里下载:http://authors.library.caltech.edu/7694/
在获取数据集之后,把数据集文件 256_ObjectCategories.tar 放在 your_mxnet_root/example/image-classification/data/ 目录下
cd ~/mxnet/example/image-classification/data/
./caltech256.sh 即可完成打包操作。
caltech数据集文件树比较简单,只有两层,分别是类别与类别包含的图像
256_ObjectCategories
----005.baseball-glove
--------005_0008.jpg
打包脚本比较简单,不熟悉shell或之前根本没用过shell也没关系,我加了些简单的注释,应用于自己的数据集时只要改改参数就可以了:
1 #!/bin/bash 2 3 # This file download the caltech 256 dataset 4 # (http://www.vision.caltech.edu/Image_Datasets/Caltech256/), and split it into 5 # the train and val rec files. 6 7 # number of images per class for training 8 IMG_TRAIN=60 9 10 # download 11 # 使用 -e 指令判断文件是否存在 12 if [ ! -e 256_ObjectCategories.tar ]; then 13 # 使用wget指令下载数据,这里也可以换作其他工具 14 wget http://www.vision.caltech.edu/Image_Datasets/Caltech256/256_ObjectCategories.tar 15 fi 16 17 # split into train and val set 18 # 解压 19 tar -xf 256_ObjectCategories.tar 20 TRAIN_DIR=caltech_256_train 21 # mkdir -p 支持创建多级目录,目录存在时跳过而不报错 22 mkdir -p ${TRAIN_DIR} 23 for i in 256_ObjectCategories/*; do 24 c=`basename $i` 25 echo "spliting $c" 26 mkdir -p ${TRAIN_DIR}/$c 27 # 使用管道,把文件夹中的jpg文件乱序,拿出前60个作为训练集 28 for j in `ls $i/*.jpg | shuf | head -n ${IMG_TRAIN}`; do 29 mv $j ${TRAIN_DIR}/$c/ 30 done 31 done 32 33 # generate lst files 34 # 获取当前文件夹 35 CUR_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 36 # 获取MXNet根目录 37 MX_DIR=${CUR_DIR}/../../../ 38 # 生成list文件 39 python ${MX_DIR}/tools/im2rec.py --list True --recursive True caltech256-train ${TRAIN_DIR}/ 40 python ${MX_DIR}/tools/im2rec.py --list True --recursive True caltech256-val 256_ObjectCategories/ 41 # 移动指令 mv 42 mv caltech256-train_train.lst caltech256-train.lst 43 # 删除指令 rm 44 rm caltech256-train_* 45 mv caltech256-val_train.lst caltech256-val.lst 46 rm caltech256-val_* 47 48 # generate rec files 49 # 生成训练文件 50 python ${MX_DIR}/tools/im2rec.py --resize 256 --quality 90 --num-thread 16 caltech256-val 256_ObjectCategories/ 51 python ${MX_DIR}/tools/im2rec.py --resize 256 --quality 90 --num-thread 16 caltech256-train ${TRAIN_DIR}/ 52 53 # clean 54 rm -rf ${TRAIN_DIR} 256_ObjectCategories/
如果您觉得这篇博客有一定帮助,打赏一下吧!