Tensorflow迭代器错误超出范围:初始化全局变量时,序列结束

问题描述

我有一段tensorflow代码由于一个非常令人困惑的原因而失败了。当我创建一个迭代器时,它会正常创建并且运行良好,调用iterator.get_next()可以完美地工作并返回我需要的东西。 但是,当需要初始化所有其他变量时,迭代器将中断。 从此代码

    print("checking iterator before run",model.iterator)
    sess.run(model.iterator.initializer)
    print("finished initializing the iterator")
    try:
        print("\n in progressive iterator has next",model.iterator.get_next())
    except:
        print("\n iterator doesn't have a next\n")
    sess.run(tf.compat.v1.global_variables_initializer())
    print("finished initializing all variables")

我得到以下输出

在运行之前检查迭代器 完成初始化迭代器

在渐进式迭代器中具有next() -------------------------------------------------- ------------------------- OutOfRangeError追踪(最近的呼叫 最后)

我将在此处复制回溯的最重要部分:

OutOfRangeError:找到2个根本错误。 (0)超出范围:序列结束 [[节点输入/输入(在/somefile.py:104处定义)]] [[Inputs / inputs / _1]] (1)超出范围:序列结束 [[节点输入/输入(在/somefile.py:104处定义)]]

我在其中定义迭代器的文件行104是哪里,而回溯将我引到引起错误的这一行:

返回self.iterator.get_next(name ='inputs')

在定义迭代器时会调用哪个,但是我们在调用成功打印的print语句之前就已对其进行了定义,因此该行似乎已成功运行。 关于sess.run(tf.compat.v1.global_variables_initializer())是什么引起了此错误?有人看过这个问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)