Metadata-Version: 2.1
Name: protoflow
Version: 0.2.1
Summary: Highly extensible, GPU-supported Learning Vector Quantization (LVQ) toolbox built using Tensorflow 2.x and its Keras API.
Home-page: https://github.com/si-cim/protoflow
Author: Jensun Ravichandran
Author-email: jjensun@gmail.com
License: MIT
Download-URL: https://github.com/si-cim/protoflow.git
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
Requires-Dist: tensorflow (>=2.2.0)
Requires-Dist: numpy (>=1.9.1)
Requires-Dist: sklearn
Provides-Extra: docs
Requires-Dist: sphinx ; extra == 'docs'
Requires-Dist: sphinx-rtd-theme ; extra == 'docs'
Requires-Dist: sphinxcontrib-katex ; extra == 'docs'
Provides-Extra: examples
Requires-Dist: matplotlib ; extra == 'examples'
Provides-Extra: other
Requires-Dist: xlrd ; extra == 'other'
Requires-Dist: pandas ; extra == 'other'
Requires-Dist: seaborn ; extra == 'other'
Requires-Dist: imageio ; extra == 'other'
Provides-Extra: tests
Requires-Dist: pytest ; extra == 'tests'

# ProtoFlow

ProtoFlow is a TensorFlow-based Python toolbox for bleeding-edge research in prototype-based machine learning algorithms.

![tests](https://github.com/si-cim/protoflow/workflows/tests/badge.svg)
[![docs](https://readthedocs.org/projects/protoflow/badge/?version=latest)](https://protoflow.readthedocs.io/en/latest/?badge=latest)
[![PyPI](https://img.shields.io/pypi/v/protoflow)](https://pypi.org/project/protoflow/)
![PyPI - Downloads](https://img.shields.io/pypi/dm/protoflow?color=blue)
[![GitHub license](https://img.shields.io/github/license/si-cim/protoflow)](https://github.com/si-cim/protoflow/blob/master/LICENSE)

*PyTorch users, please see:* [ProtoTorch](https://github.com/si-cim/prototorch)

## Description

This is a Python toolbox brewed at the Mittweida University of Applied Sciences
in Germany for bleeding-edge research in Learning Vector Quantization (LVQ)
methods. Although, there are other (perhaps more extensive) LVQ toolboxes
available out there, the focus of ProtoFlow is ease-of-use, extensibility and
speed.

Many popular prototype-based Machine Learning (ML) algorithms like K-Nearest
Neighbors (KNN), Generalized Learning Vector Quantization (GLVQ) and Generalized
Matrix Learning Vector Quantization (GMLVQ) including the recent Learning Vector
Quantization Multi-Layer Network (LVQMLN) are implemented as Tensorflow models
using the Keras API.

## Installation

ProtoFlow can be easily installed using `pip`.
```
pip install -U protoflow
```
To also install the extras, use
```bash
pip install -U protoflow[examples,other,tests]
```
To install the bleeding-edge features and improvements:
```bash
git clone https://github.com/si-cim/prototorch.git
git checkout dev
cd prototorch
pip install -e .
```

## Documentation

The documentation is available at https://protoflow.readthedocs.io/en/latest/

## Usage

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.

ProtoFlow comes prepackaged with many popular LVQ algorithms in a convenient API,
with more algorithms and techniques coming soon. 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:
```bibtex
@misc{Ravichandran2020a,
  author = {Ravichandran, J},
  title = {ProtoFlow},
  year = {2020},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/si-cim/protoflow}}
}


