ProtoTorch is a PyTorch-based Python toolbox for bleeding-edge research in prototype-based machine learning algorithms.
This is a Python toolbox brewed at the Mittweida University of Applied Sciences in Germany for bleeding-edge research in Learning Vector Quantization (LVQ) and potentially other prototype-based methods. Although, there are other (perhaps more extensive) LVQ toolboxes available out there, the focus of ProtoTorch 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) are implemented using the "nn" API provided by PyTorch.
ProtoTorch can be installed using pip
.
pip install prototorch
To install the bleeding-edge features and improvements:
git clone https://github.com/si-cim/prototorch.git
git checkout dev
cd prototorch
pip install -e .
ProtoTorch is modular. It is very easy to use the modular pieces provided by ProtoTorch, like the layers, losses, callbacks and metrics to build your own prototype-based(instance-based) models. These pieces blend-in seamlessly with numpy and PyTorch to allow you mix and match the modules from ProtoTorch with other PyTorch modules.
ProtoTorch 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, ProtoTorch lets you do this without requiring a black-belt in high-performance Tensor computation.
If you would like to cite the package, please use this:
@misc{Ravichandran2020,
author = {Ravichandran, J},
title = {ProtoTorch},
year = {2020},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/si-cim/prototorch}}
}