Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't find "inputNumbers500.npy" #18

Closed
berthaSZ opened this issue May 24, 2024 · 5 comments
Closed

Can't find "inputNumbers500.npy" #18

berthaSZ opened this issue May 24, 2024 · 5 comments

Comments

@berthaSZ
Copy link

Hello @Somayeh-h,

I was trying to run "modular_snn/modular_snn_processing.py". However, after executing some training steps it returns the following error.

File "modular_snn/modular_snn_processing.py", line 191, in
main(args)
File "modular_snn/modular_snn_processing.py", line 105, in main
process_one_snn_module(args)
File "/home/bertha/VPRSNN/modular_snn/one_snn_module_processing.py", line 110, in main
evaluate_snn_module(args)
File "/home/bertha/VPRSNN/non_modular_snn/snn_model_evaluation.py", line 105, in main
training_input_numbers = np.load(main_folder_path + 'inputNumbers' + training_ending + ending)
File "/home/bertha/.pyenv/versions/VPRSNN_virtualenv/lib/python3.8/site-packages/numpy/lib/npyio.py", line 405, in load
fid = stack.enter_context(open(os_fspath(file), "rb"))
FileNotFoundError: [Errno 2] No such file or directory: './outputs/outputs_ne400_L25_offset{}/inputNumbers500.npy'

I made sure that my python environment has the necessary packages and I organized the Nordland data paths accordingly. Would you try to setup a new python environment and see if you can reproduce this error? It would be great if you can help me to solve this.

Best,
Bertha

@Somayeh-h
Copy link
Collaborator

Hello @berthaSZ,

Thank you for reaching out to us about this issue.

Based on the error that you faced, it seems that the args.ad_path parameter was not updated properly, as it should have a value (that is set using args.offset_after_skip) instead of a squiggly bracket.

I just updated the main branch with removing the duplicated update of the variable args.ad_path. This update only applies for training locally on your computer. If you are using another training method, just make sure that the args.ad_path is formatted for different modules based on their args.offset_after_skip value, which is already set as follows args.ad_path = ad_path_base.format(args.offset_after_skip) in the modular_snn/modular_snn_processing.py file.

Thanks,
Somayeh

@berthaSZ
Copy link
Author

Thank you @Somayeh-h . I tried it again after pulling your updates. However, it still throws the same error.

Traceback (most recent call last):
File "modular_snn/modular_snn_processing.py", line 192, in
main(args)
File "modular_snn/modular_snn_processing.py", line 106, in main
process_one_snn_module(args)
File "/home/bertha/VPRSNN/modular_snn/one_snn_module_processing.py", line 110, in main
evaluate_snn_module(args)
File "/home/bertha/VPRSNN/non_modular_snn/snn_model_evaluation.py", line 105, in main
training_input_numbers = np.load(main_folder_path + 'inputNumbers' + training_ending + ending)
File "/home/bertha/.pyenv/versions/VPRSNN_virtualenv/lib/python3.8/site-packages/numpy/lib/npyio.py", line 405, in load
fid = stack.enter_context(open(os_fspath(file), "rb"))
FileNotFoundError: [Errno 2] No such file or directory: './outputs/outputs_ne400_L25_offset0/inputNumbers500.npy'

@Somayeh-h
Copy link
Collaborator

Hi @berthaSZ,

I have just updated the repo with another commit, remving the integer value for the saved input numbers used for training, inputNumbers.npy, so that the same file can be used for evaluating different epochs.

I hope it makes sense. I had removed this from this public version of the code to make it easier, but missed testing it for the case where every epoch is evaluated for calibration. Thank you for raising this issue.

After training a module, please check the output folder to verify that the saved output files exist.

Thanks,
Somayeh

@berthaSZ
Copy link
Author

berthaSZ commented Jun 1, 2024

Hi @Somayeh-h,

After your recent updates, I was able to execute /modular_snn/modular_snn_processing.py. This is my input on the terminal:

python3 modular_snn/modular_snn_processing.py --run_mode="local" --process_mode="train" --dataset='nordland' --num_labels=25 --num_cal_labels=600 --num_test_labels=2700 --num_query_imgs=3300 --skip=8 --offset_after_skip=0 --update_interval=250 --folder_id='NRD_SFS' --n_e=400 --epochs=80 --seed=0

It has been running since last Monday. Yes, it is still running :) Here is how my /outputs directory tree looks:

Click to expand outputs/

