如何解决pytorch torchvision.datasets.ImageFolder FileNotFoundError:找不到类 .ipynb_checkpoints 的有效文件
尝试在 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 仍然无法访问它们。
解决方法
我在使用类似 IPython notebook 的工具时遇到了同样的问题。
首先请检查您的 dataset_path
下是否有任何隐藏文件。如果您在 Linux 环境下使用 ls -a
。
发生在我身上的情况是我发现了一个名为 .ipynb_checkpoints
的隐藏文件,它与图像类子文件夹平行。我认为该文件会对 PyTorch 数据集造成混淆。我确定它没有用,所以我干脆删除了它。然后数据集工作正常。
或者,如果您只想忽略该文件,您也可以尝试 this。
,image文件夹中的文件需要放在每个类的子文件夹中,像这样:
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
目录中的文件是以这种方式组织的吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。