A high-performance implementation of the Self-Organizing Map (SOM) algorithm in Rust, exposed as a Python module.
For the most basic applications or a quickstart simply get the latest package from PyPI:
pip install somu
The extended version of this module interfaces with the ArrayFire library (version 3.8.0). Before using it, make sure the ArrayFire shared libraries are discoverable by the system. You can do this by updating your LD_LIBRARY_PATH environment variable:
export LD_LIBRARY_PATH=/path/to/arrayfire/lib64:$LD_LIBRARY_PATH
from somu import som
from numpy import random
data = random.rand(1000, 2)
som(data, (10, 10))Before running the demos make sure to have the required packages installed:
pip install -r demos/requirements.txt
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

