首页IT科技linux 解压包(linux下载/解压ImageNet-1k数据集)

linux 解压包(linux下载/解压ImageNet-1k数据集)

时间2025-08-02 17:49:45分类IT科技浏览9589
导读:前言 本文在Linux中,处理对象为ILSVRC2012数据集(ImageNet-1k)...

前言

本文在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

总结

这样就成功啦!!

声明:本站所有文章             ,如无特殊说明或标注                           ,均为本站原创发布             。任何个人或组织               ,在未征得本站同意时         ,禁止复制        、盗用               、采集                            、发布本站内容到任何网站            、书籍等各类媒体平台                           。如若本站内容侵犯了原著者的合法权益                          ,可联系我们进行处理               。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
什么网站可以挣钱(什么 网战可以赚钱吗-互联网时代高利润赚钱快的项目有什么?) 大学生赚取生活费方法(如何赚生活费-大学里怎么赚到生活费?这里有你想知道的……)