Skip to content

si-cim/protoflow

Repository files navigation

ProtoFlow: Prototype Learning in TensorFlow

ProtoFlow Logo

Build Status tests GitHub tag (latest by date) docs PyPI codecov PyPI - Downloads GitHub license

This project is no longer actively maintained. Please consider using ProtoTorch instead.

Description

This is a Python toolbox brewed at the Mittweida University of Applied Sciences in Germany for bleeding-edge research in Prototype-based Machine Learning methods and other interpretable models. The focus of ProtoFlow is ease-of-use, extensibility and speed.

Installation

ProtoFlow can be easily installed using pip. To install the latest version, run

pip install -U protoflow

To also install the extras, run

pip install -U protoflow[all]

Note: If you're using ZSH, the square brackets [ ] have to be escaped like so: \[\], making the install command pip install -U prototorch\[all\].

To install the bleeding-edge features and improvements before they are release on PyPI, run

git clone https://github.com/si-cim/protoflow.git
cd protoflow
git checkout dev
pip install -e .[all]

For gpu support, additionally run

pip install -U protoflow[gpu]

or simply install tensorflow-gpu manually.

Documentation

The documentation is available at https://www.protoflow.ml/en/latest/. Should that link not work try https://protoflow.readthedocs.io/en/latest/.

Usage

For researchers

ProtoFlow is modular. It is very easy to use the modular pieces provided by ProtoFlow, like the layers, losses, callbacks and metrics to build your own prototype-based(instance-based) models. These pieces blend-in seamlessly with Keras allowing you to mix and match the modules from ProtoFlow with other Keras modules.

For engineers

ProtoFlow comes prepackaged with many popular Learning Vector Quantization (LVQ)-like algorithms in a convenient API. If you would simply like to be able to use those algorithms to train large ML models on a GPU, ProtoFlow lets you do this without requiring a black-belt in high-performance Tensor computation.

Bibtex

If you would like to cite the package, please use this:

@misc{Ravichandran2020a,
  author = {Ravichandran, J},
  title = {ProtoFlow},
  year = {2020},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/si-cim/protoflow}}
}