Cuadernos

Un cuaderno por sección, más estudios a fondo para casa, y cada uno se ejecuta en frío en Colab

Cada sección del taller tiene su cuaderno. Otros cuadernos ofrecen estudios a fondo para casa. Están escritos principalmente en inglés, y cada encabezado lleva un resumen de una línea en español.

Cómo están construidos

Los cuadernos 01–11 separan la sesión en vivo del estudio posterior:

  1. Encabezado: Practica hoy y Explora después, con los mismos resultados que las diapositivas y el manual.
  2. Ejecuta primero la celda de preparación y luego sigue de arriba abajo. Cada cuaderno abre con una ruta corta: un recuerdo rápido, un ejemplo resuelto y después tu propio intento, con retroalimentación y una comprobación. Intenta el ejercicio tú mismo antes de abrir la solución plegada.
  3. Fin de la ruta esencial: aquí termina la ruta anterior. Guarda tu explicación —es lo que necesita la sesión— y sigue las pausas y cuestionarios del facilitador.
  4. Explora después: material opcional al que vuelves más tarde —más consulta, ejercicios y exploradores.

El cuaderno 00 conserva el diagnóstico de entrada y la preparación previa; el 12 empieza con la comprobación de salida. Los estudios a fondo aparecen más abajo, en Para ir más lejos. Las soluciones siguen plegadas: ábrelas tras un intento. Cada cuaderno carga sus propios datos y se ejecuta de forma independiente.

Los cuadernos se guardan sin salidas y sin números de ejecución. Cada número que veas es uno que has producido tú. El texto cita los resultados esperados, así que puedes comprobar si los tuyos son correctos. Si los tuyos difieren, eso merece investigarse en lugar de descartarse.

Los cuadernos

# Abrir Cuaderno Contenido
00 Open In Colab 00-setup-and-data.ipynb Preparación y bienvenida — Carga todos los conjuntos de datos y confirma que tu entorno funciona antes de que empiece el taller.
01 Open In Colab 01-what-a-tensor-is.ipynb Qué es un tensor — Aprender a leer la estructura de un tensor y seguir el significado de sus ejes al fijarlos, reorganizarlos o contraerlos.
02 Open In Colab 02-thinking-in-n-dimensions.ipynb Pensar en N dimensiones — Aprender a leer tensores reales preguntando qué cuenta cada eje y por qué un eje de lote no significa lo mismo que un eje temporal.
03 Open In Colab 03-indexing-and-broadcasting.ipynb Indexación y broadcasting con datos reales — Seleccionar medidas reales por nombre, comparar subconjuntos con máscaras booleanas y detectar píxeles de varianza cero.
04 Open In Colab 04-reshape-and-transpose.ipynb Reshape y transposición de imágenes reales — Reordenar ejes correctamente en imágenes y lotes reales, y comprobar por qué reshape puede conservar la forma mientras destruye el significado.
05 Open In Colab 05-video-pipeline-design.ipynb Diseño de un pipeline de vídeo — Convertir un archivo de vídeo real en un tensor, observar qué se pierde al muestrear fotogramas y diseñar formas tensoriales que respeten el significado del tiempo.
06 Open In Colab 06-contraction-with-einsum.ipynb Contracción con einsum — Aprender una sola regla de índices, comprobarla con datos reales y cambiar las entradas de forma interactiva para identificar qué índice desaparece.
07 Open In Colab 07-inverses-and-pseudoinverse.ipynb Inversas y la pseudoinversa — Usar la pseudoinversa en sistemas reales singulares, altos y anchos, e inspeccionar su geometría de forma interactiva.
08 Open In Colab 08-recursion-with-matrices.ipynb Recursión con matrices y vectores — Entender una recurrencia como una actualización de estado repetida, observar cuándo domina una dirección propia y comprobar qué ocurre cuando un pronóstico reutiliza sus propias predicciones.
09 Open In Colab 09-matrix-factorizations.ipynb Factorizaciones matriciales — Compara LU, QR, Cholesky, descomposición espectral, SVD y NMF sobre datos reales y descubre qué pregunta responde cada una y cuánto cuesta.
10 Open In Colab 10-tucker-decomposition.ipynb Descomposición de Tucker con datos reales — Construir un tensor real de viajes en taxi, comprimir cada modo con HOSVD y explorar el compromiso entre tamaño, error e interpretación.
11 Open In Colab 11-tensor-factorizations.ipynb Factorizaciones tensoriales — Compara CP, Tucker/HOSVD, Tensor Train y t-SVD, entiende qué estructura conserva cada método y mide cuánto cuesta cada representación.
12 Open In Colab 12-wrap-up-and-take-homes.ipynb Cierre y ejercicios para casa — Resume la idea que conecta el taller y luego elige entre cinco extensiones: PCA, atención, CP, Cholesky y audio.

