0

I Variablen wie folgt erstellen:Warum erstellt TensorFlow zusätzliche Namensräume für meine Variablen in der TensorBoard Visualisierung?

x = tf.placeholder(tf.float32, shape=[None, D], name='x-input') # M x D 
# Variables Layer1 
#std = 1.5*np.pi 
std = 0.1 
W1 = tf.Variable(tf.truncated_normal([D,D1], mean=0.0, stddev=std, name='W1')) # (D x D1) 
S1 = tf.Variable(tf.constant(100.0, shape=[1], name='S1')) # (1 x 1) 
C1 = tf.Variable(tf.truncated_normal([D1,1], mean=0.0, stddev=0.1, name='C1')) # (D1 x 1) 

aber aus irgendeinem Grund tensorflow sorgt für zusätzliche variable Blöcke in meiner Visualisierung:

enter image description here

Warum wird dies zu tun und wie kann ich es stoppen?

Antwort

3

Sie sind falsch Namen in TF

W1 = tf.Variable(tf.truncated_normal([D,D1], mean=0.0, stddev=std, name='W1')) 
        \----------------------------------------------------------/ 
              initializer 
    \-------------------------------------------------------------------------/ 
           actual variable 

So kann Ihr Code erstellt unbenannte Variable und Namen initializer opW1 verwenden. Dies ist, warum was Sie in der Grafik mit dem Namen W1 sehen, ist nicht Ihre W1 sondern umbenannte Initialisierer, und was sollte Ihre W1 heißt Variable (wie dies ist der Standardname TF weist unbenannte Ops). Es sollte

W1 = tf.Variable(tf.truncated_normal([D,D1], mean=0.0, stddev=std), name='W1') 

sein, welcher Knoten W1 für die tatsächliche Variable mit dem Namen erstellen wird, und es wird ein kleiner Initialisierung Knoten angeschlossen haben (was es auf Saatgut Zufallswerte verwendet wird).