Один из конкурирующих типов сетей может использоваться SOM (Самоорганизующаяся карта - карта Кохонема).
Я использовал эту neupy реализацию
Вот пример , скопированный со связанного сайта:
import numpy as np
from neupy import algorithms, utils
utils.reproducible()
data = np.array([
[0.1961, 0.9806],
[-0.1961, 0.9806],
[-0.5812, -0.8137],
[-0.8137, -0.5812],
])
sofm = algorithms.SOFM(
n_inputs=2,
n_outputs=2,
step=0.1,
learning_radius=0
)
sofm.train(data, epochs=100)
sofm.predict(data)