При работе с глобальным графиком по умолчанию можно удалить узлы после их добавления или, альтернативно, к reset по умолчанию для пустого столбца? При интерактивной работе с TF в IPython мне приходится повторно перезапускать ядро. Я хотел бы, если возможно, экспериментировать с графиками.
Удалить узлы из графика или reset весь график по умолчанию
Ответ 1
Обновление 11/2/2016
tf.reset_default_graph()
Старый материал
Там reset_default_graph
, но не является частью общедоступного API (я думаю, это должно быть, кто-то хочет записать вопрос на GitHub?)
Моя работа вокруг reset заключается в следующем:
from tensorflow.python.framework import ops
ops.reset_default_graph()
sess = tf.InteractiveSession()
Ответ 2
По умолчанию сеанс создается вокруг графика по умолчанию. Чтобы избежать оставления мертвых узлов в сеансе, вам нужно либо управлять графиком по умолчанию, либо использовать явный график.
-
Чтобы очистить график по умолчанию, вы можете использовать функцию tf.reset_default_graph.
tf.reset_default_graph() sess = tf.InteractiveSession()
-
Вы также можете явно построить график и не использовать стандартный. Если вы используете обычный
Session
, вам нужно будет полностью создать график перед конструированием сеанса. ДляInteractiveSession
вы можете просто объявить граф и использовать его в качестве контекста для объявления дальнейших изменений:g = tf.Graph() sess = tf.InteractiveSession(graph=g) with g.asdefault(): # Put variable declaration and other tf operation # in the graph context .... b = tf.matmul(A, x) .... sess.run([b], ...)
EDIT: для последних версий tensorflow
(1.0+) правильная функция g.as_default
.
Ответ 3
Ячейки ноутбуков IPython/Jupyter сохраняют состояние между прогонами ячейки.
Создайте собственный график:
def main():
# Define your model
data = tf.placeholder(...)
model = ...
with tf.Graph().as_default():
main()
После запуска граф очищается.
Ответ 4
Не уверен, столкнулся ли я с той же проблемой, но
tf.keras.backend.clear_session()
в начале ячейки, в которой была построена и обучена модель (в моем случае Keras), помогла "сократить беспорядок", так что только текущий график остается в визуализации TensorBoard после повторных прогонов одной и той же ячейки.
Среда: TensorFlow 2.0 (tensorflow-gpu==2.0.0b1
) в Colab со встроенным TensorBoard (с использованием %load_ext tensorboard
).