Jupyter Notebook图像分类代码报No such file or directory错误求助
解决图像分类代码中“No such file or directory”错误
问题根源
- 目录名称大小写不匹配:代码中遍历的是
['Train', 'Validate'],但实际Try目录下只有train(小写t)和test目录。在Linux、macOS这类大小写敏感的系统中,Train与train会被识别为完全不同的路径,导致无法找到目标目录。 - 缺少指定目录:代码尝试加载
Validate子目录,但你的实际目录结构中并不存在该目录,这是报错的直接原因。
修正后的代码
import os import torch from torchvision import datasets, transforms # 先定义数据转换(根据你的需求调整) data_transforms = { 'train': transforms.Compose([ transforms.RandomResizedCrop(224), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ]), 'test': transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ]), } root_dir = 'Try' # 改为实际存在的目录名称:train和test datasets = {x: datasets.ImageFolder(root = os.path.join(root_dir, x), transform = data_transforms[x]) for x in ['train', 'test']} dataloaders = {x: torch.utils.data.DataLoader(datasets[x], batch_size=4, shuffle=True, num_workers=0) for x in ['train', 'test']} sizes = {x: len(datasets[x]) for x in ['train', 'test']} class_names = datasets['train'].classes device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
额外验证步骤
如果仍有疑问,可在代码前添加以下代码,打印并确认路径有效性:
for x in ['train', 'test']: path = os.path.join(root_dir, x) print(f"路径: {path},是否存在: {os.path.isdir(path)}")
内容的提问来源于stack exchange,提问作者Murad Ali
相关产品推荐
相关产品推荐