├── outputs_ne100_L5_offset0
│   └── logfile_train.log
├── outputs_ne400_L100_offset0
│   ├── inputNumbers12000.npy
│   └── resultPopVecs12000.npy
├── outputs_ne400_L25_offset0
│   ├── all_assignments_L25_S8_O0.npy
│   ├── assignments_L25_S8_O0.npy
│   ├── Connection weights of XeAe1.png
│   ├── Connection weights of XeAe3.png
│   ├── Connection weights of XeAe.png
│   ├── Initial performance.png
│   ├── inputNumbers3300_record_E10.npy
│   ├── inputNumbers3300_record_E20.npy
│   ├── inputNumbers3300_record_E30.npy
│   ├── inputNumbers3300_record_E40.npy
│   ├── inputNumbers3300_record_E50.npy
│   ├── inputNumbers3300_record_E60.npy
│   ├── inputNumbers3300_record_E70.npy
│   ├── inputNumbers3300_record_E80.npy
│   ├── inputNumbers600_test_E10.npy
│   ├── inputNumbers600_test_E20.npy
│   ├── inputNumbers600_test_E30.npy
│   ├── inputNumbers600_test_E40.npy
│   ├── inputNumbers600_test_E50.npy
│   ├── inputNumbers600_test_E60.npy
│   ├── inputNumbers600_test_E70.npy
│   ├── inputNumbers600_test_E80.npy
│   ├── inputNumbers.npy
│   ├── logfile_calibrate.log
│   ├── logfile_record.log
│   ├── logfile_train.log
│   ├── resultPopVecs1000.npy
│   ├── resultPopVecs1250.npy
│   ├── resultPopVecs1500.npy
│   ├── resultPopVecs1750.npy
│   ├── resultPopVecs2000.npy
│   ├── resultPopVecs2250.npy
│   ├── resultPopVecs2500.npy
│   ├── resultPopVecs250.npy
│   ├── resultPopVecs2750.npy
│   ├── resultPopVecs3000.npy
│   ├── resultPopVecs3250.npy
│   ├── resultPopVecs3300_record_E10.npy
│   ├── resultPopVecs3300_record_E20.npy
│   ├── resultPopVecs3300_record_E30.npy
│   ├── resultPopVecs3300_record_E40.npy
│   ├── resultPopVecs3300_record_E50.npy
│   ├── resultPopVecs3300_record_E60.npy
│   ├── resultPopVecs3300_record_E70.npy
│   ├── resultPopVecs3300_record_E80.npy
│   ├── resultPopVecs3500.npy
│   ├── resultPopVecs3750.npy
│   ├── resultPopVecs4000.npy
│   ├── resultPopVecs500.npy
│   ├── resultPopVecs600_test_E10.npy
│   ├── resultPopVecs600_test_E20.npy
│   ├── resultPopVecs600_test_E30.npy
│   ├── resultPopVecs600_test_E40.npy
│   ├── resultPopVecs600_test_E50.npy
│   ├── resultPopVecs600_test_E60.npy
│   ├── resultPopVecs600_test_E70.npy
│   ├── resultPopVecs600_test_E80.npy
│   ├── resultPopVecs750.npy
│   ├── spike counters.png
│   ├── spike monitors.png
│   ├── standard
│   │   ├── epoch10_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O0.npy
│   │   ├── epoch20_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O0.npy
│   │   ├── epoch30_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O0.npy
│   │   ├── epoch40_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O0.npy
│   │   ├── epoch50_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O0.npy
│   │   ├── epoch60_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O0.npy
│   │   ├── epoch70_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O0.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O0.npy
│   │   └── epoch80_T600_T0
│   │   ├── binary_distMatrix.png
│   │   ├── DM_NRD_SFS_L25_S8_O0_Pi.png
│   │   ├── DM_NRD_SFS_L25_S8_O0.png
│   │   ├── logfile_evaluation.log
│   │   ├── recallAtN_SNN.npy
│   │   ├── spike_rates_distMatrix.png
│   │   └── summed_rates_L25_S8_O0.npy
│   └── Updated performance.png
├── outputs_ne400_L25_offset100
│   ├── all_assignments_L25_S8_O100.npy
│   ├── assignments_L25_S8_O100.npy
│   ├── Connection weights of XeAe1.png
│   ├── Connection weights of XeAe3.png
│   ├── Connection weights of XeAe.png
│   ├── Initial performance.png
│   ├── inputNumbers3300_record_E10.npy
│   ├── inputNumbers3300_record_E20.npy
│   ├── inputNumbers3300_record_E30.npy
│   ├── inputNumbers3300_record_E40.npy
│   ├── inputNumbers3300_record_E50.npy
│   ├── inputNumbers3300_record_E60.npy
│   ├── inputNumbers3300_record_E70.npy
│   ├── inputNumbers3300_record_E80.npy
│   ├── inputNumbers600_test_E10.npy
│   ├── inputNumbers600_test_E20.npy
│   ├── inputNumbers600_test_E30.npy
│   ├── inputNumbers600_test_E40.npy
│   ├── inputNumbers600_test_E50.npy
│   ├── inputNumbers600_test_E60.npy
│   ├── inputNumbers600_test_E70.npy
│   ├── inputNumbers600_test_E80.npy
│   ├── inputNumbers.npy
│   ├── logfile_calibrate.log
│   ├── logfile_record.log
│   ├── logfile_train.log
│   ├── resultPopVecs1000.npy
│   ├── resultPopVecs1250.npy
│   ├── resultPopVecs1500.npy
│   ├── resultPopVecs1750.npy
│   ├── resultPopVecs2000.npy
│   ├── resultPopVecs2250.npy
│   ├── resultPopVecs2500.npy
│   ├── resultPopVecs250.npy
│   ├── resultPopVecs2750.npy
│   ├── resultPopVecs3000.npy
│   ├── resultPopVecs3250.npy
│   ├── resultPopVecs3300_record_E10.npy
│   ├── resultPopVecs3300_record_E20.npy
│   ├── resultPopVecs3300_record_E30.npy
│   ├── resultPopVecs3300_record_E40.npy
│   ├── resultPopVecs3300_record_E50.npy
│   ├── resultPopVecs3300_record_E60.npy
│   ├── resultPopVecs3300_record_E70.npy
│   ├── resultPopVecs3300_record_E80.npy
│   ├── resultPopVecs3500.npy
│   ├── resultPopVecs3750.npy
│   ├── resultPopVecs4000.npy
│   ├── resultPopVecs500.npy
│   ├── resultPopVecs600_test_E10.npy
│   ├── resultPopVecs600_test_E20.npy
│   ├── resultPopVecs600_test_E30.npy
│   ├── resultPopVecs600_test_E40.npy
│   ├── resultPopVecs600_test_E50.npy
│   ├── resultPopVecs600_test_E60.npy
│   ├── resultPopVecs600_test_E70.npy
│   ├── resultPopVecs600_test_E80.npy
│   ├── resultPopVecs750.npy
│   ├── spike counters.png
│   ├── spike monitors.png
│   ├── standard
│   │   ├── epoch10_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O100.npy
│   │   ├── epoch20_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O100.npy
│   │   ├── epoch30_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O100.npy
│   │   ├── epoch40_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O100.npy
│   │   ├── epoch50_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O100.npy
│   │   ├── epoch60_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O100.npy
│   │   ├── epoch70_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O100.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O100.npy
│   │   └── epoch80_T600_T0
│   │   ├── binary_distMatrix.png
│   │   ├── DM_NRD_SFS_L25_S8_O100_Pi.png
│   │   ├── DM_NRD_SFS_L25_S8_O100.png
│   │   ├── logfile_evaluation.log
│   │   ├── recallAtN_SNN.npy
│   │   ├── spike_rates_distMatrix.png
│   │   └── summed_rates_L25_S8_O100.npy
│   └── Updated performance.png
├── outputs_ne400_L25_offset125
│   ├── all_assignments_L25_S8_O125.npy
│   ├── assignments_L25_S8_O125.npy
│   ├── Connection weights of XeAe1.png
│   ├── Connection weights of XeAe3.png
│   ├── Connection weights of XeAe.png
│   ├── Initial performance.png
│   ├── inputNumbers3300_record_E10.npy
│   ├── inputNumbers3300_record_E20.npy
│   ├── inputNumbers3300_record_E30.npy
│   ├── inputNumbers3300_record_E40.npy
│   ├── inputNumbers3300_record_E50.npy
│   ├── inputNumbers3300_record_E60.npy
│   ├── inputNumbers3300_record_E70.npy
│   ├── inputNumbers3300_record_E80.npy
│   ├── inputNumbers600_test_E10.npy
│   ├── inputNumbers600_test_E20.npy
│   ├── inputNumbers600_test_E30.npy
│   ├── inputNumbers600_test_E40.npy
│   ├── inputNumbers600_test_E50.npy
│   ├── inputNumbers600_test_E60.npy
│   ├── inputNumbers600_test_E70.npy
│   ├── inputNumbers600_test_E80.npy
│   ├── inputNumbers.npy
│   ├── logfile_calibrate.log
│   ├── logfile_record.log
│   ├── logfile_train.log
│   ├── resultPopVecs1000.npy
│   ├── resultPopVecs1250.npy
│   ├── resultPopVecs1500.npy
│   ├── resultPopVecs1750.npy
│   ├── resultPopVecs2000.npy
│   ├── resultPopVecs2250.npy
│   ├── resultPopVecs2500.npy
│   ├── resultPopVecs250.npy
│   ├── resultPopVecs2750.npy
│   ├── resultPopVecs3000.npy
│   ├── resultPopVecs3250.npy
│   ├── resultPopVecs3300_record_E10.npy
│   ├── resultPopVecs3300_record_E20.npy
│   ├── resultPopVecs3300_record_E30.npy
│   ├── resultPopVecs3300_record_E40.npy
│   ├── resultPopVecs3300_record_E50.npy
│   ├── resultPopVecs3300_record_E60.npy
│   ├── resultPopVecs3300_record_E70.npy
│   ├── resultPopVecs3300_record_E80.npy
│   ├── resultPopVecs3500.npy
│   ├── resultPopVecs3750.npy
│   ├── resultPopVecs4000.npy
│   ├── resultPopVecs500.npy
│   ├── resultPopVecs600_test_E10.npy
│   ├── resultPopVecs600_test_E20.npy
│   ├── resultPopVecs600_test_E30.npy
│   ├── resultPopVecs600_test_E40.npy
│   ├── resultPopVecs600_test_E50.npy
│   ├── resultPopVecs600_test_E60.npy
│   ├── resultPopVecs600_test_E70.npy
│   ├── resultPopVecs600_test_E80.npy
│   ├── resultPopVecs750.npy
│   ├── spike counters.png
│   ├── spike monitors.png
│   ├── standard
│   │   ├── epoch10_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O125.npy
│   │   ├── epoch20_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O125.npy
│   │   ├── epoch30_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O125.npy
│   │   ├── epoch40_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O125.npy
│   │   ├── epoch50_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O125.npy
│   │   ├── epoch60_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O125.npy
│   │   ├── epoch70_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O125.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O125.npy
│   │   └── epoch80_T600_T0
│   │   ├── binary_distMatrix.png
│   │   ├── DM_NRD_SFS_L25_S8_O125_Pi.png
│   │   ├── DM_NRD_SFS_L25_S8_O125.png
│   │   ├── logfile_evaluation.log
│   │   ├── recallAtN_SNN.npy
│   │   ├── spike_rates_distMatrix.png
│   │   └── summed_rates_L25_S8_O125.npy
│   └── Updated performance.png
├── outputs_ne400_L25_offset150
│   ├── all_assignments_L25_S8_O150.npy
│   ├── assignments_L25_S8_O150.npy
│   ├── Connection weights of XeAe1.png
│   ├── Connection weights of XeAe3.png
│   ├── Connection weights of XeAe.png
│   ├── Initial performance.png
│   ├── inputNumbers3300_record_E10.npy
│   ├── inputNumbers3300_record_E20.npy
│   ├── inputNumbers3300_record_E30.npy
│   ├── inputNumbers3300_record_E40.npy
│   ├── inputNumbers3300_record_E50.npy
│   ├── inputNumbers3300_record_E60.npy
│   ├── inputNumbers3300_record_E70.npy
│   ├── inputNumbers3300_record_E80.npy
│   ├── inputNumbers600_test_E10.npy
│   ├── inputNumbers600_test_E20.npy
│   ├── inputNumbers600_test_E30.npy
│   ├── inputNumbers600_test_E40.npy
│   ├── inputNumbers600_test_E50.npy
│   ├── inputNumbers600_test_E60.npy
│   ├── inputNumbers600_test_E70.npy
│   ├── inputNumbers600_test_E80.npy
│   ├── inputNumbers.npy
│   ├── logfile_calibrate.log
│   ├── logfile_record.log
│   ├── logfile_train.log
│   ├── resultPopVecs1000.npy
│   ├── resultPopVecs1250.npy
│   ├── resultPopVecs1500.npy
│   ├── resultPopVecs1750.npy
│   ├── resultPopVecs2000.npy
│   ├── resultPopVecs2250.npy
│   ├── resultPopVecs2500.npy
│   ├── resultPopVecs250.npy
│   ├── resultPopVecs2750.npy
│   ├── resultPopVecs3000.npy
│   ├── resultPopVecs3250.npy
│   ├── resultPopVecs3300_record_E10.npy
│   ├── resultPopVecs3300_record_E20.npy
│   ├── resultPopVecs3300_record_E30.npy
│   ├── resultPopVecs3300_record_E40.npy
│   ├── resultPopVecs3300_record_E50.npy
│   ├── resultPopVecs3300_record_E60.npy
│   ├── resultPopVecs3300_record_E70.npy
│   ├── resultPopVecs3300_record_E80.npy
│   ├── resultPopVecs3500.npy
│   ├── resultPopVecs3750.npy
│   ├── resultPopVecs4000.npy
│   ├── resultPopVecs500.npy
│   ├── resultPopVecs600_test_E10.npy
│   ├── resultPopVecs600_test_E20.npy
│   ├── resultPopVecs600_test_E30.npy
│   ├── resultPopVecs600_test_E40.npy
│   ├── resultPopVecs600_test_E50.npy
│   ├── resultPopVecs600_test_E60.npy
│   ├── resultPopVecs600_test_E70.npy
│   ├── resultPopVecs600_test_E80.npy
│   ├── resultPopVecs750.npy
│   ├── spike counters.png
│   ├── spike monitors.png
│   ├── standard
│   │   ├── epoch10_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O150.npy
│   │   ├── epoch20_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O150.npy
│   │   ├── epoch30_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O150.npy
│   │   ├── epoch40_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O150.npy
│   │   ├── epoch50_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O150.npy
│   │   ├── epoch60_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O150.npy
│   │   ├── epoch70_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O150.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O150.npy
│   │   └── epoch80_T600_T0
│   │   ├── binary_distMatrix.png
│   │   ├── DM_NRD_SFS_L25_S8_O150_Pi.png
│   │   ├── DM_NRD_SFS_L25_S8_O150.png
│   │   ├── logfile_evaluation.log
│   │   ├── recallAtN_SNN.npy
│   │   ├── spike_rates_distMatrix.png
│   │   └── summed_rates_L25_S8_O150.npy
│   └── Updated performance.png
├── outputs_ne400_L25_offset175
│   ├── Connection weights of XeAe1.png
│   ├── Connection weights of XeAe.png
│   ├── Initial performance.png
│   ├── logfile_train.log
│   ├── resultPopVecs1000.npy
│   ├── resultPopVecs1250.npy
│   ├── resultPopVecs1500.npy
│   ├── resultPopVecs1750.npy
│   ├── resultPopVecs2000.npy
│   ├── resultPopVecs2250.npy
│   ├── resultPopVecs250.npy
│   ├── resultPopVecs500.npy
│   ├── resultPopVecs750.npy
│   └── Updated performance.png
├── outputs_ne400_L25_offset25
│   ├── all_assignments_L25_S8_O25.npy
│   ├── assignments_L25_S8_O25.npy
│   ├── Connection weights of XeAe1.png
│   ├── Connection weights of XeAe3.png
│   ├── Connection weights of XeAe.png
│   ├── Initial performance.png
│   ├── inputNumbers3300_record_E10.npy
│   ├── inputNumbers3300_record_E20.npy
│   ├── inputNumbers3300_record_E30.npy
│   ├── inputNumbers3300_record_E40.npy
│   ├── inputNumbers3300_record_E50.npy
│   ├── inputNumbers3300_record_E60.npy
│   ├── inputNumbers3300_record_E70.npy
│   ├── inputNumbers3300_record_E80.npy
│   ├── inputNumbers600_test_E10.npy
│   ├── inputNumbers600_test_E20.npy
│   ├── inputNumbers600_test_E30.npy
│   ├── inputNumbers600_test_E40.npy
│   ├── inputNumbers600_test_E50.npy
│   ├── inputNumbers600_test_E60.npy
│   ├── inputNumbers600_test_E70.npy
│   ├── inputNumbers600_test_E80.npy
│   ├── inputNumbers.npy
│   ├── logfile_calibrate.log
│   ├── logfile_record.log
│   ├── logfile_train.log
│   ├── resultPopVecs1000.npy
│   ├── resultPopVecs1250.npy
│   ├── resultPopVecs1500.npy
│   ├── resultPopVecs1750.npy
│   ├── resultPopVecs2000.npy
│   ├── resultPopVecs2250.npy
│   ├── resultPopVecs2500.npy
│   ├── resultPopVecs250.npy
│   ├── resultPopVecs2750.npy
│   ├── resultPopVecs3000.npy
│   ├── resultPopVecs3250.npy
│   ├── resultPopVecs3300_record_E10.npy
│   ├── resultPopVecs3300_record_E20.npy
│   ├── resultPopVecs3300_record_E30.npy
│   ├── resultPopVecs3300_record_E40.npy
│   ├── resultPopVecs3300_record_E50.npy
│   ├── resultPopVecs3300_record_E60.npy
│   ├── resultPopVecs3300_record_E70.npy
│   ├── resultPopVecs3300_record_E80.npy
│   ├── resultPopVecs3500.npy
│   ├── resultPopVecs3750.npy
│   ├── resultPopVecs4000.npy
│   ├── resultPopVecs500.npy
│   ├── resultPopVecs600_test_E10.npy
│   ├── resultPopVecs600_test_E20.npy
│   ├── resultPopVecs600_test_E30.npy
│   ├── resultPopVecs600_test_E40.npy
│   ├── resultPopVecs600_test_E50.npy
│   ├── resultPopVecs600_test_E60.npy
│   ├── resultPopVecs600_test_E70.npy
│   ├── resultPopVecs600_test_E80.npy
│   ├── resultPopVecs750.npy
│   ├── spike counters.png
│   ├── spike monitors.png
│   ├── standard
│   │   ├── epoch10_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O25.npy
│   │   ├── epoch20_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O25.npy
│   │   ├── epoch30_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O25.npy
│   │   ├── epoch40_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O25.npy
│   │   ├── epoch50_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O25.npy
│   │   ├── epoch60_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O25.npy
│   │   ├── epoch70_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O25.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O25.npy
│   │   └── epoch80_T600_T0
│   │   ├── binary_distMatrix.png
│   │   ├── DM_NRD_SFS_L25_S8_O25_Pi.png
│   │   ├── DM_NRD_SFS_L25_S8_O25.png
│   │   ├── logfile_evaluation.log
│   │   ├── recallAtN_SNN.npy
│   │   ├── spike_rates_distMatrix.png
│   │   └── summed_rates_L25_S8_O25.npy
│   └── Updated performance.png
├── outputs_ne400_L25_offset50
│   ├── all_assignments_L25_S8_O50.npy
│   ├── assignments_L25_S8_O50.npy
│   ├── Connection weights of XeAe1.png
│   ├── Connection weights of XeAe3.png
│   ├── Connection weights of XeAe.png
│   ├── Initial performance.png
│   ├── inputNumbers3300_record_E10.npy
│   ├── inputNumbers3300_record_E20.npy
│   ├── inputNumbers3300_record_E30.npy
│   ├── inputNumbers3300_record_E40.npy
│   ├── inputNumbers3300_record_E50.npy
│   ├── inputNumbers3300_record_E60.npy
│   ├── inputNumbers3300_record_E70.npy
│   ├── inputNumbers3300_record_E80.npy
│   ├── inputNumbers600_test_E10.npy
│   ├── inputNumbers600_test_E20.npy
│   ├── inputNumbers600_test_E30.npy
│   ├── inputNumbers600_test_E40.npy
│   ├── inputNumbers600_test_E50.npy
│   ├── inputNumbers600_test_E60.npy
│   ├── inputNumbers600_test_E70.npy
│   ├── inputNumbers600_test_E80.npy
│   ├── inputNumbers.npy
│   ├── logfile_calibrate.log
│   ├── logfile_record.log
│   ├── logfile_train.log
│   ├── resultPopVecs1000.npy
│   ├── resultPopVecs1250.npy
│   ├── resultPopVecs1500.npy
│   ├── resultPopVecs1750.npy
│   ├── resultPopVecs2000.npy
│   ├── resultPopVecs2250.npy
│   ├── resultPopVecs2500.npy
│   ├── resultPopVecs250.npy
│   ├── resultPopVecs2750.npy
│   ├── resultPopVecs3000.npy
│   ├── resultPopVecs3250.npy
│   ├── resultPopVecs3300_record_E10.npy
│   ├── resultPopVecs3300_record_E20.npy
│   ├── resultPopVecs3300_record_E30.npy
│   ├── resultPopVecs3300_record_E40.npy
│   ├── resultPopVecs3300_record_E50.npy
│   ├── resultPopVecs3300_record_E60.npy
│   ├── resultPopVecs3300_record_E70.npy
│   ├── resultPopVecs3300_record_E80.npy
│   ├── resultPopVecs3500.npy
│   ├── resultPopVecs3750.npy
│   ├── resultPopVecs4000.npy
│   ├── resultPopVecs500.npy
│   ├── resultPopVecs600_test_E10.npy
│   ├── resultPopVecs600_test_E20.npy
│   ├── resultPopVecs600_test_E30.npy
│   ├── resultPopVecs600_test_E40.npy
│   ├── resultPopVecs600_test_E50.npy
│   ├── resultPopVecs600_test_E60.npy
│   ├── resultPopVecs600_test_E70.npy
│   ├── resultPopVecs600_test_E80.npy
│   ├── resultPopVecs750.npy
│   ├── spike counters.png
│   ├── spike monitors.png
│   ├── standard
│   │   ├── epoch10_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O50.npy
│   │   ├── epoch20_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O50.npy
│   │   ├── epoch30_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O50.npy
│   │   ├── epoch40_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O50.npy
│   │   ├── epoch50_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O50.npy
│   │   ├── epoch60_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O50.npy
│   │   ├── epoch70_T600_T0
│   │   │   ├── binary_distMatrix.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50_Pi.png
│   │   │   ├── DM_NRD_SFS_L25_S8_O50.png
│   │   │   ├── logfile_evaluation.log
│   │   │   ├── recallAtN_SNN.npy
│   │   │   ├── spike_rates_distMatrix.png
│   │   │   └── summed_rates_L25_S8_O50.npy
│   │   └── epoch80_T600_T0
│   │   ├── binary_distMatrix.png
│   │   ├── DM_NRD_SFS_L25_S8_O50_Pi.png
│   │   ├── DM_NRD_SFS_L25_S8_O50.png
│   │   ├── logfile_evaluation.log
│   │   ├── recallAtN_SNN.npy
│   │   ├── spike_rates_distMatrix.png
│   │   └── summed_rates_L25_S8_O50.npy
│   └── Updated performance.png
└── outputs_ne400_L25_offset75
├── all_assignments_L25_S8_O75.npy
├── assignments_L25_S8_O75.npy
├── Connection weights of XeAe1.png
├── Connection weights of XeAe3.png
├── Connection weights of XeAe.png
├── Initial performance.png
├── inputNumbers3300_record_E10.npy
├── inputNumbers3300_record_E20.npy
├── inputNumbers3300_record_E30.npy
├── inputNumbers3300_record_E40.npy
├── inputNumbers3300_record_E50.npy
├── inputNumbers3300_record_E60.npy
├── inputNumbers3300_record_E70.npy
├── inputNumbers3300_record_E80.npy
├── inputNumbers600_test_E10.npy
├── inputNumbers600_test_E20.npy
├── inputNumbers600_test_E30.npy
├── inputNumbers600_test_E40.npy
├── inputNumbers600_test_E50.npy
├── inputNumbers600_test_E60.npy
├── inputNumbers600_test_E70.npy
├── inputNumbers600_test_E80.npy
├── inputNumbers.npy
├── logfile_calibrate.log
├── logfile_record.log
├── logfile_train.log
├── resultPopVecs1000.npy
├── resultPopVecs1250.npy
├── resultPopVecs1500.npy
├── resultPopVecs1750.npy
├── resultPopVecs2000.npy
├── resultPopVecs2250.npy
├── resultPopVecs2500.npy
├── resultPopVecs250.npy
├── resultPopVecs2750.npy
├── resultPopVecs3000.npy
├── resultPopVecs3250.npy
├── resultPopVecs3300_record_E10.npy
├── resultPopVecs3300_record_E20.npy
├── resultPopVecs3300_record_E30.npy
├── resultPopVecs3300_record_E40.npy
├── resultPopVecs3300_record_E50.npy
├── resultPopVecs3300_record_E60.npy
├── resultPopVecs3300_record_E70.npy
├── resultPopVecs3300_record_E80.npy
├── resultPopVecs3500.npy
├── resultPopVecs3750.npy
├── resultPopVecs4000.npy
├── resultPopVecs500.npy
├── resultPopVecs600_test_E10.npy
├── resultPopVecs600_test_E20.npy
├── resultPopVecs600_test_E30.npy
├── resultPopVecs600_test_E40.npy
├── resultPopVecs600_test_E50.npy
├── resultPopVecs600_test_E60.npy
├── resultPopVecs600_test_E70.npy
├── resultPopVecs600_test_E80.npy
├── resultPopVecs750.npy
├── spike counters.png
├── spike monitors.png
├── standard
│   ├── epoch10_T600_T0
│   │   ├── binary_distMatrix.png
│   │   ├── DM_NRD_SFS_L25_S8_O75_Pi.png
│   │   ├── DM_NRD_SFS_L25_S8_O75.png
│   │   ├── logfile_evaluation.log
│   │   ├── recallAtN_SNN.npy
│   │   ├── spike_rates_distMatrix.png
│   │   └── summed_rates_L25_S8_O75.npy
│   ├── epoch20_T600_T0
│   │   ├── binary_distMatrix.png
│   │   ├── DM_NRD_SFS_L25_S8_O75_Pi.png
│   │   ├── DM_NRD_SFS_L25_S8_O75.png
│   │   ├── logfile_evaluation.log
│   │   ├── recallAtN_SNN.npy
│   │   ├── spike_rates_distMatrix.png
│   │   └── summed_rates_L25_S8_O75.npy
│   ├── epoch30_T600_T0
│   │   ├── binary_distMatrix.png
│   │   ├── DM_NRD_SFS_L25_S8_O75_Pi.png
│   │   ├── DM_NRD_SFS_L25_S8_O75.png
│   │   ├── logfile_evaluation.log
│   │   ├── recallAtN_SNN.npy
│   │   ├── spike_rates_distMatrix.png
│   │   └── summed_rates_L25_S8_O75.npy
│   ├── epoch40_T600_T0
│   │   ├── binary_distMatrix.png
│   │   ├── DM_NRD_SFS_L25_S8_O75_Pi.png
│   │   ├── DM_NRD_SFS_L25_S8_O75.png
│   │   ├── logfile_evaluation.log
│   │   ├── recallAtN_SNN.npy
│   │   ├── spike_rates_distMatrix.png
│   │   └── summed_rates_L25_S8_O75.npy
│   ├── epoch50_T600_T0
│   │   ├── binary_distMatrix.png
│   │   ├── DM_NRD_SFS_L25_S8_O75_Pi.png
│   │   ├── DM_NRD_SFS_L25_S8_O75.png
│   │   ├── logfile_evaluation.log
│   │   ├── recallAtN_SNN.npy
│   │   ├── spike_rates_distMatrix.png
│   │   └── summed_rates_L25_S8_O75.npy
│   ├── epoch60_T600_T0
│   │   ├── binary_distMatrix.png
│   │   ├── DM_NRD_SFS_L25_S8_O75_Pi.png
│   │   ├── DM_NRD_SFS_L25_S8_O75.png
│   │   ├── logfile_evaluation.log
│   │   ├── recallAtN_SNN.npy
│   │   ├── spike_rates_distMatrix.png
│   │   └── summed_rates_L25_S8_O75.npy
│   ├── epoch70_T600_T0
│   │   ├── binary_distMatrix.png
│   │   ├── DM_NRD_SFS_L25_S8_O75_Pi.png
│   │   ├── DM_NRD_SFS_L25_S8_O75.png
│   │   ├── logfile_evaluation.log
│   │   ├── recallAtN_SNN.npy
│   │   ├── spike_rates_distMatrix.png
│   │   └── summed_rates_L25_S8_O75.npy
│   └── epoch80_T600_T0
│   ├── binary_distMatrix.png
│   ├── DM_NRD_SFS_L25_S8_O75_Pi.png
│   ├── DM_NRD_SFS_L25_S8_O75.png
│   ├── logfile_evaluation.log
│   ├── recallAtN_SNN.npy
│   ├── spike_rates_distMatrix.png
│   └── summed_rates_L25_S8_O75.npy
└── Updated performance.png

