从本地路径加载Hugging Face数据集报错,求解决方案
本地加载Dahoas/rm-static数据集报错的解决办法
以Hugging Face上的Dahoas/rm-static数据集为例,在线加载可直接运行以下代码:
from datasets import load_dataset dataset = load_dataset("Dahoas/rm-static")
若已按照Hugging Face「Files and versions」标签页的结构下载文件,本地文件夹结构如下:
rm-static ├── data │ ├── test-00000-of-00001-bf4c733542e35fcb.parquet │ └── train-00000-of-00001-2a1df75c6bce91ab.parquet ├── .gitattributes ├── README.md └── dataset_infos.json
运行以下本地加载代码时会出现报错:
dataset_path = "/data/coco/dataset/Dahoas/rm-static" tmp_dataset = load_dataset(dataset_path)
报错信息:
FileNotFoundError: No (supported) data files or dataset script found in /data/coco/dataset/Dahoas/rm-static.
问题原因
load_dataset在本地无数据集脚本(如dataset.py)的情况下,默认只会扫描根目录下的数据文件,不会自动遍历子目录,因此无法识别data文件夹内的parquet文件。
解决方法
明确指定数据文件的路径即可,有两种实现方式:
方式1:指定具体文件名
在data_files参数中直接定义训练集和测试集的完整相对路径:
from datasets import load_dataset dataset_path = "/data/coco/dataset/Dahoas/rm-static" tmp_dataset = load_dataset( dataset_path, data_files={ "train": "data/train-00000-of-00001-2a1df75c6bce91ab.parquet", "test": "data/test-00000-of-00001-bf4c733542e35fcb.parquet" } )
方式2:使用通配符匹配
如果文件名有统一命名规律,用通配符可以更简洁地匹配文件:
from datasets import load_dataset dataset_path = "/data/coco/dataset/Dahoas/rm-static" tmp_dataset = load_dataset( dataset_path, data_files={ "train": "data/train-*.parquet", "test": "data/test-*.parquet" } )
运行上述任意一种代码,即可正常加载本地的Dahoas/rm-static数据集。
内容的提问来源于stack exchange,提问作者4daJKong
相关产品推荐
相关产品推荐

