python - tensorflow 警告 : The graph couldn't be sorted in topological order?

标签 python tensorflow neural-network deep-learning warnings

当我运行 tensorflow 训练(使用自定义图形,闭源)时,它输出警告:

2018-10-03 14:29:24.352895: E tensorflow/core/grappler/optimizers/dependency_optimizer.cc:666] Iteration = 0, topological sort failed with message: The graph couldn't be sorted in topological order.

这是什么意思?什么可能导致此问题以及如何避免?

更新:作为记录,在我的例子中,尽管有这个警告,tensorflow 仍然可以正常工作。所以我认为这只是意味着计算图中的循环比 tensorflow 预期的要多,不一定是无限循环。我通过避免在代码中使用手动循环来解决此问题,而是使用张量操作(stack、concat、slice、reshape...)

最佳答案

A topological ordering有向图的顶点排序方式是只要有从顶点 u 到顶点 v 的边,顶点 u在排序中出现在顶点 v 之前。

这种排序对于每个有向无环图都是可能的,但对于任意图是不可能的。您的图中很可能存在某种循环,阻止排序算法成功。因此,要走的路是搜索循环并以某种方式将其删除。

例如,考虑一个非常小的图,它有两个顶点 uv,以及两条边 u -> vv -> u。没有办法按照上面给出的要求对u和v进行排序。

如果没有关于您的代码的更多信息,很难确切地说出发生了什么。

关于python - tensorflow 警告 : The graph couldn't be sorted in topological order?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52607063/

相关文章:

python - 在 Python 3 中获取未绑定(bind)方法对象的定义类

tensorflow - gcloud 作业提交预测 'can' t 解码 json' 与 --data-format=TF_RECORD

python - 带有 TensorFlow 的 Anaconda : No module named any_pb2

machine-learning - 如何为火灾探测系统创建机器学习模型?

python-3.x - 验证损失和训练损失之间的差距

java - java中的神经网络实现

while循环中的Python套接字接收数据不会停止

python - 类方法返回实例的类型注解

Python似乎将实例变量视为类变量

python - 使用语言模型 tensorflow 示例预测下一个单词