Skip to content

A library for differentiable nonlinear optimization

License

Notifications You must be signed in to change notification settings

kelvin34501/theseus

Repository files navigation

CircleCI License python 3.7, 3.8 pre-commit Code style: black

Theseus

A library for differentiable nonlinear optimization built on PyTorch to support constructing various problems in robotics and vision as end-to-end differentiable architectures.

The current focus is on nonlinear least squares with support for sparsity, batching, GPU, and backward modes for unrolling, truncated and implicit, and sampling based differentiation. This library is in beta with expected full release in mid 2022.

Getting Started

  • Prerequisites

    • We strongly recommend you install theseus in a venv or conda environment.
    • Theseus requires torch installation. To install for your particular CPU/CUDA configuration, follow the instructions in the PyTorch website.
    • Theseus also requires suitesparse, which you can install via:
      • sudo apt-get install libsuitesparse-dev (Ubuntu).
      • conda install -c conda-forge suitesparse (Mac).
  • Installing

    git clone https://github.com/facebookresearch/theseus.git && cd theseus
    pip install -e .
  • Running unit tests

    pytest theseus

    By default, unit tests include tests for our CUDA extensions. You can add the option -m "not cudaext" to skip them when installing without CUDA support.

  • See tutorials and examples to learn about the API and usage.

Additional Information

  • Use Github issues for questions, suggestions, and bugs.
  • See CONTRIBUTING if interested in helping out.
  • Theseus is being developed with the help of many contributors, see THANKS.

License

Theseus is MIT licensed. See the LICENSE for details.

About

A library for differentiable nonlinear optimization

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 93.3%
  • C++ 3.3%
  • Cuda 2.4%
  • Other 1.0%