我正在使用格式的自定义数据集
folder
│
│
└--train
└--──class1
| │ file011
| │ file012
|
|
└───--class2
│ file021
│ file022
└--val
└--──class1
| │ file011
| │ file012
|
|
└───--class2
│ file021
│ file022
尝试加载数据集时
data_dir = r'PATH_TO_DATA/train'
dataset = datasets.ImageFolder(data_dir, ...)
FileNotFoundError: Found no valid file for the classes Cat, Deer, Dog, Human. Supported extensions are: .jpg, .jpeg, .png, .ppm, .bmp, .pgm, .tif, .tiff, .webp
我发现的唯一类似的问题是这里,但在他们的情况下,似乎有一个.ipynb_checkpoints
文件导致了这个问题。这里的情况似乎并非如此。
我还检查了隐藏文件,并确保扩展名可以接受。
编辑:我没有意识到的一条重要信息是问题似乎就是问题。我正在使用Rclone在远程主机上托管这些数据,安装我的onedrive以访问数据。当直接访问数据时,数据集读取得很好。ImageFolder通过远程访问数据似乎比其他任何事情都更重要。
分解问题的一种方法是用pillow打开一个文件。
import torch
import torchvision.transforms.funcional as TF
from PIL import Image
img = Image.open('PATH_TO_DATA/train/class1/file011')
img = TF.pil_to_tensor(img)
print(f'[DEBUG] img: {img.shape}, {img.min()}, {img.max()}')