繁体   English   中英

使用tf.data.Dataset.from_generator时出现“ SystemError:没有设置异常的错误返回”

[英]“SystemError: error return without exception set” when using tf.data.Dataset.from_generator

使用tf.data.Dataset.from_generator时遇到奇怪的运行时错误。

import tensorflow as tf

def gen():
  while True:
    yield 0, 0

batch = (
  tf.data.Dataset.from_generator(
    gen, output_types=(tf.int32, tf.int32))
  .batch(8)
  .repeat()
  .make_one_shot_iterator()
  .get_next()
)

sess = tf.InteractiveSession()
sess.run(batch)

将打印这样的消息

Exception ignored in: <generator object _yield_value at 0x000001FD9ED6A7D8>
Traceback (most recent call last):
  File "C:\Users\user209974\AppData\Local\Continuum\miniconda3\envs\tf\lib\site-packages\tensorflow\python\data\util\nest.py", line 100, in _yield_value
    yield value
SystemError: error return without exception set

显然,每次调用生成器时都会在调用Session.run时在运行时引发错误。 奇怪的是,尽管抛出了此错误,但返回的值似乎是正确的。

那么,是什么导致此错误以及如何消除该错误? (由于某些原因,删除gen批处理或返回单个值会使错误消失)。

编辑

我意识到在PyCharm下以Debug模式运行时会出现这些错误。 如果我在python控制台中以脚本或PyCharm的形式运行代码,但未在Debug模式下运行,则不会打印这些消息。

好像是Pycharm问题。 解决方案是在pycharm设置中设置此环境变量:

PYDEVD_USE_FRAME_EVAL=NO

查看提供更多信息的帖子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM