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:
- Encabezado: el título de la sección, sus objetivos y una insignia Open in Colab.
- 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.
- Explicación y código, alternándose. Construyen poco a poco, en lugar de soltarte un muro de código.
- Ejercicios: esqueletos
# TODOsacados del manual, cada uno seguido de una celda de solución plegada. Ábrela después de intentarlo. - 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. |
|
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. |
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. |
|
| 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. |
|
| 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. |
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 labEl 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
| 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.