本文在Linux中 处理对象为ILSVRC2012数据集 ImageNet-1k
一、数据集下载在Linux上也可以直接用命令行进行下载
训练集 ILSVRC2012_img_train.tarwget https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_train.tar --no-check-certificate验证集 ILSVRC2012_img_val.tar
wget https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_val.tar --no-check-certificate标签映射文件 ILSVRC2012_devkit_t12.tar.gz
wget https://image-net.org/data/ILSVRC/2012/ILSVRC2012_devkit_t12.tar.gz --no-check-certificate二、解压 1.训练集
执行命令 进入该文件目录下
cd /home/data/imagenet
执行命令 将训练集解压到文件夹 train 目录下
mkdir train tar -xvf ILSVRC2012_img_train.tar -C train for x in ls train/*tar ; do fn train/ basename $x .tar ; mkdir $fn; tar -xvf $x -C $fn; rm -f $fn.tar; done
执行命令 进入 train 目录下
cd train
执行命令 查看该目录下的文件夹数量 若解压成功 则返回1000
ls -lR|grep ^d |wc -l
执行命令 查看 train 目录下所有文件 图片 的数量 若解压成功 则返回1281167
ls -lR|grep ^- |wc -l2.验证集
执行命令 进入3个文件所在的根目录
cd /home/data/imagenet
执行命令 创建解压验证集的文件夹
mkdir val
执行命令 将验证集图像解压到 val 目录下
tar xvf ILSVRC2012_img_val.tar -C ./val
此时 val 目录下是50000张图像 并没有被分类到1000个文件夹下。因此需要将验证集中的图像进行分类存放。
执行命令 解压ILSVRC2012_devkit_t12.tar.gz这个文件
tar -xzf ILSVRC2012_devkit_t12.tar.gz
该文件中记录着验证集中的图像名及其类别标签之间的映射关系。
在 ‘/home/data/imagenet’ 目录下创建 Python 脚本 假设命名为“unzip.py” 其内容如下
from scipy import io import os import shutil def move_valimg(val_dir ./val , devkit_dir ./ILSVRC2012_devkit_t12 ): move valimg to correspongding folders. val_id(start from 1) - ILSVRC_ID(start from 1) - WIND organize like: /val /n01440764 images /n01443537 images ..... # load synset, val ground truth and val images list synset io.loadmat(os.path.join(devkit_dir, data , meta.mat )) ground_truth open(os.path.join(devkit_dir, data , ILSVRC2012_validation_ground_truth.txt )) lines ground_truth.readlines() labels [int(line[:-1]) for line in lines] root, _, filenames next(os.walk(val_dir)) for filename in filenames: # val image name - ILSVRC ID - WIND val_id int(filename.split( . )[0].split( _ )[-1]) ILSVRC_ID labels[val_id-1] WIND synset[ synsets ][ILSVRC_ID-1][0][1][0] print( val_id:%d, ILSVRC_ID:%d, WIND:%s % (val_id, ILSVRC_ID, WIND)) # move val images output_dir os.path.join(root, WIND) if os.path.isdir(output_dir): pass else: os.mkdir(output_dir) shutil.move(os.path.join(root, filename), os.path.join(output_dir, filename)) if __name__ __main__ : move_valimg()
回到imagenet下 执行该文件 进行验证集分类存放进1000个文件夹
cd /home/data/imagenet
python unzip.py总结
这样就成功啦
Swin-Transformer中MSA和W-MSA模块计算复杂度推导(非常详细,最新)
12842
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv182575