Variables en Tensorflow

TensorFlow es una biblioteca de Python para la computación numérica eficiente. Es una biblioteca básica que se puede usar para desarrollar modelos de aprendizaje automático y aprendizaje profundo. Tensorflow es una biblioteca de alto nivel. Una variable es un estado o valor que se puede modificar realizando operaciones sobre él. En TensorFlow, las variables se crean usando el constructor Variable().

El constructor Variable() espera un valor inicial para la variable, que puede ser cualquier tipo o forma de tensor. El tipo y la forma de la variable se definen por su valor inicial. La forma y las variables se fijan una vez creadas. veamos algunos ejemplos de cómo crear variables en TensorFlow.

Sintaxis: tf.Variable(valor_inicial=Ninguno, entrenable=Ninguno, validar_forma=Verdadero, dispositivo_de_caché=Ninguno, nombre=Ninguno, variable_def=Ninguno, dtype=Ninguno, import_scope=Ninguno, restricción=Ninguno, sincronización=tf.VariableSynchronization.AUTO, agregación=tf.compat.v1.VariableAggregation.NONE, forma=Ninguno)

Parámetros:

  • valor_inicial : por defecto Ninguno. El valor inicial de la variable es un tensor o un objeto de Python convertible en un tensor.
  • entrenable : por defecto Ninguno. Si es Verdadero, GradientTapes vigilará el uso de esta variable.
  • validar_forma : por defecto Verdadero. Permite que la variable se inicialice con un valor de forma desconocido si es False. La forma del valor inicial debe conocerse si es True, que es el valor predeterminado.
  • nombre : por defecto Ninguno. El nombre opcional de la variable. El valor predeterminado es ‘Variable’ y se unifica automáticamente.
  • variable_def: por defecto Ninguno.
  •  dtype: por defecto Ninguno. Si se establece, initial_value se convertirá al tipo dado. Si es Ninguno, se mantendrá el tipo de datos (si initial_value es un Tensor) o se decidirá convert_to_tensor.
  •  forma: por defecto Ninguno. si es Ninguno, se usará la forma de valor_inicial. si se especifica alguna forma, a la variable se le asignará esa forma en particular.

Crear una variable

El constructor tf.Variable() se usa para crear una variable en TensorFlow.

Python3

tensor = tf.Variable([3,4])

Producción:

<tf.Variable ‘Variable:0’ forma=(2,) dtype=int32, numpy=array([3, 4], dtype=int32)>

Dimensión, tamaño, forma y tipo de una variable de TensorFlow

Python3

# import packages
import tensorflow as tf
 
# create variable
tensor1 = tf.Variable([3, 4])
 
# The shape of the variable
print("The shape of the variable: ",
      tensor1.shape)
 
# The number of dimensions in the variable
print("The number of dimensions in the variable:",
      tf.rank(tensor1).numpy())
 
# The size of the variable
print("The size of the tensorflow variable:",
      tf.size(tensor1).numpy())
 
# checking the datatype of the variable
print("The datatype of the tensorflow variable is:",
      tensor1.dtype)

Producción:

The shape of the variable:  (2,)
The number of dimensions in the variable: 1
The size of the tensorflow variable: 2
The datatype of the tensorflow variable is: <dtype: 'int32'>

Asignación o modificación de los elementos en la variable

Usamos el método de asignación() para modificar la variable. Es más como indexar y luego usar el método de asignación(). Hay más métodos para asignar o modificar la variable, como Variable.assign_add() y Variable.assign_sub()).

Ejemplo 1:

asignar(): se usa para actualizar o agregar un nuevo valor.

Sintaxis: asignar (valor, use_locking=False, name=Ninguno, read_value=True)

parámetros:

  • valor: El nuevo valor para esta variable.
  • use_locking:   bloqueo durante la asignación si es «verdadero».

Python3

import tensorflow as tf
 
tensor1 = tf.Variable([3, 4])
tensor1[1].assign(5)
tensor1

Producción:

<tf.Variable ‘Variable:0’ forma=(2,) dtype=int32, numpy=array([3, 5], dtype=int32)>

Ejemplo 2:

Sintaxis: asignar_añadir(delta, usar_bloqueo=Falso, nombre=Ninguno, leer_valor=Verdadero)

