Theseus: A Library for Differentiable Nonlinear Optimization

Luis Pineda, Taosha Fan, Maurizio Monge, Shobha Venkataraman, Paloma Sodhi +8 more
7/19/2022
cs.ROcs.CVcs.LG

No official code found. Best implementation: facebookresearch/theseus (2,061 stars, MIT, PyTorch, last commit 2025-01-16).

Abstract

We present Theseus, an efficient application-agnostic open source library for differentiable nonlinear least squares (DNLS) optimization built on PyTorch, providing a common framework for end-to-end structured learning in robotics and vision. Existing DNLS implementations are application specific and do not always incorporate many ingredients important for efficiency. Theseus is application-agnostic, as we illustrate with several example applications that are built using the same underlying differentiable components, such as second-order optimizers, standard costs functions, and Lie groups. For efficiency, Theseus incorporates support for sparse solvers, automatic vectorization, batching, GPU acceleration, and gradient computation with implicit differentiation and direct loss minimization. We do extensive performance evaluation in a set of applications, demonstrating significant efficiency gains and better scalability when these features are incorporated. Project page: https://sites.google.com/view/theseus-ai

View on arXivView PDF

Code Implementations(1)

PyTorchMIT

A library for differentiable nonlinear optimization

2,061153C, C++Nov 18, 20211 years agoMIT
bilevel-optimizationcomputer-visiondeep-learningdifferentiable-optimizationembodied-ai+6 more

Similar Papers

Cite this paper

@article{pineda2022theseus,
  title  = {Theseus: A Library for Differentiable Nonlinear Optimization},
  author = {Luis Pineda and Taosha Fan and Maurizio Monge and Shobha Venkataraman and Paloma Sodhi and Ricky T. Q. Chen and Joseph Ortiz and Daniel DeTone and Austin Wang and Stuart Anderson and Jing Dong and Brandon Amos and Mustafa Mukadam},
  year   = {2022},
  eprint = {2207.09442},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2207.09442v3}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2207.09442.svg)](https://codeofpaper.com/paper/2207.09442)

Discussion