Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Simple way to visualize a TensorFlow graph in Jupyter?

The official way to visualize a TensorFlow graph is with TensorBoard, but sometimes I just want a quick look at the graph when I'm working in Jupyter.

Is there a quick solution, ideally based on TensorFlow tools, or standard SciPy packages (like matplotlib), but if necessary based on 3rd party libraries?

like image 503
MiniQuark Avatar asked Jul 04 '16 16:07

MiniQuark


People also ask

How do you visualize a TensorFlow model?

TensorBoard's Graphs dashboard is a powerful tool for examining your TensorFlow model. You can quickly view a conceptual graph of your model's structure and ensure it matches your intended design. You can also view a op-level graph to understand how TensorFlow understands your program.

What tool helps visualize a TensorFlow graph?

TensorBoard is a powerful visualization tool built straight into TensorFlow that allows you to find insights in your ML model. TensorBoard can visualize anything from scalars (e.g., loss/accuracy), to images, histograms, to the TensorFlow graph, to much more.

What is TensorFlow visualization?

TensorBoard: TensorFlow's visualization toolkitTracking and visualizing metrics such as loss and accuracy. Visualizing the model graph (ops and layers) Viewing histograms of weights, biases, or other tensors as they change over time. Projecting embeddings to a lower dimensional space.


1 Answers

Here's a recipe I copied from one of Alex Mordvintsev deep dream notebook at some point

from IPython.display import clear_output, Image, display, HTML import numpy as np      def strip_consts(graph_def, max_const_size=32):     """Strip large constant values from graph_def."""     strip_def = tf.GraphDef()     for n0 in graph_def.node:         n = strip_def.node.add()          n.MergeFrom(n0)         if n.op == 'Const':             tensor = n.attr['value'].tensor             size = len(tensor.tensor_content)             if size > max_const_size:                 tensor.tensor_content = "<stripped %d bytes>"%size     return strip_def  def show_graph(graph_def, max_const_size=32):     """Visualize TensorFlow graph."""     if hasattr(graph_def, 'as_graph_def'):         graph_def = graph_def.as_graph_def()     strip_def = strip_consts(graph_def, max_const_size=max_const_size)     code = """         <script>           function load() {{             document.getElementById("{id}").pbtxt = {data};           }}         </script>         <link rel="import" href="https://tensorboard.appspot.com/tf-graph-basic.build.html" onload=load()>         <div style="height:600px">           <tf-graph-basic id="{id}"></tf-graph-basic>         </div>     """.format(data=repr(str(strip_def)), id='graph'+str(np.random.rand()))      iframe = """         <iframe seamless style="width:1200px;height:620px;border:0" srcdoc="{}"></iframe>     """.format(code.replace('"', '&quot;'))     display(HTML(iframe)) 

Then to visualize current graph

show_graph(tf.get_default_graph().as_graph_def()) 

If your graph is saved as pbtxt, you could do

gdef = tf.GraphDef() from google.protobuf import text_format text_format.Merge(open("tf_persistent.pbtxt").read(), gdef) show_graph(gdef) 

You'll see something like this

enter image description here

like image 110
Yaroslav Bulatov Avatar answered Sep 28 '22 03:09

Yaroslav Bulatov