load_dataset本地数据集构建

Folder-based builders 基于文件夹的构建器

有两个基于文件夹的生成器:ImageFolder 和 AudioFolder。这些是低代码方法,用于快速创建包含数千个示例的图像或语音和音频数据集。它们非常适合在扩展到更大的数据集之前快速构建计算机视觉和语音模型的原型。基于文件夹的构建器获取您的数据并自动生成数据集的特征、分割和标签。

ImageFolder 使用 Image 功能对图像文件进行解码。支持许多图像扩展格式,例如 jpg 和 png,但也支持其他格式(blp,bmp,dib,bufr,cur,pcx,dcx,dds,ps,eps,fit,fits,fli,flc,ftc,ftu,gbr,gif,grib,h5,hdf,png,apng,jp2,j2k,jpc,jpf,jpx,j2c,icns,ico,im,iim,tif,tiff,jfif,jpe,jpg,jpeg,mpg,mpeg,msp,pcd,pxr,pbm,pgm,ppm,pnm,psd,bw,rgb,rgba,sgi,ras,tga,icb,vda,vst,webp,wmf,emf,xbm,xpm)。
AudioFolder 使用 Audio 功能对音频文件进行解码。支持 wav 和 mp3 等音频扩展(aiff,au,avr,caf,flac,htk,svx,mat4,mat5,mpc2k,ogg,paf,pvf,raw,rf64,sd2,sds,ircam,voc,w64,wav,nist,wavex,wve,xi,mp3,opus)。

数据集拆分是从存储库结构生成的,标签名称是从目录名称自动推断出来的。

例如,如果您的图像数据集(与音频数据集相同)的存储方式如下:

pokemon/train/grass/bulbasaur.png
pokemon/train/fire/charmander.png
pokemon/train/water/squirtle.png

然后,这是基于文件夹的构建器生成示例的方式:
基于文件夹的构建器生成示例
通过在 load_dataset() 中指定 imagefolder 来创建图像数据集:

from datasets import load_dataset
dataset = load_dataset("imagefolder", data_dir="/path/to/pokemon")

音频数据集的创建方式相同,在 load_dataset() 中指定 audiofolder:

from datasets import load_dataset
dataset = load_dataset("audiofolder", data_dir="/path/to/folder")

有关数据集的任何其他信息(如文本字幕或转录)都可以包含在包含数据集的文件夹中的 metadata.csv 文件中。元数据文件需要有一个 file_name 列,用于将图像或音频文件链接到其相应的元数据:

From local files 从本地文件

通过指定数据文件的路径从本地文件创建数据集。使用 from_ 方法有两种方法可以创建数据集:
由于 generator 的迭代行为,from_generator() 方法是从生成器创建数据集的最节省内存的方法。当您处理可能无法放入内存的非常大的数据集时,这尤其有用,因为数据集是在磁盘上逐步生成的,然后进行内存映射。

from datasets import Dataset
def gen():
    yield {"pokemon": "bulbasaur", "type": "grass"}
    yield {"pokemon": "squirtle", "type": "water"}
ds = Dataset.from_generator(gen)
ds[0]
#{"pokemon": "bulbasaur", "type": "grass"}

基于生成器的 IterableDataset 需要使用 for 循环进行迭代,例如:

from datasets import IterableDataset
ds = IterableDataset.from_generator(gen)
for example in ds:
    print(example)
#{"pokemon": "bulbasaur", "type": "grass"}
#{"pokemon": "squirtle", "type": "water"}

from_dict() 方法是从字典创建数据集的一种简单方法:

from datasets import Dataset
ds = Dataset.from_dict({"pokemon": ["bulbasaur", "squirtle"], "type": ["grass", "water"]})
ds[0]  #{"pokemon": "bulbasaur", "type": "grass"}

要创建图像或音频数据集,请将 cast_column() 方法与 from_dict() 链接起来,并指定列和特征类型。例如,要创建音频数据集:

audio_dataset = Dataset.from_dict({"audio": ["path/to/audio_1", ..., "path/to/audio_n"]}).cast_column("audio", Audio())

后续步骤

使用加载脚本创建数据集。加载脚本是一种创建数据集的手动和代码密集型方法,在 Hugging Face 上没有得到很好的支持。尽管在极少数情况下它仍然会有所帮助。

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值