Eliminar nodos del gráfico o restablecer todo el gráfico predeterminado


Cuando se trabaja con el gráfico global predeterminado, ¿es posible eliminar nodos después de que se han agregado, o alternativamente restablecer el gráfico predeterminado a vacío? Cuando trabajo con TF interactivamente en IPython, me encuentro teniendo que reiniciar el kernel repetidamente. Me gustaría poder experimentar con gráficos más fácilmente si es posible.

Author: Hooked, 2015-11-17

3 answers

Actualización 11/2/2016

tf.reset_default_graph()

Cosas Viejas

Hay reset_default_graph, pero no es parte de la API pública (creo que debería serlo, ¿alguien quiere presentar un problema en GitHub?)

Mi trabajo para restablecer las cosas es este:

from tensorflow.python.framework import ops
ops.reset_default_graph()
sess = tf.InteractiveSession()
 84
Author: Yaroslav Bulatov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-02 17:47:14

De forma predeterminada, una sesión se construye alrededor del gráfico predeterminado. Para evitar dejar nodos muertos en la sesión, debe controlar el gráfico predeterminado o usar un gráfico explícito.

  • Para borrar el gráfico predeterminado, puede usar el tf.función reset_default_graph.

    tf.reset_default_graph()
    sess = tf.InteractiveSession()
    
  • También puede construir explícitamente un gráfico y evitar usar el predeterminado. Si utiliza un Session normal, necesitará crear completamente el gráfico antes de construir el sesion. Para InteractiveSession, simplemente puede declarar el gráfico y usarlo como contexto para declarar cambios adicionales:

    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], ...)
    

EDITAR: Para versiones recientes de tensorflow (1.0+), la función correcta es g.as_default.

 34
Author: Thomas Moreau,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-14 07:59:39

Las celdas de IPython / Jupyter notebook mantienen el estado entre corridas de una celda.

Crear un gráfico personalizado:

def main():
    # Define your model
    data = tf.placeholder(...)
    model = ...

with tf.Graph().as_default():
    main()

Una vez ejecutado, el gráfico se limpia.

 4
Author: Serge,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-19 05:17:56