【问题标题】:pytorch torchvision.datasets.ImageFolder FileNotFoundError: Found no valid file for the classes .ipynb_checkpointspytorch torchvision.datasets.ImageFolder FileNotFoundError:找不到类 .ipynb_checkpoints 的有效文件
【发布时间】:2021-09-14 15:32:42
【问题描述】:

尝试在 Colab 中使用 pytorch torch.datasets.ImageFolder 加载训练数据。

transform = transforms.Compose([transforms.Resize(400),
                                transforms.ToTensor()])
dataset_path = 'ss/'
dataset = datasets.ImageFolder(root=dataset_path, transform=transform)
dataloader = torch.utils.data.DataLoader(dataset, batch_size=20)

我遇到了以下错误:

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-27-7abcc1f434b1> in <module>()
      2                                 transforms.ToTensor()])
      3 dataset_path = 'ss/'
----> 4 dataset = datasets.ImageFolder(root=dataset_path, transform=transform)
      5 dataloader = torch.utils.data.DataLoader(dataset, batch_size=20)

3 frames
/usr/local/lib/python3.7/dist-packages/torchvision/datasets/folder.py in make_dataset(directory, class_to_idx, extensions, is_valid_file)
    100         if extensions is not None:
    101             msg += f"Supported extensions are: {', '.join(extensions)}"
--> 102         raise FileNotFoundError(msg)
    103 
    104     return instances

FileNotFoundError: Found no valid file for the classes .ipynb_checkpoints. Supported extensions are: .jpg, .jpeg, .png, .ppm, .bmp, .pgm, .tif, .tiff, .webp

我的数据集文件夹包含一个子文件夹,其中包含许多 png 格式的训练图像,但 ImageFolder 仍然无法访问它们。

【问题讨论】:

    标签: machine-learning computer-vision pytorch torchvision pytorch-dataloader


    【解决方案1】:

    我在使用类似 IPython notebook 的工具时遇到了同样的问题。

    首先请检查您的dataset_path下是否有隐藏文件。如果您在 Linux 环境下,请使用ls -a

    发生在我身上的情况是我发现了一个名为.ipynb_checkpoints 的隐藏文件,它与图像类子文件夹平行放置。我认为该文件会对 PyTorch 数据集造成混淆。我确定它没有用,所以我只是删除了它。然后数据集就可以正常工作了。

    或者,如果您想简单地忽略该文件,您也可以尝试this

    【讨论】:

    • 它在 Colab 中。我不知道我们是否可以访问 Colab 中的隐藏文件,但我一定会尝试。
    【解决方案2】:

    图像文件夹中的文件需要放在每个类的子文件夹中,像这样:

    root/dog/xxx.png
    root/dog/xxy.png
    root/dog/[...]/xxz.png
    
    root/cat/123.png
    root/cat/nsdf3.png
    root/cat/[...]/asd932_.png
    

    https://pytorch.org/vision/stable/datasets.html#torchvision.datasets.ImageFolder

    ss 目录中的文件是否以这种方式组织?

    【讨论】:

    • 是的,我的图像在数据集路径的子文件夹中
    • 我猜问题出在笔记本检查点Found no valid file for the classes .ipynb_checkpoints.
    【解决方案3】:

    1- 图像文件夹中的文件需要放在每个类的子文件夹中(如 Sergii Dymchenko 所说)

    2-使用google colab时放绝对路径

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    【解决方案4】:

    google colaboratory 的解决方案:
    创建目录时,coollaboratory 还会在其中创建 .ipynb_checkpoints。
    要解决此问题,只需将其从包含图像目录的文件夹中删除(即从 train 文件夹中删除)即可。你需要运行:

    !rm -R test/train/.ipynb_checkpoints
    !ls test/train/ -a   #to make sure that the deletion has occurred
    

    test/train/ 是我的数据集文件夹路径

    【讨论】:

      猜你喜欢
      • 2019-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多