Recherche…


Déclaration et initialisation des tenseurs variables

Les tenseurs variables sont utilisés lorsque les valeurs nécessitent une mise à jour dans une session. C'est le type de tenseur qui serait utilisé pour la matrice de pondération lors de la création de réseaux neuronaux, puisque ces valeurs seront mises à jour au fur et à mesure de la formation du modèle.

Déclarer un tenseur de variable peut être fait en utilisant la fonction tf.Variable() ou tf.get_variable() . Il est recommandé d'utiliser tf.get_variable , car il offre plus de flexibilité, par exemple:

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

Quelque chose à noter est que la déclaration d'un tenseur de variable n'initialise pas automatiquement les valeurs. Les valeurs doivent être explicitées lors du démarrage d'une session en utilisant l'une des méthodes suivantes:

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

L'exemple suivant montre le processus complet de déclaration et d'initialisation d'un tenseur de variable.

# 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

Qui imprime ce qui suit:

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

Récupère la valeur d'une variable TensorFlow ou d'un Tensor

Parfois, nous devons extraire et imprimer la valeur d'une variable TensorFlow pour garantir que notre programme est correct.

Par exemple, si nous avons le programme suivant:

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

Si nous voulons obtenir la valeur de a ou b, les procédures suivantes peuvent être utilisées:

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

ou

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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow