Major Features and Improvements
Introduction
This is the first release in open-source of the new library `giotto-deep`. This library is the doorway to bring together topological data analysis and deep learning. `giotto-deep` can also work with many deep learning technologies that are not topology-related and its simple API allow researchers to focus on building new model/layer, losses,... while doing automatically the dull and repetitive work.
Main dependencies
The library is built on top of [PyTorch](https://pytorch.org) and it uses most of its features.
The hyper parameters optimisation capabilities are based on [Optuna](https://optuna.readthedocs.io/en/stable/) and the integration will soon allow the user to distribute the computations over a Kubernetes cluster.
The interpretability tools are based on [captum](https://captum.ai)
[Tensorboard](https://pytorch.org/docs/stable/tensorboard.html) is heavily used for plotting
Major innovation
The main innovations proposed in this version are
- The **Performer** algorithm ([here](https://arxiv.org/abs/2112.15210) the preprint)
- Persistence Diagram data type compatible with PyTorch and GPUs
- Persistence gradient implementation using [giotto-ph](https://github.com/giotto-ai/giotto-ph)
- Full integration with [tensorboard](https://pytorch.org/docs/stable/tensorboard.html) for plotting
- Fully fledged hyper parameter search capabilities, including the possibility to search over model architecture, automatically benchmarking the models over multiple datasets.
- Integrating over twenty interpretability tools (Saliency maps, GuidedGradCAM, Occlusions, Integrated Gradients, ...). The interpretability tools are based on [captum](https://captum.ai).
Ideal audience and user persona
We have built this library primarily to support applied mathematicians that know a great deal of cool unheard algorithms and would like to quickly combine their ideas with deep learning. The high-level API is very simple and require minimal efforts to run the HPOs and trainings.
Machine learning engineers and data scientist would find it useful to use `giotto-deep` for their analysis, as they can quickly build and train their models on a variety of use cases. Also, `giotto-deep` has simple APIs to build new data types as well as their preprocessing. A comprehensive example of this can be found by checking the persistence diagram data type.
Bug Fixes
None.
Backwards-Incompatible Changes
None.
Thanks to our Contributors
This release contains contributions from:
Matteo Caorsi matteocao
Raphael Reinauer raphaelreinauer
Nicolas Berkouk nberkouk
Sydney Hauke sydneyhauke
Abdul Jabbar
We are also grateful to all who filed issues or helped resolve them, asked and answered questions, and were part of inspiring discussions.