fugw icon indicating copy to clipboard operation
fugw copied to clipboard

Scalable python GPU solvers for fused unbalanced gromov-wasserstein optimal transport problems, with routines and examples to align brain data (fMRI)

Results 11 fugw issues
Sort by recently updated
recently updated
newest added

After a few iterations of the dense/sparse barycenter solver, NaNs appear in the computation of the barycenter features. This is due to zero div error in the line: ``` acc...

Hi, I think something may be wrong when computing the mapped result after getting matrix pi. please see the [transform code](https://github.com/alexisthual/fugw/blob/main/src/fugw/mappings/dense.py#L338) from line 338 to 342 in fugw/src/fugw/mappings/dense.py ```python pi.T...

Implements coarse-to-fine estimation of barycenters with sparse transport plans. - [x] Docstrings - [x] Unit tests

enhancement

In ``fugw.mapping`` : ``` # Store variables of interest in model self.pi = res["pi"].detach().cpu() ``` Causes problems when dealing with barycenters as the transport plans get detached before the next...

As discussed with @bthirion, the cost matrix should be factored via Nystroem approximation for dense mappings as it is the case with the sparse solvers. This should greatly improve time/memory...

enhancement

Following #50, examples that contain the dense mapping now longer compile as they pipe in the whole cost matrix instead of the factored embedding. Examples include: ``` 01_brain_alignment/plot_1_aligning_brain_dense.py 00_basics/plot_1_dense.py 02_miscellaneous/plot_3_memory_usage_callback.py...

Solves #49 . Dense mappings now use Nystroem approximation by default for the cost matrix. - [x] Fixed dense solver/mapping - [x] Adapted coarse-to-fine procedure - [ ] Adapt examples...

enhancement

Add examples of: - Dense barycenters on `fsaverage3` - Sparse barycenters on `fsaverage5` Probably on Haxby/Oasis datasets.

documentation

I agree, this concatenation of parameters is difficult to understand. It is somewhat consistent across solvers, but I think we should flatten these variables. Once again, I think this would...

I agree, most functions in `solvers/utils.py` are not meant to be public (because they are called through `fugw.mappings` instances, which themselves call `fugw.solvers` instances). I added a docstring, and suggest...