Предупреждение Tensorflow: график не может быть отсортирован в топологическом порядке? - PullRequest
0 голосов
/ 02 октября 2018

Когда я запускаю tensorflow обучение (с пользовательским графиком, с закрытым исходным кодом), выводится предупреждение:

2018-10-03 14: 29: 24.352895: E tenorflow / core /grappler / optimizer / dependency_optimizer.cc: 666] Итерация = 0, топологическая сортировка завершилась неудачно с сообщением: график не может быть отсортирован в топологическом порядке.

Что это значит?Что может вызвать эту проблему и как ее избежать?

Обновление: Для записи, в моем случае, tensorflow по-прежнему работает правильно, несмотря на это предупреждение.Так что я думаю, это просто означает, что в графе вычислений больше циклов, чем ожидает tensorflow, не обязательно бесконечный цикл.Я исправил это, избегая использования ручного цикла в коде, но вместо этого используя тензорную манипуляцию (stack, concat, slice, reshape...)

1 Ответ

0 голосов
/ 02 октября 2018

A топологическое упорядочение ориентированного графа является упорядочением его вершин таким образом, что всякий раз, когда существует ребро от вершины u до вершины v, вершина u предшествует вершинеv в упорядочении.

Этот вид упорядочения возможен для каждого направленного ациклического графа, но не для произвольных графов.Скорее всего, в вашем графике есть какой-то цикл, который препятствует успешной работе алгоритма сортировки.Таким образом, путь состоит в том, чтобы искать цикл и каким-то образом удалять его.

В качестве примера рассмотрим очень маленький граф с двумя вершинами u и v и двумя ребрами u -> v и v -> u.Нет способа отсортировать u и v в соответствии с требованиями, приведенными выше.

Без дополнительной информации о вашем коде трудно точно сказать, что происходит.

...