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

使用tf.keras.utils.image_dataset_from_directory创建图像数据集时出现OUT_OF_RANGE日志的原因咨询

tf.keras.utils.image_dataset_from_directory创建图像数据集时出现OUT_OF_RANGE日志的原因咨询

嗨,这个问题我之前也碰到过,别慌——那个OUT_OF_RANGE: End of sequence其实只是TensorFlow的INFO级日志,不是真的错误或者需要修复的警告,属于正常的内部提示,我来给你拆解清楚:

  • 触发日志的原因
    你的代码里有一行len(list(dataset.as_numpy_iterator())),这行代码会把整个数据集的所有batch完整遍历一遍(相当于把数据集迭代器耗尽)。当TensorFlow的数据集迭代器走到最后一个batch之后,会抛出OUT_OF_RANGE状态来表示“没有更多数据可以迭代了”,虽然这个状态会被Python的迭代逻辑自动处理掉,但TensorFlow会把这个内部过程以INFO日志的形式打印出来。

  • 为什么数据集功能完全正常?
    放心,tf.data.Dataset本身是支持重复迭代的,哪怕你用as_numpy_iterator()遍历过一次,后续调用dataset.take(1)依然能重新生成迭代器获取数据,所以你能正常打印图像和标签的形状,数据集大小的计算也是准确的。这个日志只是在告诉你“刚才的那次全量迭代已经走到尽头了”,完全不会影响数据集的后续使用。

  • 如果想屏蔽这个日志该怎么做?
    要是觉得这类INFO日志太烦人,可以在代码开头调整TensorFlow的日志级别,只显示警告及以上的内容:

    import tensorflow as tf
    tf.get_logger().setLevel('WARN')
    

    你也可以在运行脚本前通过环境变量设置:

    export TF_CPP_MIN_LOG_LEVEL=2
    

    这样就能直接屏蔽掉INFO和DEBUG级别的日志输出了。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 11:19:37