Buscar..


Declarar e inicializar tensores variables

Los tensores variables se utilizan cuando los valores requieren una actualización dentro de una sesión. Es el tipo de tensor que se usaría para la matriz de ponderaciones al crear redes neuronales, ya que estos valores se actualizarán a medida que se entrena el modelo.

La declaración de un tensor variable se puede hacer usando la función tf.Variable() o tf.get_variable() . Se recomienda usar tf.get_variable , ya que ofrece más flexibilidad, por ejemplo:

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

Algo a tener en cuenta es que la declaración de un tensor variable no inicializa automáticamente los valores. Los valores deben inicializarse explícitamente al iniciar una sesión utilizando uno de los siguientes:

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

El siguiente ejemplo muestra el proceso completo de declaración e inicialización de un tensor 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

Lo que imprime lo siguiente:

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

Obtener el valor de una variable TensorFlow o un Tensor

A veces necesitamos obtener e imprimir el valor de una variable TensorFlow para garantizar que nuestro programa sea correcto.

Por ejemplo, si tenemos el siguiente programa:

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 queremos obtener el valor de a o b, se pueden utilizar los siguientes procedimientos:

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

o

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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow