首页 > 其他分享 >huggingface官网下载并处理ImageNet2012数据集

huggingface官网下载并处理ImageNet2012数据集

时间:2024-06-23 19:29:51浏览次数:28  
标签:target ImageNet2012 huggingface filename folder 官网 os dir

文章目录


ImageNet数据集可以直接从ImageNet官方网站获取数据,但通常需要注册并遵守使用协议。另外,由于数据集较大,往往下载需要花费大量的时间空间,而通过huggingface下载数据集的方法不仅速度相对较快,而且能够直接从服务器远程进行下载。其中在huggingface官网下载模型或数据集的方法可以参考我之前的文章:huggingface学习 | 云服务器使用hf_hub_download下载huggingface上的模型文件

一、下载imagenet2012数据集

huggingface官网上的imagenet2012数据集:https://huggingface.co/datasets/ILSVRC/imagenet-1k
在这里插入图片描述
可以看到这个数据集里包括训练集、验证集和测试集的所有数据,其中训练集分成了四个压缩包:
在这里插入图片描述

运行下面代码即可将训练集下载到local_dir指定的文件夹中:

import os
# 注意os.environ得在import huggingface库相关语句之前执行。
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
from huggingface_hub import hf_hub_download

def download_model(repo_id,filename,subfolder):
    local_dir = r'imagenet2012'
    print(f'开始下载\n仓库:{repo_id}\n大模型:{filename}\n如超时不用管,会自定继续下载,直至完成。中途中断,再次运行将继续下载。')
    while True:   
        try:
            hf_hub_download(local_dir=local_dir,
            repo_id=repo_id,
            token='你的huggingface用户信息',
            filename=filename,
            subfolder=subfolder,
            repo_type='dataset',
            local_dir_use_symlinks=False,
            resume_download=True,
            etag_timeout=100
            )
        except Exception as e :
            print(e)
        else:
            print(f'下载完成,大模型保存在:{local_dir}\{filename}')
            break
            
if __name__ == '__main__':
    repo_id ='ILSVRC/imagenet-1k'
    filenames1 = ['train_images_0.tar.gz','train_images_1.tar.gz','train_images_2.tar.gz','train_images_3.tar.gz','train_images_4.tar.gz']
    subfolder = 'data'
    for filename in filenames1:
        download_model(repo_id,filename,subfolder)

二、转换imagenet数据集格式

将上面下载得到的压缩包解压缩即可得到所有的图片,即一个文件夹里包含所有的图片。然而在进行深度学习任务时,往往需要将每张图片与其类别对应起来。因此需要转换为以下格式:
在这里插入图片描述

使用以下代码即可将文件夹转换为上述格式:

import os
import shutil

def split_by_nth_separator(string, separator, n):
    parts = string.split(separator)
    return separator.join(parts[:n]), separator.join(parts[n:])

def move_and_rename_images(source_dir, target_dir):
    # 遍历源文件夹中的文件
    for filename in os.listdir(source_dir):
        source_file = os.path.join(source_dir, filename)
        # 检查是否为文件且为图片文件
        if os.path.isfile(source_file) and filename.lower().endswith('.jpeg'):
            print(f'filename={filename}')
            folder_name=split_by_nth_separator(filename,'_',2)[1].split('.')[0]
            new_filename=split_by_nth_separator(filename,'_',2)[0]+'.JPEG'
            target_folder=os.path.join(target_dir,folder_name)
            print(f'folder_name={folder_name}',f'new_filename={new_filename}',f'target_folder={target_folder}',sep='\n')
            # 确保目标文件夹存在
            if not os.path.exists(target_folder):
                os.makedirs(target_folder)
            # 构造目标文件路径及新文件名
            target_file = os.path.join(target_folder, new_filename)
            # 移动文件并重命名
            shutil.move(source_file, target_file)
            print(f"Moved and renamed: {source_file} -> {target_file}")


