2021-04-21 13:02:55 +00:00
# ProtoTorch Models
2021-04-21 11:13:28 +00:00
2021-06-20 15:50:09 +00:00
[![GitHub tag (latest by date) ](https://img.shields.io/github/v/tag/si-cim/prototorch_models?color=yellow&label=version )](https://github.com/si-cim/prototorch_models/releases)
2021-05-10 14:40:08 +00:00
[![PyPI ](https://img.shields.io/pypi/v/prototorch_models )](https://pypi.org/project/prototorch_models/)
2021-06-20 15:50:09 +00:00
[![GitHub license ](https://img.shields.io/github/license/si-cim/prototorch_models )](https://github.com/si-cim/prototorch_models/blob/master/LICENSE)
2021-05-10 14:39:02 +00:00
2021-04-21 11:30:50 +00:00
Pre-packaged prototype-based machine learning models using ProtoTorch and
PyTorch-Lightning.
2021-04-21 13:02:55 +00:00
## Installation
2021-05-11 14:14:23 +00:00
To install this plugin, simply run the following command:
2021-05-07 13:41:53 +00:00
```sh
2021-05-11 14:14:23 +00:00
pip install prototorch_models
2021-04-21 13:02:55 +00:00
```
2021-06-07 13:18:10 +00:00
**Installing the models plugin should automatically install a suitable version
of** [ProtoTorch ](https://github.com/si-cim/prototorch ). The plugin should then
be available for use in your Python environment as `prototorch.models` .
2021-05-14 20:19:57 +00:00
## Available models
2021-06-01 22:03:35 +00:00
### LVQ Family
2021-05-14 20:19:57 +00:00
- Learning Vector Quantization 1 (LVQ1)
- Generalized Learning Vector Quantization (GLVQ)
- Generalized Relevance Learning Vector Quantization (GRLVQ)
- Generalized Matrix Learning Vector Quantization (GMLVQ)
- Limited-Rank Matrix Learning Vector Quantization (LiRaMLVQ)
2021-06-07 16:44:15 +00:00
- Localized and Generalized Matrix Learning Vector Quantization (LGMLVQ)
2021-05-17 17:37:42 +00:00
- Learning Vector Quantization Multi-Layer Network (LVQMLN)
2021-05-14 20:19:57 +00:00
- Siamese GLVQ
2021-06-01 22:03:35 +00:00
- Cross-Entropy Learning Vector Quantization (CELVQ)
2021-06-08 13:01:08 +00:00
- Soft Learning Vector Quantization (SLVQ)
2021-06-01 22:03:35 +00:00
- Robust Soft Learning Vector Quantization (RSLVQ)
2021-06-08 13:01:08 +00:00
- Probabilistic Learning Vector Quantization (PLVQ)
2021-07-06 15:12:51 +00:00
- Median-LVQ
2021-06-01 22:03:35 +00:00
### Other
- k-Nearest Neighbors (KNN)
2021-05-14 20:19:57 +00:00
- Neural Gas (NG)
2021-06-01 15:19:43 +00:00
- Growing Neural Gas (GNG)
2021-05-14 20:19:57 +00:00
## Work in Progress
- Classification-By-Components Network (CBC)
- Learning Vector Quantization 2.1 (LVQ2.1)
2021-06-07 16:44:15 +00:00
- Self-Organizing-Map (SOM)
2021-05-14 20:19:57 +00:00
## Planned models
- Generalized Tangent Learning Vector Quantization (GTLVQ)
- Self-Incremental Learning Vector Quantization (SILVQ)
2021-05-11 14:14:23 +00:00
2021-04-21 19:34:32 +00:00
## Development setup
It is recommended that you use a virtual environment for development. If you do
not use `conda` , the easiest way to work with virtual environments is by using
[virtualenvwrapper ](https://virtualenvwrapper.readthedocs.io/en/latest/ ). Once
you've installed it with `pip install virtualenvwrapper` , you can do the
following:
```sh
export WORKON_HOME=~/pyenvs
mkdir -p $WORKON_HOME
2021-05-07 13:41:53 +00:00
source /usr/local/bin/virtualenvwrapper.sh # location may vary
2021-04-21 19:34:32 +00:00
mkvirtualenv pt
2021-05-07 13:41:53 +00:00
```
Once you have a virtual environment setup, you can start install the `models`
plugin with:
```sh
2021-04-21 19:34:32 +00:00
workon pt
git clone git@github.com:si-cim/prototorch_models.git
cd prototorch_models
git checkout dev
2021-04-29 15:05:41 +00:00
pip install -e .[all] # \[all\] if you are using zsh or MacOS
2021-04-21 19:34:32 +00:00
```
To assist in the development process, you may also find it useful to install
2021-06-07 13:18:10 +00:00
`yapf` , `isort` and `autoflake` . You can install them easily with `pip` . **Also,
please avoid installing Tensorflow in this environment. It is known to cause
problems with PyTorch-Lightning.**
2021-04-21 19:34:32 +00:00
2021-06-20 17:00:12 +00:00
## Contribution
This repository contains definition for [git hooks ](https://githooks.com ).
[Pre-commit ](https://pre-commit.com ) is automatically installed as development
dependency with prototorch or you can install it manually with `pip install
pre-commit`.
Please install the hooks by running:
```bash
pre-commit install
pre-commit install --hook-type commit-msg
```
before creating the first commit.
The commit will fail if the commit message does not follow the specification
provided [here ](https://www.conventionalcommits.org/en/v1.0.0/#specification ).
2021-05-07 13:41:53 +00:00
## FAQ
### How do I update the plugin?
If you have already cloned and installed `prototorch` and the
`prototorch_models` plugin with the `-e` flag via `pip` , all you have to do is
navigate to those folders from your terminal and do `git pull` to update.