A Python implementation of the CALM neural network using numpy. For an overview of CALM please see https://www.researchgate.net/publication/288303968_State_of_CALM_draft
Network topologies are defined using JointJS via a Django website, while simulations are done using command-line Django shell or scripts.
- Create a virtual environment and install packages listed under requirements.
- Activate the virtual env and run a standard Django migration.
- Edit DATA_DIR so that it points to an existing location at your drive.
- Optionally load a sample network under tests/fixtures.
- Run
python manage.py runserver
and navigate to http://127.0.0.1:8000/ which shows a stock interface. The only functional part is the section named "Available networks". - When in the network editor interface, use the control menu to define modules.
- Assumming you're using the sample network named 'simple', first ensure input patterns are defined. You can copy the 'simple' directory in tests/data to the DATA_DIR destination.
- Then, in the terminal, start a shell with
python manage.py shell
and run, e.g:
from simulator import load_network
network = load_network('simple')
network.train(50, 50)
network.display()
network.performance_check()
- A 2D plot with categorization performance can be created with:
from simulator.tools import *
c = ConvergenceMap(network)
c.display('in', 0, 1, 'out', 100)
Note: You need to install gnuplot for this. On OS X: brew install --with-aquaterm --with-x11 --without-emacs --with-cairo --with-qt --with-pdflib-lite gnuplot
(more documentation to follow)