[WIP][DO_NOT_MERGE] bundle adjustment in the eager mode #378
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces significant improvements to the
pypose
optimization and Lie tensor operations, with a focus on adding sparse optimization support and refactoring mathematical operations for better performance and readability.Sparse Optimization Support
Added optional sparse mode to the
LevenbergMarquardt
optimizer (pypose/optim/optimizer.py
), leveraging the BAE library for efficient sparse matrix operations. This includes new logic for sparse Jacobian computation, parameter updates, and optimization steps. The optimizer now supports both dense and sparse workflows, with runtime checks for BAE availability. [1] [2] [3] [4]Implemented custom sparse Jacobian calculation and parameter update logic, including handling for SE3 gradients and integration with BAE’s sparse tensor formats. [1] [2]
Refactoring and Mathematical Improvements
pypose/lietensor/operation.py
to use element-wise arithmetic and broadcasting instead of advanced indexing, improving readability and performance. This includes changes inso3_Jl_inv
,calcQ
, and SE3-related functions. [1] [2] [3] [4] [5]Solver and Linear Algebra Updates
pypose/optim/solver.py
to handle input dimensions more robustly, replaced custom matrix-vector multiplication with native PyTorch operations. [1] [2]API and Interface Changes
target
argument inforward
methods) and improved documentation for new sparse features. [1] [2]Cleanup
pypose/sparse/ops.py
related to sparse matrix multiplication registration.