【发布时间】:2019-06-06 02:46:47
【问题描述】:
我在谷歌云计算实例上运行 python 脚本时遇到了一些问题,python 3.6,tensorflow 1.13.1。我看到有几个人在stackoverflow的计算图中遇到了类似的循环问题。但没有一个真正找到它的罪魁祸首。而且我观察到一些有趣的事情,所以也许有经验的人可以弄清楚。
错误信息是这样的:
2019-05-28 22:28:57.747339: E tensorflow/core/grappler/optimizers/dependency_optimizer.cc:704] Iteration = 0, topological sort failed with message: The graph couldn't be sorted in topological order.
2019-05-28 22:28:57.754195: E tensorflow/core/grappler/optimizers/dependency_optimizer.cc:704] Iteration = 1, topological sort failed with message: The graph couldn't be sorted in topological order.
我的 train.py 脚本如下所示:
import A,B,C
...
def main():
....
if __name__ == '__main__':
main()
所以我将展示我运行此脚本的两种方法:
版本 1:
在终端中,
python3 train.py
这给了我上面所说的错误。当我只使用 CPU 时,我注意到它会抛出类似 failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected 的东西。所以我将 GPU 添加到我的实例中,但计算图中的循环仍然存在。
版本 2(这是发生奇怪事情的地方):
我只是简单地将main 中的代码复制到 jupyter notebook 并在那里运行,没有任何改变。然后突然就没有错误了。
我真的不知道引擎盖下发生了什么。我只是注意到运行开始时的消息在两种不同的代码运行方式之间是不一样的。
如果你遇到同样的问题,复制到 jupyter notebook 可能会直接有帮助。如果有人有任何想法可能导致这种情况,我真的很想分享更多信息。谢谢!
【问题讨论】:
标签: tensorflow python-3.6