Para ir más lejos

Estos no son secciones. Son estudios a fondo, entregados como material para casa. No tienen diapositivas, ni Kahoot, ni minutos en el reloj del taller: la agenda de 210 minutos es exactamente la misma sin ellos. La ruta esencial de la sección 11 compara CP y Tucker mediante llamadas a la biblioteca; su panorama de cuatro modelos es material de ampliación. Los cuadernos 14 y 15 parten de esa comparación: ajustan CP a mano y después cambian qué significa «ajustar».

# Abrir Estudio a fondo
13 Open In Colab 13-convolution-and-deconvolution.ipynb — Convolución y deconvolución — Ver la convolución como un operador lineal estructurado, distinguir correlación de convolución, entender la convolución transpuesta y recuperar parcialmente una imagen real desenfocada.
14 Open In Colab 14-cp-factorization.ipynb — Factorización CP y la vista de rango 1 — Leer una componente CP como un vector por eje, ajustarla con mínimos cuadrados alternos, restringirla a valores no negativos y ver cómo grabaciones neuronales reales se ordenan solas según una etiqueta que el método nunca vio.
15 Open In Colab 15-generalized-cp.ipynb — CP generalizado para conteos y datos binarios — El error cuadrático es una hipótesis de modelado, no la definición de buen ajuste. Cámbialo por una pérdida de Poisson o Bernoulli, descompón un tensor real de conteos de delitos — incluida una componente que resulta ser un artefacto del fichero — y después entrégale el mismo objetivo a PyTorch para ver qué hace el momento con él.
16 Open In Colab 16-pca-from-tensors.ipynb — PCA desde la perspectiva de los tensores — Conectar covarianza, correlación, eigendescomposición y SVD con parches satelitales reales; evaluar clasificación y agrupamiento, ajustar PCA multilineal y recuperar una señal tensorial sintética.
17 Open In Colab 17-multi-head-attention.ipynb — Atención multicabeza 4D: reorganiza Q, K y V — Separar características en cabezas, verificar pasos de memoria e identidad de tokens, calcular atención escalada y comparar NumPy con PyTorch.
18 Open In Colab 18-feature-compression.ipynb — Compresión de características latentes con SVD — Comprimir una imagen HWC con SVD truncada, comparar rangos y energía retenida, verificar la reconstrucción con PyTorch y distinguir rango matricial de rango CP.
19 Open In Colab 19-cp-or-tucker-in-practice.ipynb — CP o Tucker en la práctica — Llevar CP y Tucker a un grafo de conocimiento real, un kernel entrenado de ResNet-18 y una fotografía: ver qué núcleo puede expresar una relación asimétrica, cuál guarda un kernel con menos números y a qué precio oculto, cómo elegir el rango, y por qué el modelo que mejor comprime no es el que mejor predice.
20 Open In Colab 20-alphatensor.ipynb — AlphaTensor: multiplicar matrices como un juego — Escribir la multiplicación de matrices como un tensor de ceros y unos, comprobar que los siete términos de rango uno de Strassen lo reconstruyen exactamente, jugar la búsqueda de esos términos como un juego de un jugador que un jugador codicioso gana en 8 jugadas y nunca en 7, y verificar las factorizaciones que publicó AlphaTensor: 47 multiplicaciones para matrices 4 × 4 módulo 2, donde el récord era 49.

