Marcadores de posición en Tensorflow

Un marcador de posición es una variable en Tensorflow a la que se le asignarán datos más adelante. Nos permite crear procesos u operaciones sin necesidad de datos. Los datos se introducen en el marcador de posición cuando se inicia la sesión y se ejecuta la sesión. Podemos introducir datos en gráficos de tensorflow usando marcadores de posición. 

Sintaxis: tf.compat.v1.placeholder(dtype, forma=Ninguno, nombre=Ninguno)

Parámetros:

  • dtype: el tipo de datos de los elementos en el tensor que se alimentará.
  • forma: por defecto Ninguno. La forma del tensor que se alimentará, es un parámetro opcional. Se puede alimentar un tensor de cualquier forma si no se especifica la forma.
  • nombre: por defecto Ninguno. El nombre de la operación, parámetro opcional.

Devoluciones:

Un tensor que se puede usar para alimentar un valor pero que no se puede evaluar directamente.

Ejemplo 1: 

Python3

# importing packages
import tensorflow.compat.v1 as tf
  
# disabling eager mode
tf.compat.v1.disable_eager_execution()
  
# creating a placeholder
a = tf.placeholder(tf.float32, None)
  
# creating an operation
b = a + 10
  
# creating a session
with tf.Session() as session:
    
    # feeding data in the placeholder
    operation_res = session.run(b, feed_dict={a: [10, 20, 30, 40]})
    print("after executing the operation: " + str(operation_res))

Producción:

after executing the operation: [20. 30. 40. 50.]

Explicación:

  • El modo impaciente está deshabilitado en caso de que haya algún error. 
  • Se crea un marcador de posición usando el método tf.placeholder() que tiene un dtype ‘tf.float32’, Ninguno dice que no especificamos ningún tamaño. 
  • La operación se crea antes de introducir los datos. 
  • La operación suma 10 al tensor. 
  • Se crea una sesión y se inicia usando tf.Session(). 
  • Session.run toma la operación que creamos y los datos que se alimentarán como parámetros y devuelve el resultado.

Ejemplo 2:

Python3

# importing packages
import tensorflow.compat.v1 as tf
  
# disabling eager mode
tf.compat.v1.disable_eager_execution()
  
# creating a tensorflow graph
graph = tf.Graph()
with graph.as_default():
    
    # creating a placeholder
    a = tf.placeholder(tf.float64, shape=(3, 3), name='tensor1')
      
    # creating an operation
    b = a ** 2
  
# array1 will be fed into 'a'
array1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
  
# Creating a session, and running the graph
with tf.Session(graph=graph) as session:
      
    # run the session until it reaches node b,
    # then input an array of values into a
    operation_res = session.run(b, feed_dict={a: array1})
    print("after executing the operation: ")
    print(operation_res)

Producción:

after executing the operation: 
[[ 1.  4.  9.]
 [16. 25. 36.]
 [49. 64. 81.]]

Publicación traducida automáticamente

Artículo escrito por sarahjane3102 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *