Suche…


Variable Tensoren deklarieren und initialisieren

Variable Tensoren werden verwendet, wenn die Werte innerhalb einer Sitzung aktualisiert werden müssen. Es ist der Tensortyp, der für die Gewichtungsmatrix beim Erstellen von neuronalen Netzwerken verwendet wird, da diese Werte aktualisiert werden, während das Modell trainiert wird.

Die Deklaration eines variablen Tensors kann mit der Funktion tf.Variable() oder tf.get_variable() . Es wird empfohlen, tf.get_variable zu verwenden, da es mehr Flexibilität bietet, zB:

# Declare a 2 by 3 tensor populated by ones
a = tf.Variable(tf.ones([2,3], dtype=tf.float32))
a = tf.get_variable('a', shape=[2, 3], initializer=tf.constant_initializer(1))

Zu beachten ist, dass das Deklarieren eines variablen Tensors die Werte nicht automatisch initialisiert. Die Werte müssen beim Starten einer Sitzung mit einer der folgenden Methoden explizit initialisiert werden:

  • tf.global_variables_initializer().run()
  • session.run(tf.global_variables_initializer())

Das folgende Beispiel zeigt den gesamten Prozess der Deklaration und Initialisierung eines variablen Tensors.

# Build a graph
graph = tf.Graph()
with graph.as_default():
    a = tf.get_variable('a', shape=[2,3], initializer=tf.constant_initializer(1), dtype=tf.float32))     # Create a variable tensor

# Create a session, and run the graph
with tf.Session(graph=graph) as session:
    tf.global_variables_initializer().run()  # Initialize values of all variable tensors
    output_a = session.run(a)            # Return the value of the variable tensor
    print(output_a)                      # Print this value

Welche druckt folgendes aus:

[[ 1.  1.  1.]
 [ 1.  1.  1.]]

Rufen Sie den Wert einer TensorFlow-Variablen oder eines Tensors ab

Manchmal müssen wir den Wert einer TensorFlow-Variablen abrufen und drucken, um sicherzustellen, dass unser Programm korrekt ist.

Zum Beispiel, wenn wir folgendes Programm haben:

import tensorflow as tf
import numpy as np
a = tf.Variable(tf.random_normal([2,3])) # declare a tensorflow variable
b = tf.random_normal([2,2]) #declare a tensorflow tensor
init = tf.initialize_all_variables()

Wenn wir den Wert von a oder b erhalten möchten, können die folgenden Prozeduren verwendet werden:

with tf.Session() as sess:
    sess.run(init)
    a_value = sess.run(a)
    b_value = sess.run(b)
    print a_value
    print b_value

oder

with tf.Session() as sess:
    sess.run(init)
    a_value = a.eval()
    b_value = b.eval()
    print a_value
    print b_value


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow