Proyecto de investigación que compila el flujo de control habitual de JavaScript en una red diferenciable de multiplicaciones de matrices con pesos escritos a mano.
pnnl/neuromancer
Biblioteca de programación diferenciable basada en PyTorch para optimización paramétrica con restricciones, identificación de sistemas basada en física y control predictivo paramétrico.
- Estrellas
- 1,383
- Forks
- 185
- Issues abiertos
- 16
- Último commit
- hace 5 horas
¿Qué es?
NeuroMANCER es una biblioteca de programación diferenciable escrita en PyTorch para aprender soluciones a problemas de optimización paramétrica con restricciones, crear modelos de sistemas dinámicos basados en la física y aprender políticas de control. Permite combinar redes neuronales con computación científica para incorporar directamente las ecuaciones del dominio, las restricciones y el conocimiento previo al proceso de aprendizaje.
La biblioteca ofrece una interfaz de programación simbólica para definir variables, restricciones y objetivos, además de las abstracciones Node y System para componer módulos neuronales y modelos dinámicos. Incluye ODE neuronales, operadores de Koopman, SINDy, redes de Kolmogorov-Arnold, codificadores de funciones, operadores neuronales como DeepONet y Fourier Neural Operators, y redes neuronales informadas por la física para PDE. También incluye control predictivo diferenciable y capas de optimización convexa diferenciable para el control y el aprendizaje sujeto a restricciones de seguridad.
El repositorio incluye una amplia colección de tutoriales listos para usar en Colab y ejemplos de distintos dominios, como la dinámica térmica de edificios y el control de sistemas HVAC, y se integra con PyTorch Lightning para el entrenamiento en GPU y en varias GPU. Se puede instalar con pip.
Funciones clave
- 01Interfaz simbólica para incorporar ecuaciones físicas, restricciones y objetivos a los problemas de aprendizaje.
- 02Optimización paramétrica con restricciones mediante funciones de pérdida basadas en penalizaciones y capas de optimización convexa diferenciable.
- 03Aprendizaje de modelos de sistemas dinámicos con ODE neuronales, operadores de Koopman, SINDy y modelos de espacio de estados.
- 04Control predictivo diferenciable para aprender políticas de control de sistemas no lineales.
- 05Redes neuronales informadas por la física y operadores neuronales como DeepONet y Fourier Neural Operator.
- 06Integración con PyTorch Lightning para el entrenamiento en GPU y en varias GPU.
Casos de uso
- Gestión energética de edificios, como aprender a controlar la temperatura interior con sistemas HVAC.
- Aprendizaje de modelos sustitutos de sistemas físicos a partir de datos medidos, respetando las ecuaciones conocidas.
- Resolver rápidamente familias de problemas de optimización con restricciones para muchos valores de parámetros.
- Crear prototipos de redes neuronales informadas por la física para PDE, como las de difusión o flujo de fluidos.
Inicio rápido
- 1
Instala la biblioteca desde PyPI
pip install neuromancer - 2
Ejecuta el ejemplo rápido de optimización con restricciones en Python (define el modelo, los nodos y la pérdida como se indica en el README)
Antes de usarlo
- La licencia figura como NOASSERTION, por lo que hay que consultar las condiciones en el repositorio antes de usarla.
- La mayoría de los tutoriales y ejemplos están diseñados para flujos de trabajo de PyTorch optimizados para GPU y pueden ser lentos en CPU.
Temas
Preguntas frecuentes
- ¿Qué es neuromancer?
- Biblioteca de programación diferenciable basada en PyTorch para optimización paramétrica con restricciones, identificación de sistemas basada en física y control predictivo paramétrico. NeuroMANCER es una biblioteca de programación diferenciable escrita en PyTorch para aprender soluciones a problemas de optimización paramétrica con restricciones, crear modelos de sistemas dinámicos basados en la física y aprender políticas de control. Permite combinar redes neuronales con computación científica para incorporar directamente las ecuaciones del dominio, las restricciones y el conocimiento previo al proceso de aprendizaje.
- ¿neuromancer es gratuito? ¿Qué licencia tiene?
- neuromancer es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿neuromancer sigue mantenido?
- Mantenimiento activo. El último commit de neuromancer fue el 22 oct 2026.
- ¿Para qué puedo usar neuromancer?
- Gestión energética de edificios, como aprender a controlar la temperatura interior con sistemas HVAC. Aprendizaje de modelos sustitutos de sistemas físicos a partir de datos medidos, respetando las ecuaciones conocidas. Resolver rápidamente familias de problemas de optimización con restricciones para muchos valores de parámetros. Crear prototipos de redes neuronales informadas por la física para PDE, como las de difusión o flujo de fluidos.
- ¿Cómo se instala neuromancer?
- Instala la biblioteca desde PyPI: pip install neuromancer Ejecuta el ejemplo rápido de optimización con restricciones en Python (define el modelo, los nodos y la pérdida como se indica en el README)
- ¿Dónde consigo neuromancer?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/pnnl/neuromancer
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Framework para definir modelos de aprendizaje automático de última generación de texto, visión, audio y modalidades múltiples, para inferencia y entrenamiento.
Keras 3 es un framework de deep learning que funciona con JAX, TensorFlow, PyTorch u OpenVINO para inferencia.
Ultralytics YOLO es una biblioteca de Python para visión artificial que abarca detección, segmentación, clasificación, estimación de pose, seguimiento y más.
Un entorno mínimo y fácil de modificar que cubre todo el flujo de trabajo de los LLM, desde la tokenización y el preentrenamiento hasta el ajuste fino, la evaluación y el chat, en un único nodo con GPU.
Ultralytics YOLOv5 es un kit de herramientas de visión artificial basado en PyTorch para detectar objetos, segmentar instancias y clasificar imágenes, con funciones de entrenamiento y exportación.