Skip to content
main
Switch branches/tags
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time

PLLay: Efficient Topological Layer based on Persistence Landscapes

This repository is the official implementation of PLLay: Efficient Topological Layer based on Persistence Landscapes.

Authors

Kwangho Kim, Jisu Kim, Manzil Zaheer, Joon Sik Kim, Frederic Chazal, Larry Wasserman

Requirements

PLLay imports the following libraries:

  • gudhi(>=3.2.0)
  • numpy
  • sklearn
  • tensorflow(>=2.0.0)
  • time

Organization

This repository contains two experiments, one on MNIST dataset and another on ORBIT5K dataset, both with noise and corruption added. The experiment for MNIST dataset is under mnist directory, and the experiment for ORBIT5K dataset is under orbit5k directory. Each experiment consists of: generating data, preprocessing, training, evaluation, and training with evaluation for SLay. All the hyperparameters used in the experiments are specified in the python code.

Generate data

This is to generate datasets and add noise and/or corruption. To generate data, run these commands:

python mnist_generate_data.py
python orbit5k_generate_data.py

Preprocessing

This is to compute landscapes in advance. To preprocess data, run these commands:

python mnist_preprocess.py
python orbit5k_preprocess.py

Training

To train the models using PLLay in the paper, run this command:

python mnist_train.py
python orbit5k_train.py

Pre-trained Models

After training, the models are saved at the designated location. In this repository, those pre-trained models can be downloaded at MNIST models and ORBIT5K models, respectively.

Evaluation

To evaluate the trained models using PLLay, in the paper, run this command:

python mnist_eval.py
python orbit5k_eval.py

Training and Evaluation for SLay

In the paper, we also considered SLay for the comparison. For SLay, we don't generate pre-defined models but we train and evaluate together. To train and evaluate models using SLay in the paper, run this command:

python mnist_train_eval_slay.py
python orbit5k_train_eval_slay.py

Results

Our model achieves the following performance on MNIST dataset: Classification on MNIST

And our model achieves the following performance on ORBIT5K dataset: Classification on ORBIT5K

About

PLLay: Efficient Topological Layer based on Persistence Landscapes

Resources

Packages

No packages published

Languages