Zoeken…


Variabele tensoren declareren en initialiseren

Variabele tensoren worden gebruikt wanneer de waarden in een sessie moeten worden bijgewerkt. Het is het type tensor dat zou worden gebruikt voor de gewichtenmatrix bij het maken van neurale netwerken, omdat deze waarden worden bijgewerkt terwijl het model wordt getraind.

Het declareren van een variabele tensor kan worden gedaan met behulp van de functie tf.Variable() of tf.get_variable() . Het wordt aanbevolen om tf.get_variable te gebruiken, omdat dit meer flexibiliteit biedt, bijvoorbeeld:

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

Iets om op te merken is dat het declareren van een variabele tensor de waarden niet automatisch initialiseert. De waarden moeten expliciet worden geïnitialiseerd bij het starten van een sessie met een van de volgende:

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

Het volgende voorbeeld toont het volledige proces van het declareren en initialiseren van een variabele tensor.

# 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

Welke het volgende afdrukt:

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

Haal de waarde op van een TensorFlow-variabele of een Tensor

Soms moeten we de waarde van een TensorFlow-variabele ophalen en afdrukken om te garanderen dat ons programma correct is.

Als we bijvoorbeeld het volgende programma hebben:

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

als we de waarde van a of b willen krijgen, kunnen de volgende procedures worden gebruikt:

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

of

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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow