neuromancer  by pnnl

PyTorch library for differentiable programming in scientific computing

created 4 years ago
1,168 stars

Top 34.0% on sourcepulse

GitHubView on GitHub
Project Summary

NeuroMANCER is a PyTorch-based library for solving parametric constrained optimization, physics-informed system identification, and parametric model predictive control. It targets researchers and engineers needing to integrate machine learning with scientific computing for end-to-end differentiable models, offering tools for Learning to Optimize (L2O), Learning to Model (L2M), and Learning to Control (L2C) tasks.

How It Works

NeuroMANCER utilizes a symbolic programming interface to embed prior knowledge, physics, and constraints directly into learning paradigms. It supports state-of-the-art methods like Kolmogorov-Arnold Networks (KANs), Neural Ordinary Differential Equations (NODEs), SINDy, and differentiable convex optimization layers. This approach allows for the creation of highly customized, physics-aware, and constraint-satisfying models and control policies.

Quick Start & Requirements

  • Install via pip: pip install neuromancer
  • Requires Python 3.11+.
  • Extensive tutorials and Colab notebooks are available for getting started.
  • Documentation: https://pnnl.github.io/neuromancer/

Highlighted Details

  • Supports advanced L2O, L2M, and L2C tasks with applications in building energy systems, fluid dynamics, and control.
  • Integrates SOTA methods including KANs, NODEs, SINDy, and TorchSDE for stochastic processes.
  • Features a NeuroMANCER-GPT Assistant for RAG-based LLM integration to aid understanding and coding.
  • PyTorch Lightning integration streamlines training, supports multi-GPU, and handles large-scale tasks.

Maintenance & Community

  • Active development with lead developers Jan Drgona and Aaron Tuor, and core developers Rahul Birmiwal and Bruno Jacob.
  • Numerous notable contributors and scientific advisors.
  • Community development guidelines are available for contributions and discussions.
  • Release notes are documented.

Licensing & Compatibility

  • BSD license, generally permissive for commercial use and closed-source linking.

Limitations & Caveats

  • While supporting Python 3.11, the README mentions a new feature for Python 3.11 support, implying potential prior version limitations. The specific version compatibility for all dependencies is not explicitly detailed.
Health Check
Last commit

1 week ago

Responsiveness

1 day

Pull Requests (30d)
2
Issues (30d)
1
Star History
70 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.