在使用自定义数据集训练Stable Diffustion的时候,根据Datasets文档 创建了数据集文件夹,在运行测试代码的时候报错
from datasets import load_dataset
ds = load_dataset('imagefolder', data_files='/xxxxx')
ds["train"][0]
#>>>FileNotFoundError: Unable to find 'xxxxx' at /
检查目录数据格式,和demo保持一致
folder/train/metadata.jsonl
folder/train/0001.png
folder/train/0002.png
folder/train/0003.png
检查源码发现,源码使用了fs.glob
进行了data_files
那一层文件夹的遍历,如果需要多级文件夹遍历需要传入一个glob表达式,也就是在路径后面加**
glob_iter = [PurePath(filepath) for filepath in fs.glob(pattern) if fs.isfile(filepath)]
将代码改为
from datasets import load_dataset
ds = load_dataset('imagefolder', data_files='/xxxxx/**')
ds["train"][0]
成功解决