You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter Notebook图像分类代码报No such file or directory错误求助

解决图像分类代码中“No such file or directory”错误

问题根源

  1. 目录名称大小写不匹配:代码中遍历的是['Train', 'Validate'],但实际Try目录下只有train(小写t)和test目录。在Linux、macOS这类大小写敏感的系统中,Train与train会被识别为完全不同的路径,导致无法找到目标目录。
  2. 缺少指定目录:代码尝试加载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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 22:42:08