Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

TensorFlow desde cero, Unidad 3 — Tensores en profundidad, 3.2 — Operaciones tensoriales ·

Operaciones matemáticas

Operaciones matemáticas

Introducción

Las operaciones matemáticas son fundamentales para trabajar con datos y realizar cálculos complejos en Deep Learning. TensorFlow proporciona una amplia gama de funciones que permiten realizar estas operaciones de manera eficiente y escalable. Aprender a utilizar correctamente estas operaciones es crucial para poder implementar modelos precisos y eficientes.

Explicación principal

Suma y resta

Las operaciones más básicas son la suma y la resta, que se utilizan en diversas aplicaciones del Deep Learning, como el cálculo de errores o la actualización de pesos durante el entrenamiento.

import tensorflow as tf

# Crear tensores
a = tf.constant([1, 2, 3])
b = tf.constant([4, 5, 6])

# Suma
suma = tf.add(a, b)
print(suma)  # Output: <tf.Tensor: shape=(3,), dtype=int32, numpy=array([5, 7, 9], dtype=int32)>

# Resta
resta = tf.subtract(b, a)
print(resta)  # Output: <tf.Tensor: shape=(3,), dtype=int32, numpy=array([3, 3, 3], dtype=int32)>

Multiplicación y división

La multiplicación se utiliza para escalar tensores o realizar operaciones complejas. La división es menos común pero también puede ser útil en ciertos escenarios.

# Multiplicación
multiplicacion = tf.multiply(a, b)
print(multiplicacion)  # Output: <tf.Tensor: shape=(3,), dtype=int32, numpy=array([4, 10, 18], dtype=int32)>

# División
division = tf.divide(b, a)
print(division)  # Output: <tf.Tensor: shape=(3,), dtype=float32, numpy=array([4., 2.5, 2.        ], dtype=float32)>

Operaciones matriciales

Las operaciones matriciales son esenciales para trabajar con datos de imágenes y secuencias. En Deep Learning, las matrices se utilizan para representar características y modelos.

# Crear tensores 2D
matrix_a = tf.constant([[1., 2.], [3., 4.]])
matrix_b = tf.constant([[5., 6.], [7., 8.]])

# Multiplicación matricial (matmul)
resultado_matriz = tf.matmul(matrix_a, matrix_b)
print(resultado_matriz)  # Output: <tf.Tensor: shape=(2, 2), dtype=float32, numpy=

Expresiones elementales

Las operaciones elementales como raíz cuadrada y logaritmo también son útiles para transformar datos.

# Raíz cuadrada
raiz_cuadrada = tf.sqrt(a)
print(raiz_cuadrada)  # Output: <tf.Tensor: shape=(3,), dtype=float32, numpy=array([1.        , 1.4142136 , 1.7320508], dtype=float32)>

# Logaritmo
log = tf.math.log(a)
print(log)  # Output: <tf.Tensor: shape=(3,), dtype=float32, numpy=array([-0., -0.6931472, -1.0986123], dtype=float32)>

Errores típicos / trampas

  1. Operaciones entre tensores de diferentes shapes: Asegúrate de que los tensores tienen el mismo shape o utiliza operaciones como tf.broadcast_to para extender un tensor a otro.
   error = tf.add(tf.constant([1]), tf.constant([2, 3]))  # Error: Shapes (None,) and (2,) are incompatible
  1. Divisiones por cero: Verifica que no hay divisiones por cero en tus operaciones, lo cual puede resultar en valores no definidos.
   error = tf.divide(tf.constant([1]), tf.constant([0]))  # Error: Division by zero
  1. Tipos de datos incompatibles: Asegúrate de que los tipos de datos de tus tensores sean compatibles con las operaciones a realizar.
   error = tf.add(tf.constant([1], dtype=tf.int32), tf.constant(2.0))  # Error: Incompatible types

Checklist accionable

  • Verifica que los shapes de tus tensores sean compatibles antes de realizar operaciones.
  • Usa tf.broadcast_to para ajustar las dimensiones de tus tensores si es necesario.
  • Asegúrate de no dividir por cero en tus operaciones.
  • Convierte todos tus tipos de datos a lo largo del flujo de trabajo para evitar errores incompatibles.

Siguientes pasos

  1. Practicar con ejemplos: Aplica las operaciones matemáticas en tu código y observa cómo afectan los resultados.
  2. Revisar documentación oficial: Consulta la documentación oficial de TensorFlow para conocer todas las funciones disponibles.
  3. Implementar una red neuronal simple: Utiliza las operaciones aprendidas para implementar una red neuronal simple.

Siguiendo estos pasos, podrás dominar las operaciones matemáticas en TensorFlow y mejorar tus habilidades en Deep Learning.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).