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