Tensor

La estructura multidimensional que impulsa el deep learning moderno

Un tensor es una generalización de escalares, vectores y matrices a múltiples dimensiones. Es la estructura de datos principal en redes neuronales modernas y la base sobre la que operan frameworks como PyTorch y TensorFlow.

Si:

  • un escalar es un número,
  • un vector es una lista,
  • una matriz es una tabla,

👉 entonces un tensor es una estructura de datos de cualquier número de dimensiones.


Definición corta

Un tensor es una estructura multidimensional que contiene valores numéricos organizados en uno o más ejes.


Definición detallada

Un tensor puede tener cualquier número de dimensiones (también llamadas ejes o dimensiones).

Ejemplos:

  • 0D → escalar
  • 1D → vector
  • 2D → matriz
  • 3D+ → tensor

Formalmente:TensorRd1×d2××dn\text{Tensor} \in \mathbb{R}^{d_1 \times d_2 \times \cdots \times d_n}Tensor∈Rd1​×d2​×⋯×dn​

👉 Donde cada did_idi​ representa el tamaño en una dimensión.


🧠 Intuición

Piensa en un tensor como una «caja de datos» con múltiples dimensiones.

Ejemplo simple

Una imagen en color:

  • Alto
  • Ancho
  • Canales (RGB)

👉 Esto forma un tensor 3D:

[alto, ancho, canales]

Ejemplo en deep learning

Un batch de imágenes:

[batch_size, alto, ancho, canales]

👉 Esto es un tensor 4D.


📏 Dimensiones (Shape)

El shape describe la estructura del tensor.

Ejemplo:

(32, 3, 224, 224)

👉 Interpretación:

  • 32 imágenes
  • 3 canales
  • 224×224 píxeles

🔢 Orden del tensor (Rank)

El rank es el número de dimensiones.

  • Escalar → rank 0
  • Vector → rank 1
  • Matriz → rank 2
  • Tensor → rank ≥ 3

🔄 Operaciones clave

🔹 Indexación

Acceder a elementos:

tensor[0][1][2]

🔹 Broadcasting

Permite operar tensores de diferentes shapes.

👉 Muy importante en deep learning.


🔹 Reshape

Cambiar la forma sin cambiar los datos.


🔹 Transposición

Reordenar dimensiones.


🔹 Reducción

Reducir dimensiones (sum, mean, etc.).


🧠 Tensores en redes neuronales

Los tensores son omnipresentes:

1. Entrada de datos

  • Imágenes → tensor 3D
  • Texto → secuencias → tensor 2D o 3D

2. Batch de datos

Procesamiento en paralelo:

[batch_size, features]

3. Pesos del modelo

Matrices y tensores de pesos.


4. Activaciones

Cada capa produce tensores.


5. Gradientes

También son tensores.


📐 Interpretación geométrica

Un tensor representa datos en espacios de múltiples dimensiones.

👉 Aunque no siempre visualizable, mantiene:

  • estructura
  • relaciones
  • transformaciones

🔗 Relación con otros conceptos

  • Escalar → tensor de dimensión 0
  • Vector → tensor 1D
  • Matriz → tensor 2D

👉 Tensor = generalización total


Ejemplo en Python

Python
# Lista anidada como tensor simple
tensor = [
[[1, 2], [3, 4]],
[[5, 6], [7, 8]]
]
print("Tensor:", tensor)

Ejemplo en NumPy

Python
import torch
tensor = torch.tensor([
[[1.0, 2.0], [3.0, 4.0]],
[[5.0, 6.0], [7.0, 8.0]]
])
print("Tensor:\n", tensor)
print("Shape:", tensor.shape)
print("Rank:", tensor.dim())

Ejemplo en PyTorch

import torch
tensor = torch.tensor([
[[1.0, 2.0], [3.0, 4.0]],
[[5.0, 6.0], [7.0, 8.0]]
])
print("Tensor:\n", tensor)
print("Shape:", tensor.shape)
print("Rank:", tensor.dim())

Ejemplo con operación en red neuronal

import torch
# Batch de datos (2 muestras, 3 features)
x = torch.tensor([
[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0]
], requires_grad=True)
# Pesos (3 → 2)
W = torch.tensor([
[0.5, -0.3, 0.8],
[0.2, 0.7, -0.5]
], requires_grad=True)
b = torch.tensor([0.1, 0.2], requires_grad=True)
# Forward pass
z = torch.matmul(x, W.T) + b
# Loss
loss = torch.sum((z - 1.0) ** 2)
loss.backward()
print("Salida z:\n", z)
print("Loss:", loss.item())
print("Grad W:\n", W.grad)

Qué muestra este ejemplo

  • x es un tensor 2D (batch)
  • W es una matriz (tensor 2D)
  • z es un tensor resultado
  • loss es escalar
  • Gradientes → tensores

👉 Esto es deep learning real.

Errores comunes

Confundir dimensión con tamaño

Dimensión ≠ número de elementos.

Ignorar el shape

Errores de shape son los más comunes en ML.

Pensar en tensores solo como matrices

Los tensores van mucho más allá.

Ejemplo conceptual

Entrada:

[batch, features]

Transformación:

→ [batch, hidden_units]

👉 Todo ocurre mediante tensores.

Interpretación profunda

Los tensores permiten:

  • representar datos complejos
  • procesar múltiples muestras
  • escalar modelos
  • aprovechar GPUs

👉 Son el núcleo computacional del deep learning.

Conclusión

El tensor es la estructura más importante del deep learning moderno. Permite representar datos en múltiples dimensiones, procesarlos de forma eficiente y construir modelos escalables.

Si entiendes tensores, entiendes cómo funcionan los modelos por dentro.

Related Concepts