提问者:小点点

使用tf时的“SystemError:错误返回,无异常设置”。数据数据集。从_发生器


当使用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

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

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

编辑

我意识到这些错误在PyCharm下的调试模式下运行时会出现。如果我在python控制台中运行代码,作为脚本,或者在PyCharm中运行代码,但不是在调试模式下,这些消息不会打印。


共1个答案

匿名用户

这看起来像是一个皮魅力问题。解决方案是设置这个环境变量py魅力设置:

PYDEVD_USE_FRAME_EVAL=NO

查看这篇提供更多信息的帖子