user@devops:~$ cat README.md
Cuantizacion INT8 - PTQ y QAT para comprimir modelos 4x
# Descripción
Cuantizacion INT8 implementada con la API de cuantizacion FX de PyTorch sobre una CNN propia (421.834 params, 1.62 MB) entrenada en Fashion-MNIST (split estratificado 4.000/1.000/5.000, seed 42, AdamW + cosine + early stopping, 53 s en CPU). Tres metodos comparados: (1) PTQ dinamica (torch.quantization.quantize_dynamic) - solo pesos a int8, activaciones en fp32, sin calibracion: acc 0.8698 (-0.06 pp), 0.46 MB, sin aceleracion; (2) PTQ estatica (API FX: fuse_fx + prepare_fx + calibracion con 500 muestras + convert_fx) - pesos y activaciones a int8: acc 0.8694 (-0.10 pp), 0.41 MB, 2.6x mas rapida (10.52 a 4.10 ms/batch) por kernels INT8 oneDNN; (3) QAT (prepare_qat_fx + 8 epocas de fine-tune + convert_fx) - FakeQuantize simula la cuantizacion durante el entrenamiento: acc 0.8712 (+0.08 pp vs baseline; la regularizacion del ruido de cuantizacion mejora la generalizacion), 0.41 MB. Analisis de error por capa: las capas densas se cuantizan mucho mejor (MSE 10-8 vs 10-1 en convolucionales); los rangos de activacion de las capas densas son ~10x mayores (FC1: [-32.8, 26.6] vs Conv1: [-3.2, 2.7]). La cuantizacion INT8 es casi gratis para redes pequenas: compresion 4x con perdida menor o igual a 0.1 pp. 8 visualizaciones.
# Características principales
$ Tres estrategias de cuantizacion INT8 con PyTorch: PTQ dinamica, PTQ estatica (API FX) y QAT - de 1.62 MB a 0.41 MB (-74%)
$ CNN propia con patron fusionable Conv-BN-ReLU: 421.834 params entrenada en Fashion-MNIST (4.000/1.000/5.000, seed 42, AdamW + cosine + early stopping en 53 s CPU)
$ PTQ estatica via API FX: fuse_fx + prepare_fx + calibracion con 500 muestras + convert_fx - pesos y activaciones int8 con kernels oneDNN
$ QAT (prepare_qat_fx): FakeQuantize simula la cuantizacion durante el entrenamiento - la red aprende a convivir con el ruido y generaliza mejor (+0.08 pp)
$ La precision se mantiene: perdida menor o igual a 0.1 pp en PTQ - la cuantizacion INT8 es casi gratis para redes pequenas
$ PTQ estatica 2.6x mas rapida en CPU (10.52 a 4.10 ms/batch) al cuantizar tambien las activaciones
$ Las capas densas se cuantizan mucho mejor que las convolucionales (MSE 10-8 vs 10-1) - analisis de error por capa
$ 8 visualizaciones: curvas de entrenamiento, histogramas fp32 vs int8, error por capa, rangos de activacion, precision, tamano, latencia y matrices de confusion
# Galería
# Tecnologías utilizadas