当前位置: 首页 > article >正文

快速下载Imagenet数据集

最近在搞视觉-语言大模型的优化和应用,在下载相关数据集时存在问题!!!
首先推荐一个网站HyperAI超神经

可以在这个网站上找多很多相关数据集下载,可以使用aria2c加速下载,基本上是5MB的速度,也可以直接下载或者使用磁力下载

可惜我想要下载的是ILSVRC2012没有找到单独下载的链接,在看到相关大佬的文章,发现可以直接在服务器上使用wget进行下载,也可以使用wget的并行化版本mwge下载(但是具体没有详细了解),以下是我搜索得到的

使用 `mwget` 工具可以实现多线程下载,从而提高下载速度。`mwget` 是 `wget` 的一个多线程版本,可以通过以下步骤安装和使用:
 安装步骤:

     wget http://jaist.dl.sourceforge.net/project/kmphpfm/mwget/0.1/mwget_0.1.0.orig.tar.bz2
     yum install bzip2 gcc-c++ openssl-devel intltool -y
     bzip2 -d mwget_0.1.0.orig.tar.bz2
     tar -xvf mwget_0.1.0.orig.tar
     cd mwget_0.1.0.orig
     ./configure
     make
     make install

使用方法:

mwget URL

可以设置线程数,例如设置10个线程:

 mwget -n 10 URL


下面特别讲一下使用wget下载

一、数据集下载

训练集(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

二、解压

训练集

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

执行命令,查看 train 目录下所有文件(图片)的数量,若解压成功,则返回1281167:

ls -lR|grep "^-"|wc -l

验证集

执行命令,进入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()

运行脚本:

python unzip.py

特别地,这么大地文件138G,发生中断了怎么办?可以在对应文件夹下加上-c,可以在上次中断的位置继续进行


http://www.kler.cn/a/316532.html

相关文章:

  • 地址踩踏问题
  • openjdk17 从C++视角看 String的intern的jni方法JVM_InternString方法被gcc编译器连接
  • ReentrantLock底层原理、源码解析
  • 金仓数据库安装-Kingbase v9-centos
  • 在 Vue3 项目中安装和配置 Three.js
  • WebDavClient 安装和配置指南
  • Python模块和包:标准库模块(os, sys, datetime, math等)②
  • CVE-2024-2389 未经身份验证的命令注入
  • LeetCode --- 139双周赛
  • STM32篇:开发环境安装
  • 基于微信小程序的科创微应用平台设计与实现+ssm(lw+演示+源码+运行)
  • MongoDB 双活集群在运营商的实践
  • 利用mybatis拦截器完成入库加密出库解密
  • 算法之搜索--最长公共子序列LCS
  • leetcode746. 使用最小花费爬楼梯,动态规划
  • Uniapp低版本的安卓不能用解决办法
  • Qt_窗口界面QMainWindow的介绍
  • Deep Guided Learning for Fast Multi-ExposureImage Fusion
  • 对接空号检测平台可以降低成本吗
  • 动手学深度学习(pytorch)学习记录32-稠密连接网络(DenseNet)[学习记录]
  • Vue | watch监听
  • IDEA Project不显示/缺失文件
  • 手机在网状态查询接口如何用PHP进行调用?
  • AWS 管理控制台
  • Apache APISIX学习(1):介绍、docker启动
  • Java是怎么处理死锁的