Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wasserstein Auto-Encoders of Merge Trees (and Persistence Diagrams) #1006

Merged
merged 49 commits into from
Jun 27, 2024

Conversation

MatPont
Copy link
Contributor

@MatPont MatPont commented Jan 30, 2024

This PR adds the code corresponding to the following work:

Wasserstein Auto-Encoders of Merge Trees (and Persistence Diagrams)
Mathieu Pont, Julien Tierny
IEEE Transactions on Visualization and Computer Graphics, 2023

It adds 2 filters to TTK : MergeTreeAutoencoder and MergeTreeAutoencoderDecoding.

The first one, MergeTreeAutoencoder, takes an ensemble of merge trees or persistence diagrams as input and compute a wasserstein auto-encoding minimizing the reconstruction error of the data.
It outputs the processed input data (with some information attached to them, like correlation and so on), the origins of each basis, the vectors of each basis, the coefficients of the input for each layer (i.e. the coordinates of each input for each basis).

The second filter, MergeTreeAutoencoderDecoding, is used to reconstruct merge trees (or persistence diagrams) given the model parameters, it can reconstruct the input and can construct other trees/diagrams like user-defined locations in the latent space.
It takes as input the outputs of the previous filter (except the processed input data) and output an ensemble of merge trees (or persistence diagrams).

It also adds the Torch support to TTK.

Copy link
Collaborator

@julien-tierny julien-tierny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hi mathieu,
thanks a lot for the PR.
here's a first batch of reviews (more to come).
in short:

  • I believe the code should be compatible with the latest version of libtorch (at least version 2)
  • there's a few occurrences where some minimal documentation should be included
  • some re-wording here and there (especially change "geodesic" into "axis" and "geodesics" into "axes").
    thanks for the fixes

CMake/config.cmake Show resolved Hide resolved
CMake/Print.cmake Outdated Show resolved Hide resolved
CMake/config.cmake Outdated Show resolved Hide resolved
CMake/config.cmake Show resolved Hide resolved
core/vtk/ttkMergeTreeAutoencoder/ttkMergeTreeAutoencoder.h Outdated Show resolved Hide resolved
core/vtk/ttkMergeTreeAutoencoder/ttkMergeTreeAutoencoder.h Outdated Show resolved Hide resolved
Copy link
Collaborator

@julien-tierny julien-tierny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok, here's my second batch of comments (last batch for the moment).

Copy link
Collaborator

@julien-tierny julien-tierny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @MatPont ,
thanks for the PR, I added a few more remarks (we can discuss them at our next meeting). Best,

paraview/xmls/MergeTreeAutoencoder.xml Show resolved Hide resolved
paraview/xmls/MergeTreeAutoencoder.xml Outdated Show resolved Hide resolved
paraview/xmls/MergeTreeAutoencoder.xml Outdated Show resolved Hide resolved
paraview/xmls/MergeTreeAutoencoder.xml Show resolved Hide resolved
paraview/xmls/MergeTreeAutoencoder.xml Outdated Show resolved Hide resolved
@MatPont MatPont requested a review from julien-tierny May 2, 2024 14:07
@julien-tierny julien-tierny merged commit 2035bd7 into topology-tool-kit:dev Jun 27, 2024
45 checks passed
@MatPont MatPont deleted the mt_wae branch September 17, 2024 11:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants