Cuadernos

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

Cada sección del taller tiene su cuaderno. Uno más queda al final del día, como estudio 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

Todos los cuadernos tienen las mismas cinco partes, así que siempre sabes dónde estás:

  1. Encabezado: el título de la sección, sus objetivos y una insignia Open in Colab.
  2. Preparación: instala e importa solo lo que esa sección necesita, y carga sus propios datos. Cada cuaderno es autónomo: sin archivos locales y sin depender de ningún otro cuaderno.
  3. Explicación y código, alternándose. Construyen poco a poco, en lugar de soltarte un muro de código.
  4. Ejercicios: esqueletos # TODO sacados del manual, cada uno seguido de una celda de solución plegada. Ábrela después de intentarlo.
  5. Cierre: el control de Kahoot de esa sección y un enlace de vuelta aquí.

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

# Cuaderno Contenido Colab
00 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. Open In Colab
01 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. Open In Colab
02 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. Open In Colab
03 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. Open In Colab
04 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. Open In Colab
05 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. Open In Colab
06 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. Open In Colab
07 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. Open In Colab
08 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. Open In Colab
09 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. Open In Colab
10 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. Open In Colab
11 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. Open In Colab
12 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. Open In Colab

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. El 14 y el 15 retoman donde para la sección 11: allí CP se ajusta como uno de cuatro métodos, llamando a la librería como caja negra a propósito; aquí se ajusta a mano y después se cambia qué significa «ajustar».

# Estudio a fondo Colab
13 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. Open In Colab
14 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. Open In Colab
15 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. Open In Colab

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 todos los cuadernos dibujan algo y todos construyen widgets: los trece con deslizadores, y el 00, cuyo único widget es su celda de predicción. 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. Por eso los cuadernos 01, 03, 04, 06 y 13 se ejecutan sin red. Los otros nueve descargan algo la primera vez que se ejecutan: un CSV desde GitHub, el clip de vídeo de la tormenta desde Wikimedia, o la grabación de voz para el ejercicio E del cuaderno 12. La tabla de abajo dice cuál, cuaderno por 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)

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