Skip to content

facebookresearch/theseus

Repository files navigation

Theseus Logo

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

Theseus is 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 .

    If you are interested in contributing to theseus, instead install

    pip install -e ".[dev]"

    and follow the more detailed instructions in CONTRIBUTING.

  • 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

License

Theseus is MIT licensed. See the LICENSE for details.