本文在Linux中 处理对象为ILSVRC2012数据集 ImageNet-1k

一、数据集下载

ImageNet官网链接

在Linux上也可以直接用命令行进行下载

训练集 ILSVRC2012_img_train.tar
wget 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 -l
2.验证集

执行命令 进入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、付费专栏及课程。

更多文章请关注《万象专栏》