diff --git a/CITATION.cff b/CITATION.cff index 6f0c32d17..ec98ad281 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -12,7 +12,7 @@ authors: - family-names: "Sodhi" given-names: "Paloma" - family-names: "Chen" - given-names: "Ricky" + given-names: "Ricky T. Q." - family-names: "Ortiz" given-names: "Joseph" - family-names: "DeTone" @@ -31,7 +31,7 @@ title: "Theseus: A Library for Differentiable Nonlinear Optimization" url: "https://github.com/facebookresearch/theseus" preferred-citation: type: article - journal: arXiv preprint arXiv:2207.09442 + journal: Advances in Neural Information Processing Systems title: "Theseus: A Library for Differentiable Nonlinear Optimization" url: "https://arxiv.org/abs/2207.09442" year: 2022 @@ -47,7 +47,7 @@ preferred-citation: - family-names: "Sodhi" given-names: "Paloma" - family-names: "Chen" - given-names: "Ricky" + given-names: "Ricky T. Q." - family-names: "Ortiz" given-names: "Joseph" - family-names: "DeTone" diff --git a/README.md b/README.md index 4b0322677..7838a0f31 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ Our implementation provides an easy to use interface to build custom optimizatio - Gauss-Newton, Levenberg–Marquardt - [Linear solvers](https://github.com/facebookresearch/theseus/tree/main/theseus/optimizer/linear) - Dense: Cholesky, LU; Sparse: CHOLMOD, LU -- [Commonly used costs](https://github.com/facebookresearch/theseus/tree/main/theseus/embodied), [AutoDiffCostFunction](https://github.com/facebookresearch/theseus/blob/main/theseus/core/cost_function.py) +- [Commonly used costs](https://github.com/facebookresearch/theseus/tree/main/theseus/embodied), [AutoDiffCostFunction](https://github.com/facebookresearch/theseus/blob/main/theseus/core/cost_function.py), [RobustCostFunction](https://github.com/facebookresearch/theseus/blob/main/theseus/core/robust_cost_function.py) - [Lie groups](https://github.com/facebookresearch/theseus/tree/main/theseus/geometry) - [Robot kinematics](https://github.com/facebookresearch/theseus/blob/main/theseus/embodied/kinematics/kinematics_model.py) @@ -72,7 +72,8 @@ We support several features that improve computation times and memory consumptio - [Sparse linear solvers](https://github.com/facebookresearch/theseus/tree/main/theseus/optimizer/linear) - Batching and GPU acceleration - [Automatic vectorization](https://github.com/facebookresearch/theseus/blob/main/theseus/core/vectorizer.py) -- [Backward modes](https://github.com/facebookresearch/theseus/blob/main/theseus/optimizer/nonlinear/nonlinear_optimizer.py): Implicit, Truncated, Direct Loss Minimization ([DLM](https://github.com/facebookresearch/theseus/blob/main/theseus/theseus_layer.py)), Sampling ([LEO](https://github.com/facebookresearch/theseus/blob/main/examples/state_estimation_2d.py)) +- [Backward modes](https://github.com/facebookresearch/theseus/blob/main/theseus/optimizer/nonlinear/nonlinear_optimizer.py) + - Implicit, Truncated, Direct Loss Minimization ([DLM](https://github.com/facebookresearch/theseus/blob/main/theseus/theseus_layer.py)), Sampling ([LEO](https://github.com/facebookresearch/theseus/blob/main/examples/state_estimation_2d.py)) ## Getting Started @@ -86,6 +87,7 @@ We support several features that improve computation times and memory consumptio - `conda install -c conda-forge suitesparse` (Mac). ### Installing + #### **pypi** ```bash pip install theseus-ai @@ -137,7 +139,7 @@ objective.add(cost_function) layer = th.TheseusLayer(th.GaussNewton(objective, max_iterations=10)) phi = torch.nn.Parameter(x_true + 0.1 * torch.ones_like(x_true)) -outer_optimizer = torch.optim.RMSprop([phi], lr=0.001) +outer_optimizer = torch.optim.Adam([phi], lr=0.001) for epoch in range(10): solution, info = layer.forward( input_tensors={"x": phi.clone(), "v": torch.ones(1, 1)}, @@ -157,8 +159,8 @@ If you use Theseus in your work, please cite the [paper](https://arxiv.org/abs/2 ```bibtex @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 Chen and Joseph Ortiz and Daniel DeTone and Austin Wang and Stuart Anderson and Jing Dong and Brandon Amos and Mustafa Mukadam}, - journal = {arXiv preprint arXiv:2207.09442}, + author = {Luis Pineda and Taosha Fan and Maurizio Monge and Shobha Venkataraman and Paloma Sodhi and Ricky TQ Chen and Joseph Ortiz and Daniel DeTone and Austin Wang and Stuart Anderson and Jing Dong and Brandon Amos and Mustafa Mukadam}, + journal = {Advances in Neural Information Processing Systems}, year = {2022} } ``` diff --git a/docs/source/img/theseuslayer.png b/docs/source/img/theseuslayer.png index 1b8833964..e894d509f 100644 Binary files a/docs/source/img/theseuslayer.png and b/docs/source/img/theseuslayer.png differ diff --git a/examples/simple_example.py b/examples/simple_example.py index b8ec5f689..c7a7a9f38 100644 --- a/examples/simple_example.py +++ b/examples/simple_example.py @@ -45,7 +45,7 @@ def error_fn(optim_vars, aux_vars): # returns y - v * exp(x) layer = th.TheseusLayer(th.GaussNewton(objective, max_iterations=10)) phi = torch.nn.Parameter(x_true + 0.1 * torch.ones_like(x_true)) -outer_optimizer = torch.optim.RMSprop([phi], lr=0.001) +outer_optimizer = torch.optim.Adam([phi], lr=0.001) for epoch in range(20): solution, info = layer.forward( input_tensors={"x": phi.clone(), "v": torch.ones(1, 1)}, diff --git a/theseus/__init__.py b/theseus/__init__.py index 51ad5f164..f0c6ddea2 100644 --- a/theseus/__init__.py +++ b/theseus/__init__.py @@ -3,7 +3,7 @@ # This source code is licensed under the MIT license found in the # LICENSE file in the root directory of this source tree. -__version__ = "0.1.0" +__version__ = "0.1.1" from .core import ( CostFunction,