Dimensiones, tensores y reshape
Clase 13 de 29 • Curso de Fundamentos de Redes Neuronales con Python y Keras
Resumen
¿Qué son los tipos de datos por dimensión?
Distinguir entre los tipos de datos por dimensión es crucial cuando trabajamos con frameworks avanzados como TensorFlow o PyTorch. Los datos se organizan en escalares, vectores, matrices y tensores, dependiendo de su complejidad y cantidad de información.
¿Cómo identificamos cada tipo de dato?
-
Escalar: Un escalar contiene un único valor numérico y no tiene dimensiones, es decir, su dimensión es 0. Ejemplos incluyen valores como “5” o “A”.
-
Vector: Es una lista o arreglo de valores en una sola dimensión. Tiene una dimensión de 1. Por ejemplo, un arreglo con valores como [5, 7, 9].
-
Matriz: Contiene valores organizados en dos dimensiones, parecido a una hoja de cálculo de Excel con filas y columnas. Por ejemplo, una matriz puede presentar data points contra características.
-
Tensor: Los tensores van más allá, manejan tres o más dimensiones. Son conjuntos de datos complejos que frameworks como TensorFlow entienden bien, aunque para los humanos resulten difíciles de visualizar más allá de tres dimensiones.
¿Cómo se aplican estos conceptos en ejemplos prácticos?
Ejemplos comunes para cada tipo de dato
-
Matrices: Suelen emplearse para representar data points contra características en un DataFrame.
-
Tensores: Los tensores tridimensionales se utilizan, por ejemplo, en series de tiempo, donde la tercera dimensión añade el elemento temporal. En el caso de imágenes, cuando están en color, se manejan cuatro dimensiones: número de ejemplos, alto, ancho y canales de color (rojo, verde y azul).
¿Cómo se implementa en Python?
La implementación práctica de estos conceptos se realiza con librerías como NumPy en Python. Aquí te mostramos cómo:
Crear y manipular escalares, vectores y matrices en NumPy
import numpy as np
# Escalar
escalar = np.array(42)
# Vector
vector = np.array([1, 2, 3, 4, 5])
# Matriz
matriz = np.array([[1, 2, 3], [4, 5, 6]])
print("Escalar dimensiones:", escalar.ndim) # Output: 0
print("Vector dimensiones:", vector.ndim) # Output: 1
print("Matriz dimensiones:", matriz.ndim) # Output: 2
Creación y visualización de un tensor
# Tensor 3D
tensor = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]])
print("Tensor dimensiones:", tensor.ndim) # Output: 3
¿Qué es y cómo se utiliza reshape
en NumPy?
reshape
es una herramienta clave para cambiar la forma de un arreglo sin alterar sus datos. Por ejemplo, convertir una matriz de 4x2 en otra de 2x4:
# Reorganización con reshape
original = np.array([[0.1, 0.2], [0.3, 0.4], [0.5, 0.6], [0.7, 0.8]])
nueva_forma = original.reshape((2, 4))
print("Forma original:", original.shape)
print("Nueva forma:", nueva_forma.shape)
¿Cómo modificar la dimensionalidad con transpose
?
La transposición altera el orden de las dimensiones, útil en el procesamiento de datos. Así es como transpose
puede emplearse en NumPy:
# Transposición de matriz
transpuesta = np.transpose(original)
print("Forma transpuesta:", transpuesta.shape)
Entender y manipular estas estructuras de datos es esencial para desarrollar redes neuronales efectivas. Las herramientas de NumPy permiten manejar dimensiones de manera eficiente, lo que es fundamental en el entrenamiento de modelos de machine learning. ¡Es el momento de experimentar y seguir ampliando tus conocimientos en redes neuronales aplicadas!