Construye tu propio runtime de contenedores
Construye un runtime de contenedores desde cero. Aísla procesos con namespaces, cgroups y chroot para entender cómo Docker inicia una imagen.
Go · C · Rust
Construye una red neuronal desde cero. Implementa propagación hacia adelante, funciones de pérdida y descenso de gradiente, y entrena tu propio modelo.
Constrúyelo en tu lenguaje
El tester trata tu programa como una caja negra: sirve cualquier lenguaje. Estos son los más cómodos para este proyecto.
El aprendizaje automático moderno parece complejo debido a frameworks enormes como PyTorch o TensorFlow, pero sus fundamentos se reducen a operaciones aritméticas elementales: sumas ponderadas, funciones de activación no lineales y cálculo de gradientes con la regla de la cadena.
En este proyecto construirás el núcleo de entrenamiento de una red neuronal desde cero, sin librerías externas de machine learning. Implementarás la combinación afín de una neurona, funciones de activación como ReLU y Sigmoide, métricas de pérdida como MSE y BCE, y el bucle de optimización con descenso de gradiente para clasificar datos de forma determinista.
6 etapas repartidas en 3 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.
Calcula la combinación lineal de entradas ponderadas y aplica funciones de activación no lineales.
Mide el error de predicción con MSE y BCE, y actualiza los parámetros mediante el gradiente descendente.
Ejecuta épocas completas de optimización y realiza predicciones deterministas en clasificación binaria.
Construye un runtime de contenedores desde cero. Aísla procesos con namespaces, cgroups y chroot para entender cómo Docker inicia una imagen.
Go · C · Rust
Construye un recolector de basura desde cero. Implementa marcado y barrido, rastrea objetos vivos y recupera memoria como los runtimes que usas a diario.
C · C++ · Rust
Construye un shell POSIX desde cero. Usa fork, exec, tuberías y redirecciones para escribir un intérprete de comandos que ejecute programas reales.
C · Rust · Go · Zig