El estudio 19 recorre la entrada del blog CP or Tucker in practice (en inglés).

El estudio 20 recorre las tres entradas AlphaTensor del blog (en inglés): escribe la multiplicación de matrices como un tensor, juega la búsqueda de un algoritmo más rápido como un juego en el caso más pequeño y comprueba las factorizaciones que publicó DeepMind. No entrena nada.

Las herramientas del navegador que acompañan a las secciones tienen su propia página: Interactivo dedica una tarjeta a cada una, con las secciones a las que pertenece y las escenas que vale la pena abrir directamente.

Ejecutarlos fuera de Colab

Los cuadernos solo necesitan el stack científico de Python. En local:

git clone https://github.com/project-delphi/tensors-workshop.git
cd tensors-workshop
uv run --group notebooks jupyter lab

El grupo notebooks está declarado en pyproject.toml, y se deriva de los propios import de los cuadernos en lugar de escribirse a mano junto a ellos. matplotlib e ipywidgets están en él porque los cuadernos usan gráficas y widgets interactivos. Los dos vienen con Colab, así que si falta uno solo se nota al ejecutar en local.

scikit-learn y scikit-image traen consigo los datos de tumores, los dígitos manuscritos y las fotografías. Algunos cuadernos usan solo datos incluidos; otros descargan datos o instalan paquetes. La tabla generada de abajo indica los requisitos de red de cada cuaderno.

Qué necesita cada cuaderno

Colab ya tiene instalado todo lo de esta lista.
Cuaderno Además de NumPy Red
00 matplotlib, ipywidgets, pandas, scikit-learn, scikit-image, scipy, pillow, imageio† sí — vivienda en California, pasajeros de aerolínea, viajes en taxi de Nueva York, el clip de la tormenta (solo un sondeo de 1 KB)
01 matplotlib, ipywidgets, scikit-learn, scikit-image, pillow no
02 matplotlib, ipywidgets, scikit-learn, scikit-image, pillow, imageio† sí — el clip de la tormenta
03 matplotlib, ipywidgets, pandas, scikit-learn, pillow no
04 matplotlib, ipywidgets, scikit-image, pillow no
05 matplotlib, ipywidgets, pillow, imageio† sí — el clip de la tormenta
06 matplotlib, ipywidgets, scikit-learn, scikit-image, pillow no
07 matplotlib, ipywidgets, pandas, scikit-learn, pillow sí — vivienda en California
08 matplotlib, ipywidgets, pandas, pillow sí — pasajeros de aerolínea
09 matplotlib, ipywidgets, pandas, scikit-learn, scikit-image, scipy, pillow sí — pasajeros de aerolínea
10 matplotlib, ipywidgets, pandas, pillow sí — viajes en taxi de Nueva York
11 matplotlib, ipywidgets, pandas, pillow, tensorly†, imageio† sí — viajes en taxi de Nueva York, el clip de la tormenta
12 matplotlib, ipywidgets, pandas, scikit-learn, scipy, pillow sí — una grabación de voz (para el ejercicio E)
13 matplotlib, ipywidgets, scikit-image, scipy, pillow no
14 matplotlib, ipywidgets, scipy, pillow, tensorly† sí — las grabaciones BMI del mono (5 MB, una vez)
15 matplotlib, ipywidgets, pandas, scipy, pillow, pyttb†, torch† sí — informes de delitos de Chicago (3 MB, una vez)
16 matplotlib, ipywidgets, pandas, scikit-learn, pillow sí — parches satelitales de UCI Landsat (archivo de 101 KB, con caché)
17 matplotlib, ipywidgets, torch no
18 matplotlib, ipywidgets, torch no
19 matplotlib, ipywidgets, pandas, scikit-image, scipy, tensorly†, torch sí — el grafo de conocimiento FB15k-237 (21 MB, una vez), un kernel de ResNet-18 y ajustes guardados
20 matplotlib, ipywidgets sí — las factorizaciones que publicó AlphaTensor (menos de 1 MB, una vez)

† Lo instala el propio cuaderno con %pip install -q, y por eso ninguno de los dos está en el comando de arriba.