NeuromorphicProcessorProject / snn_toolbox

Toolbox for converting analog to spiking neural networks (ANN to SNN), and running them in a spiking neuron simulator.
MIT License
360 stars 104 forks source link

TTFS #143

Closed matthiashoefflin closed 7 months ago

matthiashoefflin commented 8 months ago

When filing a bug, please provide:

matthiashoefflin commented 8 months ago

Dear Mr. Rueckauer

In your publication over TTFS https://www.zora.uzh.ch/id/eprint/168616/9/168616.pdf it is visible that the SNN with TTFS performs better or comparable to the rate based. However, if i change on the MNIST dataset the spikecode to ttfs then i have a drop of the accuracy of 10% (in the case of the fashionMNIST even 20%). Do you know why this happen? Following the config: config = configparser.ConfigParser() config['paths'] = { 'path_wd': WORKING_DIR, 'dataset_path': DATASET_DIR, 'filename_ann': MODEL_NAME, 'runlabel': MODELNAME+''+str(NUM_STEPS_PER_SAMPLE) } config['tools'] = { 'evaluate_ann': True, 'parse': True, 'normalize': True, 'simulate': True, 'convert' : True } config['conversion'] = { 'softmax_to_relu': True, 'spike_code': 'ttfs', } config['simulation'] = { 'simulator': 'INI', 'duration': NUM_STEPS_PER_SAMPLE, 'num_to_test': NUM_TEST_SAMPLES, 'batch_size': BATCH_SIZE, 'keras_backend': 'tensorflow' } config['output'] = { 'verbose': 2, 'plot_vars': { 'input_image', 'spiketrains', 'spikerates', 'spikecounts', 'operations', 'normalization_activations', 'activations', 'correlation', 'v_mem', 'error_t' }, 'overwrite': True }

Write the configuration file

config_filepath = os.path.join(WORKING_DIR, 'config') with open(config_filepath, 'w') as configfile: config.write(configfile)