parámetros:

  • delta: El valor que se agregará a la variable (Tensor).
  • use_locking: Durante la operación, si es True, utilice el bloqueo.
  • nombre:   nombre de la operación.
  • read_value: si es verdadero, se devolverá todo lo que se evalúe como el valor modificado de la variable; si es False, se devolverá la operación de asignación.

Python3

# import packages
import tensorflow as tf
 
# create variable
tensor1 = tf.Variable([3, 4])
 
# using assign_add() function
tensor1.assign_add([1, 1])
tensor1

Producción:

<tf.Variable ‘Variable:0’ forma=(2,) dtype=int32, numpy=array([4, 5], dtype=int32)>

Ejemplo 3:

Sintaxis: asignar_sub(delta, use_locking=False, name=Ninguno, read_value=True)

parámetros:

  • delta: El valor a restar de la variable
  • use_locking: Durante la operación, si es True, utilice el bloqueo.
  • nombre: nombre de la operación.
  • read_value: si es verdadero, se devolverá todo lo que se evalúe como el valor modificado de la variable; si es False, se devolverá la operación de asignación.

Python3

# import packages
import tensorflow as tf
 
# create variable
tensor1 = tf.Variable([3, 4])
 
# using assign_sub() function
tensor1.assign_sub([1, 1])
tensor1

Producción:

<tf.Variable ‘Variable:0’ forma=(2,) dtype=int32, numpy=array([2, 3], dtype=int32)>

Cambiar la forma de la variable

El método tf.reshape() se usa para cambiar la forma de la variable. se debe pasar la variable y la forma. 

Python3

import tensorflow as tf
 
tensor1 = tf.Variable([[1, 2, 3, 4]])
tf.reshape(tensor1, shape=(2, 2))
tensor1

Producción:

<tf.Tensor: shape=(2, 2), dtype=int32, numpy=
array([[1, 2],
       [3, 4]], dtype=int32)>

Cambiar el tipo de datos del tensor

Si queremos que la variable tenga un tipo de datos particular, debemos especificar dtype al crear la variable. en este ejemplo, especificamos que dtype sea float. 

Python3

import tensorflow as tf
 
tensor1 = tf.Variable([[1, 2, 3, 4]], dtype=float)
tensor1

Producción:

<tf.Variable ‘Variable:0’ forma=(1, 4) dtype=float32, numpy=array([[1., 2., 3., 4.]], dtype=float32)>

Operaciones con Variables

Podemos realizar operaciones de suma, resta, multiplicación, división y muchas más con las variables de TensorFlow.

Python3

# import packages
import tensorflow as tf
 
# create two variables
tensor1 = tf.Variable([3, 4])
tensor2 = tf.Variable([5, 6])
print("Addition of tensors", tensor1+tensor2)
 
print("Subtraction of tensors", tensor1-tensor2)
 
print("Multiplication of tensors", tensor1*tensor2)
 
print("division of tensors", tensor1/tensor2)

Producción:

Adición de tensores tf.Tensor([ 8 10], shape=(2,), dtype=int32)

Resta de tensores tf.Tensor([-2 -2], forma=(2,), dtype=int32)

Multiplicación de tensores tf.Tensor([15 24], forma=(2,), dtype=int32)

división de tensores tf.Tensor([0.6 0.66666667], forma=(2,), dtype=float64)

Radiodifusión

Cuando intentamos ejecutar operaciones combinadas con varios objetos Variable, exactamente como con los objetos Tensor, las variables que son más pequeñas pueden extenderse instantáneamente para adaptarse a la variable de gran tamaño, al igual que las arrays NumPy. Cuando intenta multiplicar una variable escalar con una variable, el escalar se estira para multiplicar cada elemento de la variable.

Python3

# import packages
import tensorflow as tf
 
# create two variables
tensor1 = tf.Variable([3, 4])
tensor2 = tf.Variable([2])
 
# broadcasting
output = tensor1*tensor2
print(output)

Producción:

tf.Tensor([6 8], shape=(2,), dtype=int32)

Selección de hardware para variables

Podemos utilizarlo para ver qué tipo de dispositivo (es decir, procesador) se usa para procesar nuestra variable. Se utiliza el atributo .device.

Python3

# import packages
import tensorflow as tf
 
# create a variable
tensor1 = tf.Variable([3, 4])
 
print('The type of hardware variable used : '+tensor1.device)

Producción:

El tipo de variable de hardware utilizada: /job:localhost/replica:0/task:0/device:CPU:0

Publicación traducida automáticamente

Artículo escrito por isitapol2002 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 *