2016-08-16 1 views
0

In den folgenden Zeilen kann jemand bitte bestätigen, dass Tensorflow zu dem einzelnen loss Tensor hinzugefügt, im Gegensatz zum Erstellen mehrerer Tensoren (alle mit dem Namen loss)?Tensorflow-Variablen - Hinzufügen zum gleichen Namen

loss = tf.nn.l2_loss(a)  
loss = tf.add(loss, tf.nn.l2_loss(b)) 
loss = tf.add(loss, tf.nn.l2_loss(c)) 

Vielen Dank!

Antwort

2

Unten ist das Diagramm, das Sie erstellen. Jedes Mal, wenn Sie eine tf.<something> machen, hängt es an das Standarddiagramm an. Das heißt, aus dem Diagramm kann man sehen, dass es tatsächlich die Wirkung der Aufsummierung drei loss Knoten enter image description here

mit diesem Code

from IPython.display import clear_output, Image, display, HTML 

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)) 

import tensorflow as tf 
import numpy as np 
tf.reset_default_graph() 
a = tf.placeholder(tf.float32) 
b = tf.placeholder(tf.float32) 
c = tf.placeholder(tf.float32) 

loss = tf.nn.l2_loss(a)  
loss = tf.add(loss, tf.nn.l2_loss(b)) 
loss = tf.add(loss, tf.nn.l2_loss(c)) 

show_graph(tf.get_default_graph().as_graph_def()) 
+0

Danke Yaroslav generiert hat. –

Verwandte Themen