Turing computation with neural networks composed of synfire rings
This little GiHub repository contains the code to reproduce the results of the paper submitted to IJCNN 2022.
The program that implements neural networks composed of synfire rings is located in the /core/
folder. This program can be executed with python 3.7
or higher.
In oder to reproduce the results and figures of the paper, execute the following steps:
-
Compile the file
simulate.py
(with python 3.7 or higher). This will simulate a boolean neural network composed of synfire rings that mimics the behavior of a 2-tape Turing machine recognizing the language${ 0^n1^n0^n : n \geq 0 }$ . This step generates the following files:data/node.csv
data/edges.csv
data/raster.csv
-
Execute the notebook
raster_plot.ipynb
to create the pdf figureraster.pdf
that corresponds to the raster plot of the whole network. -
Compile the file
simulate_ring.py
(with python 3.7 or higher). This will generate the following file:data/raster_ring.csv
-
Execute the notebook
raster_plot.ipynb
to create the pdf figureraster_ring.pdf
that corresponds to the raster plot of a single ring. -
Run
movie_snapshot.R
to create the set of images that constitute the movie. This process takes a long time. It will generate 300 png files in the folder/data/snapshots/
-
Go to the folder
/data/snapshots/
and execute the command below to create the movie. Here the moviemovie.m4v
has already been created and is located in the parent folder:/SynfireRings/movie.m4v
.ffmpeg -r 3 -start_number 1 -i plot%d.png -s 1080x1080 -ar 44100 -async 44100 -r 29.970 -ac 2 movie.m4v