Introducción

En este módulo, aprenderemos sobre los tensores, que son la estructura de datos fundamental en TensorFlow, y las operaciones que se pueden realizar con ellos. Los tensores son similares a los arrays de Numpy, pero con capacidades adicionales para ser utilizados en GPUs y TPUs, lo que los hace ideales para el aprendizaje profundo.

¿Qué es un Tensor?

Un tensor es una estructura de datos que puede representar datos en múltiples dimensiones. Los tensores pueden ser:

  • Escalares (0D): Un solo valor, como un número entero o un número de punto flotante.
  • Vectores (1D): Una lista de valores.
  • Matrices (2D): Una tabla de valores con filas y columnas.
  • Tensores de mayor dimensión (3D, 4D, etc.): Arrays de matrices.

Ejemplos de Tensores

Dimensión Ejemplo Descripción
0D 5 Escalar
1D [1, 2, 3] Vector
2D [[1, 2], [3, 4]] Matriz
3D [[[1, 2], [3, 4]], [[5, 6], [7, 8]]] Tensor 3D

Creación de Tensores en TensorFlow

Para crear tensores en TensorFlow, utilizamos la función tf.constant o tf.Variable. Aquí hay algunos ejemplos:

import tensorflow as tf

# Escalar
scalar = tf.constant(5)
print(scalar)

# Vector
vector = tf.constant([1, 2, 3])
print(vector)

# Matriz
matrix = tf.constant([[1, 2], [3, 4]])
print(matrix)

# Tensor 3D
tensor_3d = tf.constant([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(tensor_3d)

Explicación del Código

  • tf.constant se utiliza para crear un tensor constante.
  • Los tensores pueden ser de cualquier dimensión, como se muestra en los ejemplos anteriores.

Operaciones con Tensores

TensorFlow proporciona una amplia gama de operaciones que se pueden realizar en tensores. Algunas de las operaciones más comunes incluyen:

Operaciones Matemáticas Básicas

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

# Suma
sum_result = tf.add(a, b)
print(sum_result)

# Resta
sub_result = tf.subtract(a, b)
print(sub_result)

# Multiplicación
mul_result = tf.multiply(a, b)
print(mul_result)

# División
div_result = tf.divide(a, b)
print(div_result)

Operaciones de Reducción

Las operaciones de reducción son aquellas que reducen un tensor a un valor más pequeño, como la suma de todos los elementos o el promedio.

c = tf.constant([[1, 2, 3], [4, 5, 6]])

# Suma de todos los elementos
sum_all = tf.reduce_sum(c)
print(sum_all)

# Promedio de todos los elementos
mean_all = tf.reduce_mean(c)
print(mean_all)

# Máximo de todos los elementos
max_all = tf.reduce_max(c)
print(max_all)

Operaciones de Indexación y Corte

Podemos acceder a elementos específicos de un tensor utilizando la indexación y el corte.

d = tf.constant([[1, 2, 3], [4, 5, 6]])

# Acceder a un elemento específico
element = d[1, 2]
print(element)

# Cortar una submatriz
sub_matrix = d[:, 1:]
print(sub_matrix)

Ejercicio Práctico

Ejercicio 1: Creación y Operaciones Básicas

  1. Crea un tensor constante de 2x3 con los valores [[1, 2, 3], [4, 5, 6]].
  2. Realiza las siguientes operaciones:
    • Suma 10 a cada elemento del tensor.
    • Multiplica cada elemento del tensor por 2.
    • Calcula la suma de todos los elementos del tensor.
    • Encuentra el valor máximo en el tensor.

Solución

# Paso 1: Crear el tensor
tensor = tf.constant([[1, 2, 3], [4, 5, 6]])

# Paso 2: Operaciones
# Sumar 10 a cada elemento
tensor_plus_10 = tf.add(tensor, 10)
print(tensor_plus_10)

# Multiplicar cada elemento por 2
tensor_times_2 = tf.multiply(tensor, 2)
print(tensor_times_2)

# Suma de todos los elementos
sum_elements = tf.reduce_sum(tensor)
print(sum_elements)

# Valor máximo en el tensor
max_value = tf.reduce_max(tensor)
print(max_value)

Conclusión

En esta sección, hemos aprendido sobre los tensores, la estructura de datos fundamental en TensorFlow, y cómo crear y manipular tensores utilizando operaciones básicas. Estos conceptos son esenciales para trabajar con TensorFlow y construir modelos de aprendizaje profundo. En el próximo módulo, exploraremos las variables y constantes en TensorFlow, que son cruciales para la construcción de modelos más complejos.

© Copyright 2024. Todos los derechos reservados