# 指定源文件夹和目标文件夹路径
source_directory = 'imagenet2012/train_1' #图片数据所在文件夹
target_directory = 'imagenet2012/train' #处理之后的文件夹

# 调用函数
move_and_rename_images(source_directory, target_directory)

标签:target,ImageNet2012,huggingface,filename,folder,官网,os,dir
From: https://blog.csdn.net/weixin_47748259/article/details/139831431

相关文章

  • [本科项目实训] HuggingFace简介与Git lfs模型下载
    HuggingFace[1]HuggingFace是一个人工智能领域尤其是自然语言处理领域的开源平台,包含数据集、模型、文档、解决方案等内容的分享。由于LLM的参数量较大,往往将参数文件托管到该平台并使用transformers[3]库进行模型调用。模型下载由于项目要求模型本地运行,因而需要下载模......
  • 参考Python官网学习Python
    参考Python官网学习PythonPython教程—Python3.12.4文档Python:Python解释器易于扩展,使用C或C++(或其他C能调用的语言)即可为Python扩展新功能和数据类型。Python也可用作定制软件中的扩展程序语言。-------------------------------------------------------------......
  • Maven 官网 查找&下载 jar包 & pom引用
    问题描述在我们在开发过程中,经常遇到程序中需要引用的某个版本jar包,但是在公司的私有仓库下载不到的情况。遇到这种情况,该怎么办呢?很多人应该首选百度搜索吧。(当然可以,但是,不一定能很快找到自己想要的某个版本的jar包)这里给出一个简洁,方便查找的方案。 完美方案在Maven......
  • 学生个人html静态网页制作 基于HTML+CSS+JavaScript+jquery仿苏宁易购官网商城模板
    ......
  • 初识Python————Python“三剑客“(适用初学者,了解概述,有官网)
        Python三剑客指的是Pandas、Numpy和Matplotilb这三个库,它们在数据分析领域扮演着核心角色。它们各自拥有独特的功能和优势,结合使用可以极大地提高数据分析的效率和准确性。一、NumpyNumPy是使用Python进行科学计算的基础包。它包含如下的内容:一个强大的N维数组......
  • HTML旅游网页设计制作 DW旅游网站官网滚动网页 DIV旅游风景介绍网页设计与实现
    ......
  • Huggingface使用
    模型下载借助gitlfs下载该方式会将模型整体目录下载到当前目录下$gitlfsinstall$gitclonehttps://huggingface.co/THUDM/chatglm3-6b$gitclonehttps://huggingface.co/BAAI/bge-large-zh代码直接下载需要开启代理jupyter有可能不支持,需要切换到终端里面执行......
  • 科技改变生活,自动化获取校园官网活动
    此项目相当于全自动点击代替人工而已,代码很简单,请勿商业以及违法乱纪,没必要,这么几个仔不值得哈,每次看见群里面代乐跑与墙上发布代理签到签退就觉得,嗯,,,嗯,包括签到签退人工也可以拿到,自己分析一下网址即可,但是这样属于违法乱纪了,不公平了,处分警告,科技一定要用在合理合规的地方。希望......
  • Exness官网注册开户模拟全面指南
    Exness是一家享有盛誉的在线外汇和差价合约(CFD)经纪商,因其卓越的交易条件和多样化的金融工具而备受全球投资者的青睐。对于新手和经验丰富的交易者来说,了解如何在Exness平台注册开户是至关重要的。本文将详细介绍Exness注册开户的步骤及注意事项,帮助您顺利开启交易之旅。第一步......
  • FlinkSQL 运行官网的 filesystem SQL 连接器例子出错:Cannot discover a connector usi
    我的例子程序是仿照官网例子写的:我的程序:packagecom.xxx.demo;importorg.apache.flink.streaming.api.datastream.DataStream;importorg.apache.flink.streaming.api.environment.StreamExecutionEnvironment;importorg.apache.flink.table.api.bridge.java.StreamTabl......