Skip to content

Latest commit

 

History

History
67 lines (49 loc) · 2.75 KB

ROADMAP.md

File metadata and controls

67 lines (49 loc) · 2.75 KB

What's the future of pytorch-topological?


Vision pytorch-topological aims to be the first stop for building powerful applications using topological machine learning algorithms, i.e. algorithms that are capable of jointly leveraging geometrical and topological features in a data set


To make this vision a reality, we first and foremost need to rely on exceptional documentation. It is not enough to write outstanding code; we have to demonstrate the power of topological algorithms to our users by writing well-documented code and contributing examples.

Here are short-term and long-term goals, roughly categorised:

API

  • Provide consistent way of handling batches or tensor inputs. Most of the modules rely on sparse inputs as lists.
  • Support different backends for calculating persistent homology. At present, we use GUDHI for cubical complexes and giotto-ph for Vietoris--Rips complexes. It would be nice to be able to swap implementations easily.
  • Check out the use of sparse tensors; could be a potential way forward for representing persistence information. The drawback is that we cannot fill everything with zeroes; there has to be a way to indicate 'unset' information.

Complexes

  • Add (rudimentary) support for alpha complexes: a basic implementation is already present.

Distances and kernels

At present, the module supports Wasserstein distance calculations and bottleneck distance calculations between persistence diagrams. In addition to this, several 'pseudo-distances' based on summary statistics have been implemented. There are numerous kernels out there that could be included:

This list is incomplete.

Layers

There are quite a few topology-based layers that have been proposed by members of the community. We should include all of them to make them available with a single, consistent interface.

  • Include PersLay. This requires a conversion from TensorFlow code.
  • Include PLLay. This requires a conversion from TensorFlow code.
  • Include SLayer. This is still an ongoing effort.
  • Include TopologyLayer.

Loss terms