无法迭代tf.data.Datas.数据

2024-10-02 14:16:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是tensorflow.data.datasettensorflow的api。但是我需要动态创建数据集,过滤掉其他数据集中的元素。虽然训练进行得很顺利,我可以迭代训练集和开发集,但当我用刚用过滤器创建的新数据集重新初始化迭代器时,我收到以下异常:

tensorflow.python.framework.errors_impl.NotFoundError: Function tf_predicate_5HKZIzWZBv8 is not defined.

我使用以下函数从数据集创建初始化器:

^{pr2}$

在哪里自迭代器定义如下:

self.iterator = tf.data.Iterator.from_structure(ds_types, ds_shapes)

你们知道为什么会这样吗?请注意,如果我在创建会话后调用make\u初始值设定项,运行数据集,然后创建新的初始值设定项,就会发生这种情况。如果在创建之后我还重新创建了会话,那么一切都正常(除了所有变量都必须重新初始化)


Tags: 数据api元素过滤器datatftensorflowds
1条回答
网友
1楼 · 发布于 2024-10-02 14:16:19

我找到了解决方案,我将与大家分享,以防有人遇到这个问题。问题是,当我在初始化会话后定义一个新的数据集时,它没有我为新数据集添加的新操作(在本例中,每次创建新数据集时都使用新筛选器),这就是会话找不到该操作的原因。为了克服这个问题,我在初始化会话之前定义了所有需要使用的数据集,并使用了一个过滤器,它将占位符作为输入,这样每次在迭代器初始化时,我都会使用相同的过滤器,并使用正确的值。在

相关问题 更多 >

    热门问题