73 directories, 836 files

In \outputs_ne400_L25_offset125\standard\epoch80_T600_T0\logfile_evaluation.log, I noticed the following block of text.

Click to expand

Namespace(ad_path='_offset150', ad_path_test='_test_E80', dataset='nordland', epochs=80, folder_id='NRD_SFS', intensity=4, multi_path='epoch80_T600_T0', n_e=400, num_cal_labels=600, num_labels=25, num_query_imgs=3300, num_test_labels=600, offset_after_skip=150, process_mode='calibrate', project_name='modularSNN', run_mode='local', seed=0, shuffled=True, skip=8, sweep_name='sweep_1', tc_ge=1.0, tc_gi=0.5, threshold_i=0, update_interval=250, use_weighted_assignments=False, username='my_username')
Unique labels learnt ( count: 25 ):
[150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163.
164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174.]
Testing input numbers:
[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55.
56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69.
70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83.
84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97.
98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111.
112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125.
126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139.
140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153.
154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167.
168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181.
182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195.
196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209.
210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223.
224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237.
238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251.
252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265.
266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279.
280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293.
294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307.
308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321.
322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335.
336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349.
350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363.
364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377.
378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391.
392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405.
406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419.
420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433.
434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447.
448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461.
462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475.
476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489.
490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503.
504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517.
518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530. 531.
532. 533. 534. 535. 536. 537. 538. 539. 540. 541. 542. 543. 544. 545.
546. 547. 548. 549. 550. 551. 552. 553. 554. 555. 556. 557. 558. 559.
560. 561. 562. 563. 564. 565. 566. 567. 568. 569. 570. 571. 572. 573.
574. 575. 576. 577. 578. 579. 580. 581. 582. 583. 584. 585. 586. 587.
588. 589. 590. 591. 592. 593. 594. 595. 596. 597. 598. 599.]
Testing result:
[155. 156. 156. 155. 163. 152. 155. 156. 152. 165. 155. 155. 152. 155.
152. 158. 152. 171. 152. 156. 156. 156. 156. 156. 155. 158. 152. 156.
155. 152. 155. 163. 155. 155. 156. 155. 155. 152. 163. 156. 152. 155.
155. 155. 155. 156. 155. 155. 155. 155. 156. 155. 173. 156. 167. 156.
155. 155. 161. 155. 152. 155. 163. 155. 156. 152. 163. 155. 155. 152.
156. 163. 167. 155. 155. 156. 152. 152. 155. 155. 156. 155. 152. 155.
152. 155. 155. 155. 156. 155. 156. 155. 155. 155. 152. 155. 155. 155.
156. 155. 152. 155. 156. 155. 155. 156. 163. 167. 156. 155. 155. 155.
156. 155. 156. 156. 156. 158. 155. 156. 155. 155. 152. 155. 163. 155.
155. 155. 155. 155. 155. 152. 156. 163. 155. 156. 165. 155. 152. 155.
155. 156. 155. 152. 155. 156. 156. 156. 156. 156. 156. 151. 152. 153.
154. 155. 156. 157. 158. 159. 163. 152. 156. 163. 164. 167. 166. 167.
168. 152. 155. 155. 172. 173. 174. 156. 155. 156. 155. 152. 155. 155.
156. 165. 161. 155. 152. 156. 150. 156. 163. 155. 156. 155. 155. 156.
156. 155. 155. 156. 152. 156. 155. 155. 155. 155. 155. 155. 152. 163.
155. 156. 156. 155. 155. 155. 155. 155. 163. 155. 156. 155. 156. 155.
152. 158. 156. 155. 155. 156. 155. 163. 155. 155. 152. 155. 163. 155.
155. 155. 152. 155. 155. 156. 155. 165. 156. 155. 155. 156. 155. 155.
155. 163. 167. 155. 163. 155. 155. 167. 155. 155. 152. 156. 155. 155.
152. 155. 155. 156. 156. 155. 152. 155. 155. 155. 161. 155. 155. 156.
155. 155. 152. 152. 156. 155. 155. 155. 152. 156. 155. 163. 155. 156.
155. 158. 155. 155. 152. 155. 152. 156. 155. 156. 156. 155. 157. 155.
155. 152. 152. 155. 155. 152. 155. 155. 163. 163. 156. 155. 161. 155.
156. 152. 156. 156. 155. 156. 155. 155. 163. 156. 155. 155. 155. 155.
155. 156. 155. 156. 155. 156. 156. 152. 152. 152. 152. 156. 165. 155.
156. 165. 150. 152. 167. 155. 152. 165. 156. 167. 155. 155. 155. 155.
155. 156. 161. 156. 158. 155. 155. 156. 152. 152. 155. 155. 155. 163.
156. 155. 155. 158. 152. 156. 155. 156. 155. 156. 155. 156. 155. 152.
155. 155. 155. 166. 156. 155. 156. 155. 155. 152. 163. 155. 155. 156.
173. 156. 152. 155. 155. 155. 165. 156. 166. 155. 155. 152. 156. 156.
152. 155. 155. 163. 155. 152. 155. 152. 156. 156. 152. 155. 156. 167.
155. 155. 155. 152. 158. 152. 156. 155. 155. 155. 171. 156. 155. 163.
155. 152. 156. 156. 155. 152. 156. 156. 152. 155. 152. 155. 152. 155.
156. 155. 155. 155. 152. 155. 152. 156. 156. 155. 155. 156. 156. 167.
152. 163. 155. 155. 156. 167. 155. 152. 152. 156. 158. 155. 163. 155.
156. 158. 156. 155. 156. 155. 158. 163. 155. 167. 155. 155. 155. 155.
155. 155. 155. 152. 155. 156. 152. 156. 155. 155. 155. 155. 152. 156.
155. 155. 156. 166. 152. 155. 152. 155. 155. 155. 156. 155. 167. 155.
155. 152. 155. 155. 163. 155. 155. 152. 163. 156. 156. 155. 155. 152.
156. 152. 155. 156. 156. 152. 155. 152. 156. 156. 167. 155. 155. 155.
155. 158. 156. 152. 152. 155. 156. 155. 155. 167. 173. 156. 155. 155.
165. 156. 155. 152. 155. 155. 152. 156. 155. 155. 158. 156. 156. 152.
152. 156. 163. 155. 158. 155. 155. 155. 155. 152. 152. 155.]

