当我运行 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
之前。
这种排序对于每个有向无环图都是可能的,但对于任意图是不可能的。您的图中很可能存在某种循环,阻止排序算法成功。因此,要走的路是搜索循环并以某种方式将其删除。
例如,考虑一个非常小的图,它有两个顶点 u
和 v
,以及两条边 u -> v
和v -> u
。没有办法按照上面给出的要求对u和v进行排序。
如果没有关于您的代码的更多信息,很难确切地说出发生了什么。
关于python - tensorflow 警告 : The graph couldn't be sorted in topological order?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52607063/