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

tf.keras.image_dataset_from_directory读取图片不全及加载差异咨询

两种数据加载方法结果不同的原因
  • 默认支持的图片扩展名不同
    tf.keras.preprocessing.image_dataset_from_directory的image_extensions参数默认仅识别 .bmp/.gif/.jpeg/.jpg/.png 格式的图片,其余格式(如.webp/.tiff)、大写后缀(如.JPG/.PNG)的图像会被直接过滤。而ImageDataGenerator.flow_from_directory默认支持的图像扩展名更广,也兼容大小写后缀,不会过滤这类文件。
  • 损坏文件的处理逻辑不同
    image_dataset_from_directory扫描文件时会提前校验图片可解码性,遇到损坏、无法正常读取的图片会直接跳过不计入总数。而flow_from_directory扫描阶段仅匹配文件名后缀,不会提前做解码校验,会把损坏图片也计入总数,仅在实际读取数据时才会抛出异常。
使用image_dataset_from_directory加载全部文件的解决方法
  1. 补充完整扩展名参数
    先确认你的数据集中所有图片的后缀,将全部用到的扩展名传入image_extensions参数,示例修改后的代码如下:
train_dataset = tf.keras.preprocessing.image_dataset_from_directory(
    directory=("e:/Desktop/IT FYP/Dataset/train"),
    labels="inferred",
    label_mode="categorical",
    image_size=(350, 350),
    seed=123,
    subset=None,
    interpolation="bilinear",
    follow_links=False,
    # 新增参数,补充数据集用到的所有图片扩展名、大写后缀
    image_extensions=['.bmp', '.gif', '.jpeg', '.jpg', '.png', '.webp', '.tiff', '.tif', '.JPG', '.PNG']
)
  1. 清理损坏图片
    如果补充扩展名后仍未匹配到全部文件,说明数据集中存在损坏无法解码的图片,你可以遍历目录逐个校验图片完整性,删除或修复损坏文件后再运行加载代码即可。

内容的提问来源于stack exchange,提问作者黃兆榮

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:39:03