Differences:
[155. 155. 154. 152. 159. 147. 149. 149. 144. 156. 145. 144. 140. 142.
138. 143. 136. 154. 134. 137. 136. 135. 134. 133. 131.]

Accuracy: 0.0, num correct: 0, num incorrect: 25
Correctly predicted label indices:
[]
Incorrectly predicted label indices:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
24]

====> Recall Recall@1: 0.0000
====> Recall Recall@5: 0.2000
====> Recall Recall@10: 0.3600
====> Recall Recall@15: 0.4400
====> Recall Recall@20: 0.7200
====> Recall Recall@25: 1.0000

I checked the other logfiles. However, I could not find a Recall@1 value greater than 0.08. I would be appreciative if you could help me to understand what I am doing wrong.

Best,
Bertha

@Somayeh-h
Copy link
Collaborator

Hi @berthaSZ,

Thanks for sharing the details about your outputs. Apologies for the delay in getting back to you.

The output directory tree looks good. You can speed up the training process by using only 60 epochs (as for our ICRA 2023 work). I’ve made some modifications in this commit: [ebf6e09] to speed up training.

In regards to the accuracy, could you please confirm that you are using this version of the Nordland dataset? We use the Spring and Fall traverses as the reference set, and the Summer traverse as the query set for testing the model.

You can also access the learned weights of our modular SNN on Nordland dataset here.

The R@1 reported in the log files relate to the performance of a single module on the particular segment it was trained on. After training all modules, use the modular_snn/modular_snn_evaluation.py to compute the performance of the modular SNN on a dataset.

Best,
Somayeh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants