欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

TensorFlow 解决OutOfRangeError: End of sequence错误

程序员文章站 2024-03-18 11:08:40
...

1 、OutOfRangeError: End of sequence错误:

比如代码最后执行部分为:

with tf.Session() as session:
    train(session, train_X, train_y)
    run_eval(session, test_X, test_y)

就有可能会报出这样的错误,这种行为是正常的。来自Tensorflow文档:

如果迭代器到达数据集的末端,则执行iterator .get_next()操作将引发tf.errors.OutOfRangeError。在此之后,迭代器将处于不可用的状态,如果您想进一步使用它,则必须再次初始化它。

这时候就应该让他结束此次的train 或者test等,网上给出的解决方式为,捕捉到错误,即表示迭代结束,可以结束了:

with tf.Session() as session:
    try:
        train(session, train_X, train_y)
        run_eval(session, test_X, test_y)
    except tf.errors.OutOfRangeError:
        pass  # 或者  print("End of dataset") 说明迭代已经结束了

参见:https://*.com/questions/53930242/how-to-fix-a-outofrangeerror-end-of-sequence-error-when-training-a-cnn-with-t?rq=1