“RuntimeError: Found 0 files in subfolders of ".. 关于 Pytorch 中的子文件夹的错误

MVS*_*ner 10 python jupyter-notebook pytorch

我目前基于 Window 10、Jupyter Notebook、Pytorch 1.0、Python 3.6.x。

首先,我使用此代码确认文件的正确路径:print(os.listdir('./Dataset/images/'))

我可以检查这条路径是否正确。

但我遇到了错误

运行时错误:在以下子文件夹中找到 0 个文件:./Dataset/images/ 支持的扩展名是:.jpg、.jpeg、.png、.ppm、.bmp、.pgm、.tif”

有什么事?你能提出一个解决方案吗?

我试着./dataset/1/images喜欢这种方法。但结果是一样的......

img_dir = './Dataset/images/'
img_data = torchvision.datasets.ImageFolder(os.path.join(img_dir), transforms.Compose([
            transforms.Scale(256),
            transforms.RandomResizedCrop(224),
            transforms.RandomHorizontalFlip(),
            transforms.ToTensor(),
            ]))
img_batch = data.DataLoader(img_data, batch_size=batch_size,
                               shuffle = True, drop_last=True)
Run Code Online (Sandbox Code Playgroud)

Wey*_*Shi 13

我在使用 celebA 时遇到了同样的问题,包括 200,000 张图像。正如我们所看到的,有很多图像。但是在小样本的情况下(我试了20张图片),我查了一下,是不会报错的,说明我们可以成功读取图片了。但是当数量增长时,我们应该使用其他方法。

我根据这个网站解决了这个问题。感谢QimingChen Github 解决方案

简单地说,在原文件夹中添加另一个名为 1 的文件夹(/train//>train/1/)将使我们的程序可以运行,而无需更改路径。那是因为当面对大型数据集时,图像应该在不同类别的子文件夹中进行排序。

Github 上的原始答案:

假设我将使用 ImageFolder(" /train/ ") 读取文件夹 train 中的 jpg 文件。文件结构为 /train/ -- 1.jpg -- 2.jpg -- 3.jpg

我未能加载它们,导致错误: RuntimeError: Found 0 images in subfolders of: ./data 支持的图像扩展名是:.jpg、.JPG、.jpeg、.JPEG、.png、.PNG、.ppm、.PPM ,.bmp,.bmp

我阅读了上面的解决方案并尝试了数十次。当我将结构更改为 /train/1/

-- 1.jpg -- 2.jpg -- 3.jpg

但是读入的代码仍然是——ImageFolder("/train/"),它有效。

程序似乎倾向于递归读取文件,这在某些情况下很方便。

希望这会有所帮助!!


you*_*hao 8

你能发布你的文件结构吗?在你的情况下,它应该是:

img_dir
|_class1
  |_a.jpg
  |_b.jpg
|_class2
  |_a.jpg
  |_b.jpg
...
Run Code Online (Sandbox Code Playgroud)