Minimalistic implementation of the Self Organizing Maps (SOM) employing GPU.
Project description
MiniSom
Self Organizing Maps
MiniSom GPU is a minimalistic and PyTorch based implementation of the Self Organizing Maps (SOM). SOM is a type of Artificial Neural Network able to convert complex, nonlinear statistical relationships between high-dimensional data items into simple geometric relationships on a low-dimensional display. Minisom is designed to allow researchers to easily build on top of it and to give students the ability to quickly grasp its details.
This repository is a fork of the original MiniSom package.
Installation
Just use pip:
pip install minisom_gpu
How to use it
In order to use MiniSom you need your data organized as a PyTorch tensor where each row corresponds to an observation like the following:
import torch
data = torch.tensor([[ 0.80, 0.55, 0.22, 0.03],
[ 0.82, 0.50, 0.23, 0.03],
[ 0.80, 0.54, 0.22, 0.03],
[ 0.80, 0.53, 0.26, 0.03],
[ 0.79, 0.56, 0.22, 0.03],
[ 0.75, 0.60, 0.25, 0.03],
[ 0.77, 0.59, 0.22, 0.03]])
Then you can train MiniSom just as follows:
from minisom_gpu.som import MiniSom
som = MiniSom(6, 6, 4, sigma=0.3, learning_rate=0.5) # initialization of 6x6 SOM
som.train(data, 100) # trains the SOM with 100 iterations
You can obtain the position of the winning neuron on the map for a given sample as follows:
som.winner(data[0])
For an overview of all the features implemented in minisom you can browse the following examples: https://github.com/rctorres/minisom/tree/master/examples
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for minisom_gpu-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5461c1c6a9f7543b6b6b7448e3cf0e522d7f08d11176049148a62b01be75096f |
|
MD5 | 57b6ec1a6b328690fcc4076a89316eb0 |
|
BLAKE2b-256 | 3b059b8eabeb049cfec6abddef21e8c08c3dde2950cb1155c8501334a002c3fc |