TTK
Loading...
Searching...
No Matches
ttk::TopologicalDimensionReduction Class Reference

TTK base class that embeds points into 2D, under topological constraints. More...

#include <TopologicalDimensionReduction.h>

Inheritance diagram for ttk::TopologicalDimensionReduction:
ttk::Debug ttk::BaseClass

Public Types

enum class  OPTIMIZER : std::uint8_t { ADAM = 0 , SGD = 1 , LBFGS = 2 }
 
enum class  MODEL : std::uint8_t { AUTOENCODER = 0 , AUTODECODER = 1 , DIRECT = 2 }
 
using REGUL = TopologicalLoss::REGUL
 

Additional Inherited Members

- Public Member Functions inherited from ttk::Debug
 Debug ()
 
 ~Debug () override
 
virtual int setDebugLevel (const int &debugLevel)
 
int setWrapper (const Wrapper *wrapper) override
 
int printMsg (const std::string &msg, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::vector< std::string > &msgs, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printErr (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
 
int printWrn (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const double &memory, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::vector< std::vector< std::string > > &rows, const debug::Priority &priority=debug::Priority::INFO, const bool hasHeader=true, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const
 
int printMsg (const debug::Separator &separator, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const
 
void setDebugMsgPrefix (const std::string &prefix)
 
- Public Member Functions inherited from ttk::BaseClass
 BaseClass ()
 
virtual ~BaseClass ()=default
 
int getThreadNumber () const
 
virtual int setThreadNumber (const int threadNumber)
 
- Protected Member Functions inherited from ttk::Debug
int printMsgInternal (const std::string &msg, const std::string &right, const std::string &filler, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsgInternal (const std::string &msg, const debug::Priority &priority, const debug::LineMode &lineMode, std::ostream &stream=std::cout) const
 
int welcomeMsg (std::ostream &stream)
 
- Protected Attributes inherited from ttk::Debug
int debugLevel_
 
std::string debugMsgPrefix_
 
std::string debugMsgNamePrefix_
 
- Protected Attributes inherited from ttk::BaseClass
bool lastObject_
 
int threadNumber_
 
Wrapperwrapper_
 
- Static Protected Attributes inherited from ttk::Debug
static COMMON_EXPORTS debug::LineMode lastLineMode = ttk::debug::LineMode::NEW
 

Detailed Description

TTK base class that embeds points into 2D, under topological constraints.

The TopologicalDimensionReduction class provides a backend for dimension reduction using autoencoders, with possible constraints on the preservation of the topology of the input high dimensional point cloud when projecting in low dimension

Author
Mattéo Clémot matte.nosp@m.o.cl.nosp@m.emot@.nosp@m.univ.nosp@m.-lyon.nosp@m.1.fr
Date
2024.

This module defines the TopologicalDimensionReduction class that serves as a backend for the DimensionReduction module. It embeds high-dimensional point clouds into 2D, under topological constraints, with an autoencoder-based approach.

Online examples:

  • Topological Autoencoders++ Teaser example
    Related publications
    "Topological Autoencoders"
    Michael Moor, Max Horn, Bastian Rieck, Karsten Borgwardt,
    Proceedings of the 37th International Conference on Machine Learning,


"Optimizing persistent homology-based functions"
Mathieu Carriere, Frederic Chazal, Marc Glisse, Yuichi Ike, Hariprasad Kannan, Yuhei Umeda,
Proceedings of the 38th International Conference on Machine Learning,


  1. "Topological Autoencoders++: Fast and Accurate Cycle-Aware Dimensionality Reduction"
    Mattéo Clémot, Julie Digne, Julien Tierny,
    IEEE Transactions on Visualization and Computer Graphics. Accepted, to be presented at IEEE VIS 2026.
See also
DimensionReduction.cpp for a usage example.

Definition at line 55 of file TopologicalDimensionReduction.h.

Member Typedef Documentation

◆ REGUL

Member Enumeration Documentation

◆ MODEL

enum class ttk::TopologicalDimensionReduction::MODEL : std::uint8_t
strong
Enumerator
AUTOENCODER 

AutoEncoder architecture

AUTODECODER 

AutoDecoder architecture

DIRECT 

Direct optimization

Definition at line 67 of file TopologicalDimensionReduction.h.

◆ OPTIMIZER

enum class ttk::TopologicalDimensionReduction::OPTIMIZER : std::uint8_t
strong
Enumerator
ADAM 

Adaptive Moment Estimation

SGD 

Stochastic Gradient Descent

LBFGS 

Limited-memory Broyden–Fletcher–Goldfarb–Shanno

Definition at line 58 of file TopologicalDimensionReduction.h.


The documentation for this class was generated from the following file: