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

使用DataLoader.from_folder加载图片时出现‘Image size is zero’错误的原因咨询

排查ValueError: Image size is zero的常见原因及解决方法

嘿,这个报错我之前处理过好几次,虽然你说文件夹里有3张JPG,但还是有几个常见的坑会触发这个问题,咱们一步步来排查:

可能的原因及解决方案

  • 图片文件本身损坏或为空
    有些JPG文件看起来存在,但实际是0字节的空文件,或者文件头损坏导致TensorFlow无法解析出图片尺寸。你可以先右键查看每张图片的文件大小,如果有显示0字节的,那肯定是损坏了,替换成正常的图片就行。另外也可以用系统自带的图片查看器打开每张图,确认能正常显示——如果打不开,那就是文件本身的问题。

  • 隐藏文件干扰
    比如Mac系统会自动生成.DS_Store文件,Windows有Thumbs.db,这些文件不是图片,但可能会被DataLoader.from_folder当成图片文件去读取。因为它们不是有效的图片格式,读取时就会返回“尺寸为零”的错误。你可以显示文件夹里的隐藏文件,把这些非图片文件删掉,再重新加载试试。

  • 路径解析问题
    有时候你以为image_path指向的是目标文件夹,但实际可能因为相对路径的问题,指向了一个空的文件夹或者错误的路径。你可以先打印出路径的绝对路径来验证:

    import os
    print(os.path.abspath(image_path))
    

    然后去文件系统里核对这个路径下是不是真的有那3张JPG,避免因为拼写错误、当前工作目录不对导致加载空目录。

  • 图片格式不匹配(后缀名误导)
    有些文件后缀是.jpg,但实际是PNG、GIF甚至其他格式,或者是用错误的方式修改了后缀名。TensorFlow的解码函数无法正确解析这类文件,就会返回尺寸为零的错误。你可以尝试手动加载其中一张图片来测试:

    import tensorflow as tf
    import os
    test_img_path = os.path.join(image_path, "其中一张图片的文件名.jpg")
    try:
        img_raw = tf.io.read_file(test_img_path)
        img = tf.image.decode_jpeg(img_raw, channels=3)
        print("图片尺寸:", img.shape)
    except Exception as e:
        print("加载出错:", e)
    

    如果这一步报错,就说明这张图片的实际格式和后缀不匹配,需要转换成正确的JPG格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 18:49:04