giotto-deep

giotto-deep: A Python Package for Topological Deep Learning - Published in JOSS (2022)

https://github.com/giotto-ai/giotto-deep

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    2 of 12 committers (16.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

computational-geometry deep-learning image-processing nlp pytorch tda

Scientific Fields

Sociology Social Sciences - 87% confidence
Last synced: 4 months ago · JSON representation

Repository

Deep learning made topological.

Basic Info
  • Host: GitHub
  • Owner: giotto-ai
  • License: other
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 102 MB
Statistics
  • Stars: 84
  • Watchers: 4
  • Forks: 11
  • Open Issues: 6
  • Releases: 4
Topics
computational-geometry deep-learning image-processing nlp pytorch tda
Created about 6 years ago · Last pushed over 1 year ago
Metadata Files
Readme Contributing License Code of conduct Governance

README.md

image

Python package Deploy to gh-pages Upload Python Package DOI

giotto-deep

The first library to bring seamless integration between topological data analysis and deep learning on top of PyTorch. The code for Persformer will be released open-source soon together with Giotto-deep. It aims to make the day-to-day of researchers easy, allowing them to focus on inventing new models and layers rather than dealing with the more standard deep-learning code. It comes with optimized implementations for multi-GPU/TPU computations and the ability to run benchmarks and hyperparameter optimization in a few lines of code.

Documentation

You can find the documentation of this repository here: https://giotto-ai.github.io/giotto-deep/

Run tensorboard for visualization

In order to analyse the results of your models, you need to start tensorboard. On the terminal, move inside the /examples folder. There, run the following command: tensorboard --logdir=runs Afterwards go here and, after running the notebooks of interest, you will see all the visualization results that you stored in the writer = SummaryWriter().

Install user version

The simplest way to install giotto-deep is using pip: python -m pip install -U giotto-deep If necessary, this command will also automatically install all the library dependencies. Note: we recommend upgrading pip to a recent version as the above may fail on very old versions.

Install dev version

The first step to install the developer version of the package is to git clone this repository: git clone https://github.com/giotto-ai/giotto-deep.git The change the current working directory to the Repository root folder, e.g. cd giotto-deep. It is best practice to create a virtual environment for the project, e.g. using virtualenv: virtualenv -p python3.9 venv Activate the virtual environment (e.g. source venv/bin/activate on Linux or venv\Scripts\activate on Windows).

First make sure you have upgraded to the last version of pip with python -m pip install --upgrade pip Make sure you have the latest version of pytorch installed. You can do this by running the following command (if you have a GPU): pip install torch --extra-index-url https://download.pytorch.org/whl/cu113 Once you are in the root folder, install the package dynamically with: pip install -e .

Contributing

The giotto-deep project welcomes contributions of all kinds. Please see our contributing guidelines for more information.

We are using pre-commit hooks to ensure that the code is formatted correctly. To install the pre-commit hooks, run the following command from the root folder: pre-commit install The pre-commit hooks will run automatically before each commit. If you want to run the pre-commit hooks manually, run the following command from the root folder: pre-commit run --all-files

To run both unit and integration tests on macOS or Linux, simply run the following command from the root folder: bash local_test.bh

TPU support in Google Colab

I order to run your analysis on TPU cores, you ca use the following lines: !git clone https://username:token@github.com/giotto-ai/giotto-deep !ls !pip uninstall -y tensorflow !pip install -e giotto-deep/ !pip install cloud-tpu-client==0.10 https://storage.googleapis.com/tpu-pytorch/wheels/torch_xla-1.9-cp37-cp37m-linux_x86_64.whl Once you have run the lines above, please make sure to restart the runtime.

The code will automatically detect the TPU core and use it as default to run the experiments. GPUs are also automatically supported.

Owner

  • Name: giotto.ai
  • Login: giotto-ai
  • Kind: organization
  • Email: maintainers@giotto.ai

Adding a third dimension to AI

JOSS Publication

giotto-deep: A Python Package for Topological Deep Learning
Published
November 07, 2022
Volume 7, Issue 79, Page 4846
Authors
Matteo Caorsi ORCID
L2F SA, Rue du Centre 9, Saint-Sulpice, 1025, CH
Raphael Reinauer
Ecole Polytechnique Fédérale de Lausanne (EPFL), Laboratory for topology and neuroscience, Lausanne, 1015, CH
Nicolas Berkouk
Ecole Polytechnique Fédérale de Lausanne (EPFL), Laboratory for topology and neuroscience, Lausanne, 1015, CH
Editor
Øystein Sørensen ORCID
Tags
Python topological data analysis deep learning persformer

GitHub Events

Total
  • Watch event: 6
Last Year
  • Watch event: 6

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 802
  • Total Committers: 12
  • Avg Commits per committer: 66.833
  • Development Distribution Score (DDS): 0.507
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
matteocao m****s@g****i 395
raphaelreinauer r****r@g****m 256
matteocao 3****o 61
Abdul Jabbar a****r@n****i 22
Raphael Reinauer r****r@e****h 21
nberkouk b****s@m****l 18
hkirvesl h****i@e****h 16
Anthony I. Jaccard a****d@h****h 5
nberkouk 4****k 4
Matthias Kemper m****8@i****e 2
act-reds a****s@h****h 1
Sydney Hauke s****e@h****h 1

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 53
  • Total pull requests: 56
  • Average time to close issues: 3 months
  • Average time to close pull requests: 30 days
  • Total issue authors: 10
  • Total pull request authors: 9
  • Average comments per issue: 1.43
  • Average comments per pull request: 1.86
  • Merged pull requests: 37
  • Bot issues: 0
  • Bot pull requests: 3
Past Year
  • Issues: 1
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 1.0
  • Average comments per pull request: 1.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • raphaelreinauer (32)
  • matteocao (12)
  • AnthoJack (2)
  • fbarfi (1)
  • SauravMaheshkar (1)
  • hkirvesl (1)
  • WurmD (1)
  • shamsvahid2 (1)
  • nberkouk (1)
  • sehunfromdaegu (1)
Pull Request Authors
  • raphaelreinauer (31)
  • matteocao (7)
  • dependabot[bot] (5)
  • nberkouk (4)
  • AnthoJack (4)
  • hkirvesl (3)
  • giotto-learn (3)
  • yorickbrunet (1)
  • sydneyhauke (1)
Top Labels
Issue Labels
enhancement (23) bug (15) mid priority (11) top priority (7) documentation (6) low priority (5) good first issue (1) code_refactoring (1)
Pull Request Labels
dependencies (5) enhancement (3) code_refactoring (2)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 38 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 4
  • Total maintainers: 1
pypi.org: giotto-deep

Toolbox for Deep Learning and Topological Data Analysis.

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 38 Last month
Rankings
Dependent packages count: 6.6%
Stargazers count: 10.1%
Forks count: 12.8%
Average: 17.9%
Downloads: 29.3%
Dependent repos count: 30.6%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/deploy-gh-pages.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/push-docker-image.yml actions
  • actions/checkout v3 composite
  • docker/login-action v2 composite
.github/workflows/python-package-windows.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v2 composite
  • orgoro/coverage v3 composite
.github/workflows/python-package.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v2 composite
  • orgoro/coverage v3 composite
.github/workflows/python-publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
kubernetes/dockerfiles/jupyter-lab/Dockerfile docker
  • ubuntu 20.04 build
kubernetes/dockerfiles/rq-workers/Dockerfile docker
  • matteocao/giotto-deep gdeep-lab build
kubernetes/dockerfiles/tensorboard/Dockerfile docker
  • ubuntu latest build
kubernetes/dockerfiles/tensorboard/requirements_tb.txt pypi
  • tensorboard *
  • torch *
  • torch_tb_profiler *
  • torchvision *
requirements.txt pypi
  • Pillow *
  • captum *
  • dotmap *
  • einops *
  • giotto-ph *
  • giotto-tda *
  • google-cloud-storage *
  • gudhi *
  • h5py *
  • html2image *
  • ipython *
  • jsonpickle *
  • kaleido *
  • matplotlib <=3.6.3
  • matplotlib_venn *
  • mysql-connector-python *
  • networkx *
  • numpy <=1.23.3
  • optuna *
  • pandas *
  • plotly *
  • pre-commit *
  • psutil *
  • redis *
  • rq *
  • rq-dashboard *
  • scikit-learn *
  • scipy *
  • spacy *
  • sphinx_rtd_theme *
  • sympy *
  • tensorboard *
  • torch ==1.12.1
  • torch-tb-profiler *
  • torchdata *
  • torchdiffeq *
  • torchensemble *
  • torchtext *
  • torchvision *
  • tqdm *
  • transformers *
  • typing_extensions *
  • wget *
setup.py pypi