使用Keras flow_from_directory函数提示‘No such file or directory’求助
解决flow_from_directory目录找不到的问题
确认参数层级:
flow_from_directory要求传入的目录直接包含所有类别子目录,比如你的数据集根目录下有cat、dog这类分类文件夹,那directory就填这个根路径,不能填到具体类别子目录里。规范路径格式:
- Windows系统用双反斜杠
\\或者原始字符串前缀r'',比如r'C:\Users\你的用户名\Desktop\数据集',避免转义字符导致路径解析错误。 - 优先用绝对路径,别用相对路径,减少路径解析的不确定性。
- Windows系统用双反斜杠
验证路径有效性:
- 打开文件管理器,直接粘贴你写的路径,确认该目录存在,且里面有各个类别子目录,子目录下有JPG图片。
- 避免路径包含空格、中文或特殊符号,尽量改成英文/数字命名。
示例代码参考:
from tensorflow.keras.preprocessing.image import ImageDataGenerator # 初始化数据生成器 datagen = ImageDataGenerator(rescale=1./255) # 传入数据集根目录路径 train_generator = datagen.flow_from_directory( r'C:\Users\你的用户名\Desktop\your_dataset', target_size=(150, 150), batch_size=32, class_mode='categorical' )避坑提醒:
- 不要把
directory设为单个类别子目录(比如...\your_dataset\cat),函数需要读取所有类别,这样会触发找不到类别的错误。 - 确认Python有该目录的访问权限,别把数据集放在系统保护文件夹(如Program Files)里。
- 不要把
内容的提问来源于stack exchange,提问作者Ivan Lopez
相关产品推荐
相关产品推荐

