Inicio · Parte 06 — Álgebra lineal II: descomposiciones y tensores
las dimensiones se alinean por la derecha
compatibles si son iguales o alguna vale 1
(2,3) + (3,) → (2,3); (2,3) + (2,1) → (2,3)
Broadcasting es la regla que permite operar arrays de shapes distintos sin escribir bucles ni replicar datos. Las dimensiones se alinean por la derecha y se consideran compatibles si coinciden o si una de ellas vale 1; en ese caso, la de tamaño 1 se «estira» conceptualmente.
La clave es que el estiramiento no copia memoria: la implementación recorre el array pequeño repetidamente con stride cero. Por eso sumar un vector de sesgos a una matriz de activaciones es prácticamente gratis, y por eso normalizar por columna no requiere construir una matriz de medias.
Las reglas son estrictas y su violación produce uno de dos resultados. El bueno: un error de shape que detiene el programa. El malo: una operación que «funciona» pero no es la pretendida, típicamente por confundir (n,) con (n,1). Un vector (3,) sumado a una matriz (3,3) se suma por filas; si se quería por columnas, hay que escribir (3,1) explícitamente.
Ese matiz es la fuente de un error clásico al calcular distancias o normalizaciones. La defensa es anotar los shapes y usar None/np.newaxis de forma explícita en lugar de confiar en que la regla haga lo esperado.
Sumar una fila y una columna a la misma matriz.
matriz shape (2,3): [[1,2,3],[4,5,6]]
+ fila shape (3,): [10,20,30]
alinea por la derecha: (2,3) y (3,) → (2,3)
resultado: [[11,22,33],[14,25,36]] suma por filas
+ columna shape (2,1): [[100],[200]]
(2,3) y (2,1) → (2,3)
resultado: [[101,102,103],[204,205,206]] suma por columnas
Incompatible: (2,3) + (2,) → error
Broadcasting: reglas de compatibilidad de shapes.
python classes/part-06-algebra-lineal-ii-descomposiciones-y-tensores/138-broadcasting-como-operacion-tensorial/lab.py
compmath run 138
matriz_shapefila_shapecolumna_shapematriz+filamatriz+columnareglashapes_incompatiblesno_copia_memoria{
"matriz_shape": [
2,
3
],
"fila_shape": [
3
],
"columna_shape": [
2,
1
],
"matriz+fila": [
[
11.0,
22.0,
33.0
],
[
14.0,
25.0,
36.0
]
],
"matriz+columna": [
[
101.0,
102.0,
103.0
],
[
204.0,
205.0,
206.0
]
],
"regla": "las dimensiones se alinean por la derecha; 1 se estira"
}
Suma de sesgos, normalización por eje, cálculo de matrices de distancias, aplicación de máscaras y prácticamente cualquier operación vectorizada.
LoRA factoriza matrices de bajo rango, la atención se define con productos tensoriales y la estabilidad del entrenamiento depende del espectro de los pesos.
10.1038/s41586-020-2649-2 verificado en Crossref (2026-08-20).