sinabs 3.0.3.dev1__tar.gz → 3.0.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/.github/workflows/ci-pipeline.yml +15 -8
- sinabs-3.0.4/PKG-INFO +106 -0
- sinabs-3.0.3.dev1/ChangeLog → sinabs-3.0.4/docs/about/release_notes.md +73 -82
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/api/utils.rst +1 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/overview.md +3 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/pull_request_template.md +1 -1
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/__init__.py +8 -2
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/discretize.py +0 -1
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/dynapcnn_network.py +2 -3
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/mapping.py +4 -1
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/utils.py +61 -1
- sinabs-3.0.4/sinabs/validate_memory_speck.py +144 -0
- sinabs-3.0.4/sinabs.egg-info/PKG-INFO +106 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs.egg-info/SOURCES.txt +1 -3
- sinabs-3.0.4/sinabs.egg-info/pbr.json +1 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_copy.py +0 -2
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_discover_device.py +0 -1
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_large_net.py +0 -7
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_hooks.py +5 -6
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_layers/test_alif.py +1 -1
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_layers/test_iaf.py +2 -2
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_layers/test_lif.py +3 -3
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_synops_counter.py +1 -1
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_utils.py +49 -0
- sinabs-3.0.3.dev1/PKG-INFO +0 -89
- sinabs-3.0.3.dev1/Pipfile +0 -17
- sinabs-3.0.3.dev1/Pipfile.lock +0 -411
- sinabs-3.0.3.dev1/docs/about/release_notes.md +0 -25
- sinabs-3.0.3.dev1/sinabs.egg-info/PKG-INFO +0 -89
- sinabs-3.0.3.dev1/sinabs.egg-info/pbr.json +0 -1
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/.coveragerc +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/.pre-commit-config.yaml +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/.readthedocs.yaml +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/AUTHORS +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/CITATION.cff +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/LICENSE +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/README.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/codecov.yml +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/Makefile +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/Overview/dataflow_layers.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/Overview/event_preprocessing_pipeline.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/Overview/memory_constraints.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/Overview/sinabs-dynapcnn-role.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/Overview/speck_dynapcnn.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/Overview/speck_top_level.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/devkits_images/dynapcnn_devkit.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/devkits_images/speck_devkit.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/devkits_images/speck_module.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/devkits_images/speck_module_devkit.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/nmnist_quick_start/dvs_input_flow.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/nmnist_quick_start/dynapcnn_visualizer.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/nmnist_quick_start/spike_input_flow.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/power_monitoring/dynamic_power_samna_graph.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/power_monitoring/idle_power_samna_graph.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/power_monitoring/power_plot.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/sinabs-logo-lowercase-whitebg.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/sinabs-logo-lowercase.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/tips_for_training/exceeding_bandwidth.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/using_readout_layer/handcraft_weights.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/using_readout_layer/neuron_id_mismatch.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/using_readout_layer/readout_layer.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/using_readout_layer/samna_graph.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/visualize_speck_dvs/samna_graph.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/visualize_spike_count/samna_graph.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_static/visualize_spike_count/spike_count.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_templates/class_activation.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/_templates/class_layer.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/about/about.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/about/contributing.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/about/differences.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/about/info.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/api/activation.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/api/api.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/api/from_torch.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/api/hooks.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/api/layers.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/api/network.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/api/nir.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/api/synopcounter.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/conf.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/contact.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/README.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/layers/README.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/layers/plot_alif.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/layers/plot_exp_leaky.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/layers/plot_iaf.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/layers/plot_lif.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/layers/utils.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/spike_fns/README.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/spike_fns/plot_maxspike.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/spike_fns/plot_multispike.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/spike_fns/plot_singlespike.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/surrogate_grad_fns/README.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/surrogate_grad_fns/plot_gaussian.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/surrogate_grad_fns/plot_heaviside.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/surrogate_grad_fns/plot_multigaussian.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/surrogate_grad_fns/plot_periodicexponential.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/gallery/surrogate_grad_fns/plot_singleexponential.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/getting_started/fundamentals.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/getting_started/getting_started.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/getting_started/iaf_neuron_model.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/getting_started/install.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/getting_started/python_pyenv_pipenv.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/getting_started/quickstart.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/how_tos/activations.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/how_tos/custom_hooks.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/how_tos/how_tos.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/how_tos/synops_loss_ann.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/how_tos/synops_loss_snn.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/index.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/make.bat +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/plugins/plugins.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/requirements.txt +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/advanced_concepts.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/chip_factory.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/config_builder.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/crop2d.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/discretize.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/dvs_layer.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/dynapcnn.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/dynapcnn_layer.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/dynapcnn_network.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/dynapcnn_visualizer.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/exceptions.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/flipdims.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/io.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/mapping.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/specksim.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/api/dynapcnn/utils.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/dangers.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/faqs/add_new_device.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/faqs/available_algorithmic_operation.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/faqs/available_network_arch.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/faqs/chip_errata.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/faqs/device_management.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/faqs/index.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/faqs/output_monitoring.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/faqs/save_hardware_config_as_binary.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/faqs/tips_for_training.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/index.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/notebooks/leak_neuron.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/notebooks/nmnist_quick_start.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/notebooks/play_with_speck_dvs.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/notebooks/power_monitoring.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/notebooks/using_readout_layer.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/notebooks/visualize_speck_dvs_input.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/notebooks/visualize_spike_count.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/specksim.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/the_basics.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/tutorials.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/speck/visualizer.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/tutorials/LeNet_5_EngChinese.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/tutorials/bptt.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/tutorials/nir_to_speck.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/tutorials/nmnist.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/tutorials/scnn_mnist.nir +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/tutorials/tutorials.rst +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/tutorials/weight_scaling.md +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/docs/tutorials/weight_transfer_mnist.ipynb +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/mnist/dynapcnn_network.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/mnist/mnist_params.pt +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/mnist/specksim_network.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/visualizer/dvs_gesture_params.pt +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/visualizer/gesture_viz.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/visualizer/icons/01_armroll.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/visualizer/icons/02_handclap.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/visualizer/icons/03_lefthandclockwise.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/visualizer/icons/04_lefthandcounterclockwise.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/visualizer/icons/05_lefthandwave.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/visualizer/icons/06_righthandwave.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/visualizer/icons/07_righthandclockwise.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/visualizer/icons/08_righthandcounterclockwise.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/visualizer/icons/09_airdrums.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/visualizer/icons/10_airguitar.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/examples/visualizer/icons/11_other.png +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/jupyterlab-requirements.txt +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/requirements.txt +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/setup.cfg +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/setup.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/activation/__init__.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/activation/quantize.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/activation/reset_mechanism.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/activation/spike_generation.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/activation/surrogate_gradient_fn.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/__init__.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/__init__.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/chip_factory.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/chips/__init__.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/chips/dynapcnn.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/chips/speck2e.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/chips/speck2f.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/config_builder.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/crop2d.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/dvs_layer.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/dynapcnn_layer.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/dynapcnn_visualizer.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/exceptions.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/flipdims.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/io.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/specksim.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/backend/dynapcnn/utils.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/cnnutils.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/conversion.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/from_torch.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/hooks.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/__init__.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/alif.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/channel_shift.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/crop2d.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/exp_leak.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/functional/__init__.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/functional/alif.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/functional/lif.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/iaf.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/lif.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/merge.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/neuromorphic_relu.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/pool2d.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/quantize.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/reshape.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/stateful_layer.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/layers/to_spike.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/network.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/nir.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs/synopcounter.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs.egg-info/dependency_links.txt +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs.egg-info/not-zip-safe +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs.egg-info/requires.txt +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/sinabs.egg-info/top_level.txt +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/inputs_and_results/hooks/conv_input.pth +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/inputs_and_results/hooks/conv_layer_synops.pth +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/inputs_and_results/hooks/firing_rates.pth +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/inputs_and_results/hooks/firing_rates_per_neuron.pth +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/inputs_and_results/hooks/input_diffs.pth +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/inputs_and_results/hooks/model_synops.pth +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/mnist_params.pt +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/models/README.txt +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/models/synop_hook_model.pth +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/requirements.txt +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_activations.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_batch_mismatch.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_batch_size_update.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_conversion.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/custom_jit_filters.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/hw_utils.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_auto_mapping.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_compatible_layer_build.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_config_making.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_device_movement.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_device_name_mapping.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_discretized.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_doorbell.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_dvs_input.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_dvs_layer.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_event_conversion.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_individual_cases.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_learning.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_monitoring.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_neuron_leak.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_single_neuron_hardware.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_speck2e.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_dynapcnn/test_visualizer.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_from_model.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_layers/test_channelshift.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_layers/test_crop2d.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_layers/test_exp_leak.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_layers/test_img2spk.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_layers/test_maxpooling.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_layers/test_merge.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_layers/test_neuromorphic_relu.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_layers/test_reshaping.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_layers/test_sig2spk.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_layers/test_stateful_layer.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_network_class.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_nir.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_normalize_weights.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_onnx.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_quantize.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_specksim/test_specksim_bindings.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_specksim/test_specksim_conversion.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_specksim/test_specksim_network.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/test_surrogate_gradients.py +0 -0
- {sinabs-3.0.3.dev1 → sinabs-3.0.4}/tests/weights/README.txt +0 -0
|
@@ -16,8 +16,15 @@ jobs:
|
|
|
16
16
|
fail-fast: false
|
|
17
17
|
matrix:
|
|
18
18
|
os: [ubuntu-latest]
|
|
19
|
-
python-version: ["3.
|
|
20
|
-
torch-version: ["2.0.0",]
|
|
19
|
+
python-version: ["3.10", "3.11", "3.12"]
|
|
20
|
+
torch-version: ["2.0.0", "2.8.0"]
|
|
21
|
+
exclude:
|
|
22
|
+
- python-version: "3.10"
|
|
23
|
+
torch-version: "2.8.0"
|
|
24
|
+
- python-version: "3.11"
|
|
25
|
+
torch-version: "2.8.0"
|
|
26
|
+
- python-version: "3.12"
|
|
27
|
+
torch-version: "2.0.0"
|
|
21
28
|
steps:
|
|
22
29
|
- uses: actions/checkout@v4
|
|
23
30
|
- name: Set up Python ${{ matrix.python-version }}
|
|
@@ -41,10 +48,10 @@ jobs:
|
|
|
41
48
|
runs-on: ubuntu-latest
|
|
42
49
|
steps:
|
|
43
50
|
- uses: actions/checkout@v4
|
|
44
|
-
- name: Setup Python 3.
|
|
51
|
+
- name: Setup Python 3.12
|
|
45
52
|
uses: actions/setup-python@v5
|
|
46
53
|
with:
|
|
47
|
-
python-version: 3.
|
|
54
|
+
python-version: 3.12
|
|
48
55
|
- name: Generate coverage report
|
|
49
56
|
run: |
|
|
50
57
|
sudo apt-get update && sudo apt-get -y install libglu1-mesa
|
|
@@ -63,10 +70,10 @@ jobs:
|
|
|
63
70
|
- uses: actions/checkout@v4
|
|
64
71
|
with:
|
|
65
72
|
fetch-depth: 0
|
|
66
|
-
- name: Setup Python 3.
|
|
73
|
+
- name: Setup Python 3.12
|
|
67
74
|
uses: actions/setup-python@v5
|
|
68
75
|
with:
|
|
69
|
-
python-version: "3.
|
|
76
|
+
python-version: "3.12"
|
|
70
77
|
- name: Install dependencies
|
|
71
78
|
run: |
|
|
72
79
|
sudo apt-get update && sudo apt-get -y install libglu1-mesa
|
|
@@ -85,10 +92,10 @@ jobs:
|
|
|
85
92
|
- uses: actions/checkout@v4
|
|
86
93
|
with:
|
|
87
94
|
fetch-depth: 0
|
|
88
|
-
- name: Set up Python 3.
|
|
95
|
+
- name: Set up Python 3.12
|
|
89
96
|
uses: actions/setup-python@v5
|
|
90
97
|
with:
|
|
91
|
-
python-version: 3.
|
|
98
|
+
python-version: 3.12
|
|
92
99
|
- name: Install build packages
|
|
93
100
|
run: pip install wheel pbr setuptools
|
|
94
101
|
- name: Build a binary wheel and a source tarball
|
sinabs-3.0.4/PKG-INFO
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: sinabs
|
|
3
|
+
Version: 3.0.4
|
|
4
|
+
Summary: SynSense Spiking Neural Network simulator for deep neural networks (DNNs).
|
|
5
|
+
Author: SynSense (formerly AiCTX)
|
|
6
|
+
Author-email: support@synsense.ai
|
|
7
|
+
License: Apache 2.0
|
|
8
|
+
Project-URL: Source code, https://github.com/synsense/sinabs
|
|
9
|
+
Project-URL: Documentation, https://readthedocs.org/projects/sinabs/
|
|
10
|
+
Keywords: spiking neural networks,machine learning,SNN,DYNAPCNN,Speck
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
License-File: LICENSE
|
|
19
|
+
License-File: AUTHORS
|
|
20
|
+
Requires-Dist: pbr
|
|
21
|
+
Requires-Dist: numpy
|
|
22
|
+
Requires-Dist: torch>=1.8
|
|
23
|
+
Requires-Dist: nir<=1.0.4
|
|
24
|
+
Requires-Dist: nirtorch
|
|
25
|
+
Requires-Dist: samna>=0.33
|
|
26
|
+
Dynamic: author
|
|
27
|
+
Dynamic: author-email
|
|
28
|
+
Dynamic: classifier
|
|
29
|
+
Dynamic: description
|
|
30
|
+
Dynamic: description-content-type
|
|
31
|
+
Dynamic: keywords
|
|
32
|
+
Dynamic: license
|
|
33
|
+
Dynamic: license-file
|
|
34
|
+
Dynamic: project-url
|
|
35
|
+
Dynamic: requires-dist
|
|
36
|
+
Dynamic: summary
|
|
37
|
+
|
|
38
|
+
[](https://pypi.org/project/sinabs/)
|
|
39
|
+
[](https://sinabs.readthedocs.io)
|
|
40
|
+
[](https://codecov.io/gh/synsense/sinabs)
|
|
41
|
+
[](https://pepy.tech/project/sinabs)
|
|
42
|
+
[](https://discord.gg/V6FHBZURkg)
|
|
43
|
+

|
|
44
|
+
|
|
45
|
+
Sinabs (Sinabs Is Not A Brain Simulator) is a python library for the development and implementation of Spiking Convolutional Neural Networks (SCNNs).
|
|
46
|
+
The library implements several layers that are `spiking` equivalents of CNN layers.
|
|
47
|
+
In addition it provides support to import CNN models implemented in torch conveniently to test their `spiking` equivalent implementation.
|
|
48
|
+
This project is managed by SynSense (former aiCTX AG).
|
|
49
|
+
|
|
50
|
+
The `sinabs-dynapcnn` was incorporated to this project, and it enables porting sinabs models to chips and dev-kits with DYNAP-CNN technology.
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
Installation
|
|
54
|
+
------------
|
|
55
|
+
For the stable release on the main branch:
|
|
56
|
+
```
|
|
57
|
+
pip install sinabs
|
|
58
|
+
```
|
|
59
|
+
or (thanks to [@Tobias-Fischer](https://github.com/Tobias-Fischer))
|
|
60
|
+
```
|
|
61
|
+
conda install -c conda-forge sinabs
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
For the latest pre-release on the develop branch that passed the tests:
|
|
65
|
+
```
|
|
66
|
+
pip install sinabs --pre
|
|
67
|
+
```
|
|
68
|
+
The package has been tested on the following configurations
|
|
69
|
+
[](https://github.com/synsense/sinabs)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
Documentation and Examples
|
|
73
|
+
--------------------------
|
|
74
|
+
[https://sinabs.readthedocs.io/](https://sinabs.readthedocs.io/)
|
|
75
|
+
|
|
76
|
+
Questions? Feedback?
|
|
77
|
+
--------------------
|
|
78
|
+
Please join us on the [#sinabs Discord channel](https://discord.gg/V6FHBZURkg)!
|
|
79
|
+
|
|
80
|
+
- If you would like to report bugs or push any changes, you can do this on our [github repository](https://github.com/synsense/sinabs/issues).
|
|
81
|
+
|
|
82
|
+
License
|
|
83
|
+
-------
|
|
84
|
+
Sinabs is published under Apache v2.0. See the LICENSE file for details.
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
Contributing to Sinabs
|
|
88
|
+
------------------------
|
|
89
|
+
Checkout the [contributing](https://sinabs.readthedocs.io/en/develop/about/contributing.html) page for more info.
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
Citation
|
|
93
|
+
--------
|
|
94
|
+
|
|
95
|
+
In case you find this software library useful for your work please consider citing it as follows:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
@software{sinabs,
|
|
99
|
+
author = {Sheik, Sadique and Lenz, Gregor and Bauer, Felix and Kuepelioglu, Nogay },
|
|
100
|
+
doi = {10.5281/zenodo.8385545},
|
|
101
|
+
license = {Apache-2.0},
|
|
102
|
+
title = {{SINABS: A simple Pytorch based SNN library specialised for Speck}},
|
|
103
|
+
url = {https://github.com/synsense/sinabs}
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
@@ -1,34 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
=======
|
|
1
|
+
# Release notes
|
|
3
2
|
|
|
4
|
-
v3.0.
|
|
5
|
-
|
|
3
|
+
## v3.0.4 (08/09/2025)
|
|
4
|
+
|
|
5
|
+
* Update sinabs code to be consistent with Python 3.12 and Numpy > 2.0.
|
|
6
|
+
* Merge Release Notes and Changelog.
|
|
7
|
+
* Remove Changelog file as it was not being used.
|
|
8
|
+
* Remove Pipfile and Pipfile.lock files as they were not being used anymore.
|
|
9
|
+
* Specific/minimal library versions can be found in requirements.txt
|
|
10
|
+
|
|
11
|
+
## v3.0.3 (22/07/2025)
|
|
12
|
+
|
|
13
|
+
* Add function in utils to help identify issues with memory constraints when mapping a network on Speck.
|
|
14
|
+
(https://sinabs.readthedocs.io/v3.0.3/api/utils.html#sinabs.utils.validate_memory_mapping_speck)
|
|
15
|
+
|
|
16
|
+
## v3.0.2 (10/06/2025)
|
|
6
17
|
|
|
7
18
|
* Update contact email. Now, any support requests and information about contributors license agreement needs to be sent to `support@synsense.ai`.
|
|
8
19
|
|
|
9
|
-
v3.0.1
|
|
10
|
-
------
|
|
20
|
+
## v3.0.1 (06/06/2025)
|
|
11
21
|
|
|
12
22
|
* Update the release of the project when `main` branch is updated instead of `develop`
|
|
13
23
|
|
|
14
|
-
v3.0.0
|
|
15
|
-
------
|
|
24
|
+
## v3.0.0 (06/06/2025)
|
|
16
25
|
|
|
17
26
|
* Remove support for older boards following update on Samna 0.46.0
|
|
18
27
|
|
|
19
|
-
v2.0.3
|
|
20
|
-
------
|
|
28
|
+
## v2.0.3 (18/03/2025)
|
|
21
29
|
|
|
22
30
|
* Update Sinabs license to Apache 2.0
|
|
23
31
|
|
|
24
|
-
v2.0.2
|
|
25
|
-
------
|
|
32
|
+
## v2.0.2 (23/01/2025)
|
|
26
33
|
|
|
27
34
|
* Spike count plot in 'DynapcnnVisualizer' is optional
|
|
28
35
|
* `DynapcnnVisualizer` allows custom JIT filters to make readout predictions
|
|
29
36
|
|
|
30
|
-
v2.0.0
|
|
31
|
-
------
|
|
37
|
+
## v2.0.0 (14/03/2024)
|
|
32
38
|
|
|
33
39
|
* Fix typos and broken links in the documentation
|
|
34
40
|
* Move instructions for adding new device to FAQ
|
|
@@ -61,8 +67,7 @@ v2.0.0
|
|
|
61
67
|
* Remove easy-install command
|
|
62
68
|
* Add graphviz dependency
|
|
63
69
|
|
|
64
|
-
v1.2.10
|
|
65
|
-
-------
|
|
70
|
+
## v1.2.10 (07/12/2023)
|
|
66
71
|
|
|
67
72
|
* Update codecov.yml
|
|
68
73
|
* Update ci-pipeline.yml
|
|
@@ -92,8 +97,7 @@ v1.2.10
|
|
|
92
97
|
* set default value to 1 for stride in SumPool2d
|
|
93
98
|
* updated nir to support Flatten and SumPool2d
|
|
94
99
|
|
|
95
|
-
v1.2.9
|
|
96
|
-
------
|
|
100
|
+
## v1.2.9 (31/08/2023)
|
|
97
101
|
|
|
98
102
|
* Add unit test to ensure that subract value of MembraneSubtract can be a tensor
|
|
99
103
|
* Correct test whether subtract value is None
|
|
@@ -160,8 +164,7 @@ v1.2.9
|
|
|
160
164
|
* add nir IF support
|
|
161
165
|
* updated Sinabs to latest NIR
|
|
162
166
|
|
|
163
|
-
1.2.8
|
|
164
|
-
-----
|
|
167
|
+
## 1.2.8 (10/07/2023)
|
|
165
168
|
|
|
166
169
|
* add nir and nirtorch to requirements
|
|
167
170
|
* implemented sequential for from\_nir
|
|
@@ -176,8 +179,7 @@ v1.2.9
|
|
|
176
179
|
* wip conversion from nir to sinabs
|
|
177
180
|
* Fix issue #99, add unit test
|
|
178
181
|
|
|
179
|
-
v1.2.6
|
|
180
|
-
------
|
|
182
|
+
## v1.2.6 (30/06/2023)
|
|
181
183
|
|
|
182
184
|
* change nmnist tutorial title
|
|
183
185
|
* added NMNIST tutorial
|
|
@@ -274,15 +276,13 @@ v1.2.6
|
|
|
274
276
|
* try another way install graphviz
|
|
275
277
|
* fix CI pipeline failure
|
|
276
278
|
|
|
277
|
-
v1.2.5
|
|
278
|
-
------
|
|
279
|
+
## v1.2.5 (24/04/2023)
|
|
279
280
|
|
|
280
281
|
* make contact title bold like the others
|
|
281
282
|
* add contact section to documentation
|
|
282
283
|
* checked tests pass on mac
|
|
283
284
|
|
|
284
|
-
v1.2.4
|
|
285
|
-
------
|
|
285
|
+
## v1.2.4 (05/04/2023)
|
|
286
286
|
|
|
287
287
|
* replace torch.inf with math.inf
|
|
288
288
|
* ignore data and cache directories
|
|
@@ -293,14 +293,12 @@ v1.2.4
|
|
|
293
293
|
* added update keyring to gitlab-ci
|
|
294
294
|
* renamed test
|
|
295
295
|
|
|
296
|
-
v1.2.3
|
|
297
|
-
------
|
|
296
|
+
## v1.2.3
|
|
298
297
|
|
|
299
298
|
* fix synops/s for Linear layers when no Squeeze layers are used in network
|
|
300
299
|
* update pre-commit config
|
|
301
300
|
|
|
302
|
-
v1.2.2
|
|
303
|
-
------
|
|
301
|
+
## v1.2.2 (17/03/2023)
|
|
304
302
|
|
|
305
303
|
* expand saved input in spiking layers for analyzer
|
|
306
304
|
* derive spiking layer stats from single saved output tensor and also save input
|
|
@@ -312,16 +310,16 @@ v1.2.2
|
|
|
312
310
|
* update ChangeLog
|
|
313
311
|
* add speck2f module devkit support and remove speck2f characterization board support
|
|
314
312
|
|
|
315
|
-
v1.2.1
|
|
316
|
-
------
|
|
313
|
+
## v1.2.1 (23/02/2023)
|
|
317
314
|
|
|
318
315
|
* distinguish between accumulated and mini batch stats for firing rates
|
|
319
316
|
* distinguish between accumulated and mini batch statistics in SNNAnalyzer for synops
|
|
320
317
|
* only compute connection\_map once in SynopsHook
|
|
321
318
|
* detach synops accumulation inbetween mini batches for SNNAnalyzer
|
|
322
319
|
|
|
323
|
-
v1.2.0
|
|
324
|
-
|
|
320
|
+
## v1.2.0 (15/02/2023)
|
|
321
|
+
|
|
322
|
+
Included the SNNAnalyzer module to collect model statistics such as number of synops or neurons automatically.
|
|
325
323
|
|
|
326
324
|
* update release notes
|
|
327
325
|
* make sure deconvolve outputs same size as conv input in SNNAnalyzer
|
|
@@ -398,8 +396,7 @@ v1.2.0
|
|
|
398
396
|
* update synops\_loss\_ann notebook
|
|
399
397
|
* use consistent American spelling of analyzer
|
|
400
398
|
|
|
401
|
-
v1.1.6
|
|
402
|
-
------
|
|
399
|
+
## v1.1.6 (08/12/2022)
|
|
403
400
|
|
|
404
401
|
* make min\_vem and spike\_thresholds parameters do that they're included in state\_dict
|
|
405
402
|
* Detach recordings before plotting
|
|
@@ -443,8 +440,7 @@ v1.1.6
|
|
|
443
440
|
* Do not sleep while resetting the states when the function is called. Stop the input graph, while the neuron values are written. Sleep for a bit and then start the graph again
|
|
444
441
|
* Fix to the bug
|
|
445
442
|
|
|
446
|
-
v1.1.5
|
|
447
|
-
------
|
|
443
|
+
## v1.1.5 (25/11/2022)
|
|
448
444
|
|
|
449
445
|
* Fix backward pass for MaxSpike
|
|
450
446
|
* update ChangeLog after add support of speck2e
|
|
@@ -472,8 +468,7 @@ v1.1.5
|
|
|
472
468
|
* Requirements for samna version updated
|
|
473
469
|
* Change to get the same functionality in 'to()' method in samna Version: 0.21.2.0
|
|
474
470
|
|
|
475
|
-
v1.1.4
|
|
476
|
-
------
|
|
471
|
+
## v1.1.4 (18/11/2022)
|
|
477
472
|
|
|
478
473
|
* autoformat all docstrings using docformatter
|
|
479
474
|
* fix bug where added\_spike\_output is a ReLU
|
|
@@ -482,14 +477,12 @@ v1.1.4
|
|
|
482
477
|
* Update ci-pipeline.yml
|
|
483
478
|
* Update ci-pipeline.yml
|
|
484
479
|
|
|
485
|
-
v1.1.3
|
|
486
|
-
------
|
|
480
|
+
## v1.1.3 (17/11/2022)
|
|
487
481
|
|
|
488
482
|
* Update ci-pipeline.yml
|
|
489
483
|
* add generic reset\_states and zero\_grad utility functions
|
|
490
484
|
|
|
491
|
-
v1.1.2
|
|
492
|
-
------
|
|
485
|
+
## v1.1.2 (16/11/2022)
|
|
493
486
|
|
|
494
487
|
* make sure that add\_spike\_output doesn't add spiking layer in original ANN
|
|
495
488
|
* removed unused imports
|
|
@@ -500,8 +493,7 @@ v1.1.2
|
|
|
500
493
|
* add documentation about how to release a new Sinabs version
|
|
501
494
|
* Hotfix new arg\_dict
|
|
502
495
|
|
|
503
|
-
v1.1.1
|
|
504
|
-
------
|
|
496
|
+
## v1.1.1 (02/11/2022)
|
|
505
497
|
|
|
506
498
|
* add arg\_dict property to StatefulLayer
|
|
507
499
|
* Update ci-pipeline.yml
|
|
@@ -513,16 +505,14 @@ v1.1.1
|
|
|
513
505
|
* add a replace\_module function that will replace specific layer according to a mapper\_fn. Reworked from\_torch
|
|
514
506
|
* requirement bumped to 1.0.7
|
|
515
507
|
|
|
516
|
-
v1.0.7
|
|
517
|
-
------
|
|
508
|
+
## v1.0.7 (27/10/2022)
|
|
518
509
|
|
|
519
510
|
* check for pytorch version under test and either call testing.assert\_close or assert\_allclose depending on the version
|
|
520
511
|
* using torch.equal instead of np equal
|
|
521
512
|
* tests fixed
|
|
522
513
|
* fixing test
|
|
523
514
|
|
|
524
|
-
v1.0.6
|
|
525
|
-
------
|
|
515
|
+
## v1.0.6
|
|
526
516
|
|
|
527
517
|
* added zero\_grad to network
|
|
528
518
|
* wip enable learning
|
|
@@ -532,8 +522,7 @@ v1.0.6
|
|
|
532
522
|
* added zero\_grad function
|
|
533
523
|
* updates to latest sinabs requirements
|
|
534
524
|
|
|
535
|
-
v1.0.5
|
|
536
|
-
------
|
|
525
|
+
## v1.0.5 (21/10/2022)
|
|
537
526
|
|
|
538
527
|
* add utils functions to documentation
|
|
539
528
|
* update tutorial notebooks to use batch\_size or num\_timesteps for from\_model
|
|
@@ -542,8 +531,7 @@ v1.0.5
|
|
|
542
531
|
* exclude samna log files
|
|
543
532
|
* get rid of test warnings: Dropout instead of Dropout2d, no autograd fn instantiation, torch.arange
|
|
544
533
|
|
|
545
|
-
v1.0.4
|
|
546
|
-
------
|
|
534
|
+
## v1.0.4 (05/10/2022)
|
|
547
535
|
|
|
548
536
|
* more docstring updates for layers plus cross-references in API documentation
|
|
549
537
|
* add shape and attributes to layer docstrings
|
|
@@ -553,27 +541,24 @@ v1.0.4
|
|
|
553
541
|
* add Repeat auxiliary layer
|
|
554
542
|
* Update ci-pipeline.yml
|
|
555
543
|
|
|
556
|
-
v1.0.3
|
|
557
|
-
------
|
|
544
|
+
## v1.0.3 (28/09/2022)
|
|
558
545
|
|
|
559
546
|
* exclude generated authors / changelog files
|
|
560
547
|
* Removed pandas dependency. Adjusted tests accordingly
|
|
561
548
|
* add speck2e config builder
|
|
562
549
|
|
|
563
|
-
v1.0.2
|
|
564
|
-
------
|
|
550
|
+
## v1.0.2 (14/09/2022)
|
|
565
551
|
|
|
566
552
|
* additional minor docstring update
|
|
567
553
|
* update some more docstrings for activation modules
|
|
568
554
|
* doc strings updated
|
|
569
555
|
|
|
570
|
-
v1.0.1
|
|
571
|
-
------
|
|
556
|
+
## v1.0.1 (26/08/2022)
|
|
572
557
|
|
|
558
|
+
Mostly making v0.3.x stable, with a revamped documentation that includes a gallery and how-tos!
|
|
573
559
|
* add release notes for v1.0.1
|
|
574
560
|
|
|
575
|
-
v1.0.0
|
|
576
|
-
------
|
|
561
|
+
## v1.0.0
|
|
577
562
|
|
|
578
563
|
* add complete tutorial notebooks since their execution is deactivated on the docs server
|
|
579
564
|
* exclude some notebooks from automatic documentation build because they take very long
|
|
@@ -585,8 +570,7 @@ v1.0.0
|
|
|
585
570
|
* first version of Sinabs gallery instead of tutorial notebook that plots neuron models
|
|
586
571
|
* added pre-commit hooks for black
|
|
587
572
|
|
|
588
|
-
v0.3.5
|
|
589
|
-
------
|
|
573
|
+
## v0.3.5 (18/08/2022)
|
|
590
574
|
|
|
591
575
|
* Bump stable PyTorch version from 1.10 to 1.12 in CI pipeline
|
|
592
576
|
* Fix bug in tutorial due to API update
|
|
@@ -595,8 +579,7 @@ v0.3.5
|
|
|
595
579
|
* Fix handling of non-scalar tau\_syn
|
|
596
580
|
* Prevent non-integer arguments to Squeeze class from breaking code
|
|
597
581
|
|
|
598
|
-
v0.3.4
|
|
599
|
-
------
|
|
582
|
+
## v0.3.4 (21/06/2022)
|
|
600
583
|
|
|
601
584
|
* Fix critical bug in LIF synaptic forward dynamics
|
|
602
585
|
* re-naming from BufferSinkNode to BasicSinkNode
|
|
@@ -640,8 +623,7 @@ v0.3.4
|
|
|
640
623
|
* Remove tau\_mem as a parameter from IAF
|
|
641
624
|
* from\_model takes same parameters as IAF
|
|
642
625
|
|
|
643
|
-
v0.3.3
|
|
644
|
-
------
|
|
626
|
+
## v0.3.3 (20/04/2022)
|
|
645
627
|
|
|
646
628
|
* update SNN synops tutorial
|
|
647
629
|
* make SNNSynopsCounter work as a loss function
|
|
@@ -653,21 +635,28 @@ v0.3.3
|
|
|
653
635
|
* moved parse\_device\_string into utils. No need of samna to run other modules
|
|
654
636
|
* added speck2b tiny support
|
|
655
637
|
|
|
656
|
-
v0.3.2
|
|
657
|
-
------
|
|
638
|
+
## v0.3.2 (314/03/2022)
|
|
658
639
|
|
|
659
640
|
* Rename remaining threshold arguments to spike\_threshold for more consistency
|
|
660
641
|
* Update .gitlab-ci.yml
|
|
661
642
|
* Update jupyterlab-requirements.txt
|
|
662
643
|
|
|
663
|
-
v0.3.1
|
|
664
|
-
------
|
|
644
|
+
## v0.3.1 (23/03/2022)
|
|
665
645
|
|
|
666
646
|
* Update ci-pipeline.yml
|
|
667
647
|
* Update requirements.txt
|
|
668
648
|
|
|
669
|
-
v0.3.0
|
|
670
|
-
|
|
649
|
+
## v0.3.0 (22/03/2022)
|
|
650
|
+
|
|
651
|
+
This is a major overhaul which rewrites a large part of the package.
|
|
652
|
+
|
|
653
|
+
* Addition of leaky models such as Leaky Integrate and Fire (LIF), Exponential Leaky (ExpLeak) and Adaptive LIF (ALIF).
|
|
654
|
+
* Activation module: from sinabs.activation you'll now be able to pick and choose different spike generation, reset mechanism and surrogate gradient functions. You can pass them to the neuron model (LIF, IAF, ...) of your liking if you want to alter the default behavior.
|
|
655
|
+
* new documentation on readthedocs
|
|
656
|
+
* SpikingLayer has been renamed to IAF (Integrate and Fire).
|
|
657
|
+
* State variable names changed and new ones have been added: 'state' is now called 'v_mem' and 'i_syn' is added for neuron layers that use tau_syn.
|
|
658
|
+
* New neuron features: support for recurrent connections, recording internal states, normalising inputs by taus, initialisation with shape and more.
|
|
659
|
+
* We moved our repo to Github and changed the CI pipeline to Github actions.
|
|
671
660
|
|
|
672
661
|
* add basic parameter printing in \_\_repr\_\_
|
|
673
662
|
* Update ci-pipeline.yml
|
|
@@ -786,8 +775,13 @@ v0.3.0
|
|
|
786
775
|
* tau\_mem for LIF neurons is now always calculated on CPU and transferred to original device, for better numerical comparison with SLAYER LIF layer
|
|
787
776
|
* only zero gradients if state is initialised
|
|
788
777
|
|
|
789
|
-
v0.2.1
|
|
790
|
-
|
|
778
|
+
## v0.2.1 (22/02/2022)
|
|
779
|
+
|
|
780
|
+
* TorchLayer renamed to Layer
|
|
781
|
+
* Added a depricated class TorchLayer with warning
|
|
782
|
+
* Added some new layer types
|
|
783
|
+
* BPTT enabled spike activation layer
|
|
784
|
+
* SpikingTemporalConv1dLayer
|
|
791
785
|
|
|
792
786
|
* added pip install
|
|
793
787
|
* added requirements
|
|
@@ -1139,8 +1133,7 @@ v0.2.1
|
|
|
1139
1133
|
* fixed docs, removed commented-out areas
|
|
1140
1134
|
* removed dependency on samna for validation, and on SpikingLayerBPTT
|
|
1141
1135
|
|
|
1142
|
-
v0.2.0
|
|
1143
|
-
------
|
|
1136
|
+
## v0.2.0
|
|
1144
1137
|
|
|
1145
1138
|
* Threshold gradient scaled by threshold (Bug fix)
|
|
1146
1139
|
* updated docs, removed exclude\_negative\_spikes from fromtorch (no effect)
|
|
@@ -1319,8 +1312,7 @@ v0.2.0
|
|
|
1319
1312
|
* Depricated TorchLayer added
|
|
1320
1313
|
* merged master to bptt\_devel
|
|
1321
1314
|
|
|
1322
|
-
v0.1.dev7
|
|
1323
|
-
---------
|
|
1315
|
+
## v0.1.dev7 (09/04/2020)
|
|
1324
1316
|
|
|
1325
1317
|
* install m2r with hotfix for new version of sphinx
|
|
1326
1318
|
* changed membrane\_subtract and reset defaults, some cleanup
|
|
@@ -1499,8 +1491,7 @@ v0.1.dev7
|
|
|
1499
1491
|
* merged
|
|
1500
1492
|
* fixed typos in readme
|
|
1501
1493
|
|
|
1502
|
-
v0.1.0
|
|
1503
|
-
------
|
|
1494
|
+
## v0.1.0
|
|
1504
1495
|
|
|
1505
1496
|
* fixed version number
|
|
1506
1497
|
* removed contrib branch
|
|
@@ -151,6 +151,9 @@ The actual Neuron memory entries is then:
|
|
|
151
151
|
|
|
152
152
|
Where 128Ki neuron exceeds any available neuron memory contrains among 9 layers, thus this layer **CANNOT** be deployed on the chip
|
|
153
153
|
|
|
154
|
+
If neuron and kernel memories exceeds the hardware resources, when trying to map the layer a "No valid mapping" error will be thrown.
|
|
155
|
+
When working with Speck and Conv2D layers, we offer a tool to help you to validate if the layer can be mapped: `utils.validate_memory_mapping_speck()`.
|
|
156
|
+
|
|
154
157
|
#### Leak operation
|
|
155
158
|
|
|
156
159
|
Each layer includes a leak generation block, which will update all the configured neuron states with provided leak values with a clock reference signal. Checkout the [tutorial](notebooks/leak_neuron) on how to use leak feature.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
- [ ] Tests for the changes have been added (for bug fixes/features)
|
|
3
3
|
- [ ] Docs have been added / updated (for bug fixes / features)
|
|
4
4
|
- [ ] I have performed a self-review of my code
|
|
5
|
-
- [ ] Will this be part of a product update? If yes, please write one line about this on
|
|
5
|
+
- [ ] Will this be part of a product update? If yes, please write one line about this on docs/about/release_notes.md
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
* **What kind of change does this PR introduce?** (Bug fix, feature, docs update, ...)
|
|
@@ -2,9 +2,15 @@ from pbr.version import VersionInfo
|
|
|
2
2
|
|
|
3
3
|
__version__ = VersionInfo("sinabs").release_string()
|
|
4
4
|
|
|
5
|
-
from . import conversion, utils
|
|
5
|
+
from . import conversion, utils, validate_memory_speck
|
|
6
6
|
from .from_torch import from_model
|
|
7
7
|
from .network import Network
|
|
8
8
|
from .nir import from_nir, to_nir
|
|
9
9
|
from .synopcounter import SNNAnalyzer, SynOpCounter
|
|
10
|
-
from .utils import
|
|
10
|
+
from .utils import (
|
|
11
|
+
reset_states,
|
|
12
|
+
set_batch_size,
|
|
13
|
+
zero_grad,
|
|
14
|
+
validate_memory_mapping_speck,
|
|
15
|
+
)
|
|
16
|
+
from .validate_memory_speck import ValidateMapping
|
|
@@ -344,7 +344,6 @@ class DynapcnnNetwork(nn.Module):
|
|
|
344
344
|
)
|
|
345
345
|
# Validate config
|
|
346
346
|
if is_compatible:
|
|
347
|
-
print("Network is valid")
|
|
348
347
|
return config
|
|
349
348
|
else:
|
|
350
349
|
raise ValueError(f"Generated config is not valid for {device}")
|
|
@@ -361,8 +360,8 @@ class DynapcnnNetwork(nn.Module):
|
|
|
361
360
|
try:
|
|
362
361
|
_, is_compatible = self._make_config(device=device_type)
|
|
363
362
|
except ValueError as e:
|
|
364
|
-
# Catch "No valid mapping found" error
|
|
365
|
-
if e.args[0]
|
|
363
|
+
# Catch "No valid mapping found" error, it is the first sentence in the string
|
|
364
|
+
if e.args[0].find("No valid mapping found.") == 0:
|
|
366
365
|
return False
|
|
367
366
|
else:
|
|
368
367
|
raise e
|
|
@@ -188,5 +188,8 @@ def recover_mapping(graph, layer_mapping) -> List[Tuple[int, int]]:
|
|
|
188
188
|
if edge.flow == 1:
|
|
189
189
|
mapping.append((i, edge.t - len(layer_mapping) - 1))
|
|
190
190
|
if len(mapping) != len(layer_mapping):
|
|
191
|
-
raise ValueError(
|
|
191
|
+
raise ValueError(
|
|
192
|
+
"No valid mapping found. "
|
|
193
|
+
"For Speck family you can use `utils.validate_memory_mapping_speck()` to get more information."
|
|
194
|
+
)
|
|
192
195
|
return mapping
|