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

使用Keras训练CNN时触发OSError:无法识别图片文件求助

解决Keras fit_generator报错“无法识别图像文件”但文件不存在的问题

这问题我之前帮人排查过好几次,核心原因几乎都是图像生成器的文件缓存残留,或者旧的数据集索引在捣乱!给你几个靠谱的解决步骤:

  • 禁用ImageDataGenerator的缓存功能
    你用的flow_from_directory默认会缓存文件列表到本地,哪怕你删掉了目标文件,缓存里还存着旧路径。修改生成器代码,加上cache_subdir=None参数,强制它每次都重新扫描文件夹:

    train_batches = ImageDataGenerator().flow_from_directory(
        'D:/PDF/Train',
        target_size=(224,224),
        classes=['factors','notfactors'],
        batch_size=你的批量大小,
        cache_subdir=None  # 关键:关闭缓存
    )
    
  • 清理Keras默认缓存文件夹
    如果上面的方法没用,手动删掉Keras的图像缓存目录。Windows系统一般在C:\Users\你的用户名\.keras\datasets\下面,找到和你数据集相关的缓存文件夹直接删除就行。

  • 验证文件夹真实文件列表
    有时候Windows的隐藏文件或者文件名大小写问题会误导你,打开命令提示符,运行dir D:\PDF\Train\notfactors /a(/a显示所有文件,包括隐藏的),确认这个notfactors59.jpg真的不存在。如果真的没找到,那肯定是缓存的锅。

  • 检查代码中的数据集索引缓存
    如果你之前手动保存过文件列表(比如用pickle存过),记得删掉这些缓存文件,让代码重新生成新的文件索引。

内容的提问来源于stack exchange,提问作者Jordan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:18:50