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

Add the models and process of conv_in_time in src/lava/proc/conv_in_time #833

Merged
merged 22 commits into from
Apr 25, 2024

Conversation

zeyuliu1037
Copy link
Contributor

@zeyuliu1037 zeyuliu1037 commented Jan 31, 2024

Issue Number:

Objective of pull request: Add the models and process of conv_in_time

Pull request checklist

Your PR fulfills the following requirements:

  • Issue created that explains the change and why it's needed
  • Tests are part of the PR (for bug fixes / features)
  • Docs reviewed and added / updated if needed (for bug fixes / features)
  • PR conforms to Coding Conventions
  • PR applys BSD 3-clause or LGPL2.1+ Licenses to all code files
  • Lint (flakeheaven lint src/lava tests/) and (bandit -r src/lava/.) pass locally
  • Build tests (pytest) passes locally

Pull request type

Please check your PR type:

  • Bugfix
  • Feature
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • Documentation changes
  • Other (please describe):

What is the current behavior?

  • None

What is the new behavior?

  • Conv in time can apply the Conv1d in the time dimension instead of the position dimension applied by the original convolution layer. The kernel size determines the delay time of the module. Specifically, for a kernel size of K, the delay time is K-1, i.e., after K-1 time steps, the module will output the correct result sequentially.

Does this introduce a breaking change?

  • Yes
  • No

Supplemental information

The test code is located in the bottom comment of the /src/lava/proc/conv_in_time/process.py file.

@bamsumit bamsumit self-requested a review February 5, 2024 03:11
Copy link
Contributor

@bamsumit bamsumit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@zeyuliu1037 Thanks for the contribution. These are missing organized unittests. Lets add unittests in similar hierarchy as tests/lava/proc/conv/

src/lava/proc/conv_in_time/process.py Outdated Show resolved Hide resolved
src/lava/proc/conv_in_time/models.py Show resolved Hide resolved
Copy link
Contributor

@bamsumit bamsumit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Zeyu, looks great. Just one minor comment and it looks good to approve.

src/lava/proc/conv_in_time/process.py Outdated Show resolved Hide resolved
@bamsumit
Copy link
Contributor

@zeyuliu1037 seems there are some linting errors regarding code quality. Link here. Can you fix them?

Copy link
Contributor

@PhilippPlank PhilippPlank left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, only some small change requests.

tests/lava/proc/conv_in_time/test_process.py Outdated Show resolved Hide resolved
tests/lava/proc/conv_in_time/test_process.py Outdated Show resolved Hide resolved
tests/lava/proc/conv_in_time/test_process.py Outdated Show resolved Hide resolved
src/lava/proc/conv_in_time/models.py Outdated Show resolved Hide resolved
@bamsumit
Copy link
Contributor

bamsumit commented Mar 6, 2024

@zeyuliu1037 we still have a few linting errors:

tests/lava/proc/conv_in_time/test_process.py
    38:  25 E128 continuation line under-indented for visual indent [pycodestyle]
  n_flat_output_neurons, n_flat_input_neurons]) - 128
  ^
    41:  25 E128 continuation line under-indented for visual indent [pycodestyle]
  "ground_truth/spike_input.npy"))
  ^
    43:  25 E128 continuation line under-indented for visual indent [pycodestyle]
  "ground_truth/quantized_weights_k_out_in.npy"))
  ^
    74:  25 E128 continuation line under-indented for visual indent [pycodestyle]
  "ground_truth/torch_output.npy"))
  ^

@PhilippPlank PhilippPlank merged commit 2f3e0f8 into lava-nc:main Apr 25, 2024
6 checks passed
srrisbud added a commit that referenced this pull request May 16, 2024
* Explicitly keep track of all Processes in the Executable to make sure all Processes are assigned the Runtime

Signed-off-by: Risbud, Sumedh <sumedh.risbud@intel.com>

* A utility to measure the size of a python object recursively. Useful for example, to measure the size of NxBoard object after compilation

Signed-off-by: Risbud, Sumedh <sumedh.risbud@intel.com>

* Removed the utility to estimate Python object size

Signed-off-by: Risbud, Sumedh <sumedh.risbud@intel.com>

* Fixed Runtime unittest to accommodate passing an explicit ProcessList to the Executable

Signed-off-by: Risbud, Sumedh <sumedh.risbud@intel.com>

* Removed unused import

Signed-off-by: Risbud, Sumedh <sumedh.risbud@intel.com>

* LearningDense bit-accurate (#812)

* minor change in dependency computation

* updating stochastic round type hint

* small fix in clip_weights

* progress in making tests pass

* fixing Sparse init

* trying tests

* adapting init method of LearningDense Process

---------

Co-authored-by: PhilippPlank <32519998+PhilippPlank@users.noreply.github.com>

* Bump fonttools from 4.41.1 to 4.43.0 (#824)

Bumps [fonttools](https://github.com/fonttools/fonttools) from 4.41.1 to 4.43.0.
- [Release notes](https://github.com/fonttools/fonttools/releases)
- [Changelog](https://github.com/fonttools/fonttools/blob/main/NEWS.rst)
- [Commits](fonttools/fonttools@4.41.1...4.43.0)

---
updated-dependencies:
- dependency-name: fonttools
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump gitpython from 3.1.37 to 3.1.41 (#825)

Bumps [gitpython](https://github.com/gitpython-developers/GitPython) from 3.1.37 to 3.1.41.
- [Release notes](https://github.com/gitpython-developers/GitPython/releases)
- [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES)
- [Commits](gitpython-developers/GitPython@3.1.37...3.1.41)

---
updated-dependencies:
- dependency-name: gitpython
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* SigmaS4Delta Neuronmodel and Layer with Unittests (#830)

* first wokring version

* S4D model cleaned

* update license

* fix imports

* linting

* incorporate reviews

* update docstring

* Bump pillow from 10.0.1 to 10.2.0 (#832)

Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.0.1 to 10.2.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](python-pillow/Pillow@10.0.1...10.2.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: PhilippPlank <32519998+PhilippPlank@users.noreply.github.com>

* [QUBO] Solution readout via spikeIO for multi-chip support (#820)

* 32bit receiver

* linting

---------

Co-authored-by: Risbud, Sumedh <sumedh.risbud@intel.com>

* Bump cryptography from 41.0.6 to 42.0.0 (#834)

Bumps [cryptography](https://github.com/pyca/cryptography) from 41.0.6 to 42.0.0.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](pyca/cryptography@41.0.6...42.0.0)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump cryptography from 42.0.0 to 42.0.2 (#836)

Bumps [cryptography](https://github.com/pyca/cryptography) from 42.0.0 to 42.0.2.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](pyca/cryptography@42.0.0...42.0.2)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump cryptography from 42.0.2 to 42.0.4 (#837)

Bumps [cryptography](https://github.com/pyca/cryptography) from 42.0.2 to 42.0.4.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](pyca/cryptography@42.0.2...42.0.4)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Spiker with 32bit

* Alternative to Injector/Extractor Processes (#835)

* prototype implementing injector/extractor function, not wrapped in a Process

* modified injector and extractor classes

* fixed linting

---------

Co-authored-by: PhilippPlank <32519998+PhilippPlank@users.noreply.github.com>
Co-authored-by: Philipp Plank <philipp.plank@intel.com>

* fix security issues

* Fix workflows (#844)

* prototype implementing injector/extractor function, not wrapped in a Process

* modified injector and extractor classes

* fixed linting

* fix workflows

---------

Co-authored-by: gkarray <ghassen.karray@intel.com>

* Bump pillow from 10.2.0 to 10.3.0 (#847)

Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.2.0 to 10.3.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](python-pillow/Pillow@10.2.0...10.3.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump idna from 3.6 to 3.7 (#848)

Bumps [idna](https://github.com/kjd/idna) from 3.6 to 3.7.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst)
- [Commits](kjd/idna@v3.6...v3.7)

---
updated-dependencies:
- dependency-name: idna
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update ci.yml (#853)

* ATRLIF neuron model (#846)

* added process and CPU process models of ATRLIF neuron; added a Jupyter notebook to demonstrate the properties of the ATRLIF neuron

* testing of the tutorial

* tests for process and model added; copyright notes added; cleanup

* codacy-related fixed

* comment formatting and copyright notices adjusted

* Add the models and process of conv_in_time in src/lava/proc/conv_in_time (#833)

* add the models and process of conv_in_time in src/lava/proc/conv_in_time

* remove unused library

* remove Trailing whitespace

* add unittest for conv in time and related pytorch ground truth

* add fixed_pt version of conv in time

* change input to spike_input

* add from lava.proc.conv import utils

* remove unwanted comments

* fixed some linting errors

* Start all comments with upper case character & change the year for all copyright headers to 2024 for new files

* remove whitespace

* continuation line under-indented

* Trailing whitespace

* shorten variables names

---------

Co-authored-by: bamsumit <bam_sumit@hotmail.com>
Co-authored-by: PhilippPlank <32519998+PhilippPlank@users.noreply.github.com>

* Fixed/updated poetry.lock to match the TOML file

Signed-off-by: Risbud, Sumedh <sumedh.risbud@intel.com>

* Delinting

Signed-off-by: Risbud, Sumedh <sumedh.risbud@intel.com>

* Fixed a unittest by adding .name attribute to a Mock object

Signed-off-by: Risbud, Sumedh <sumedh.risbud@intel.com>

---------

Signed-off-by: Risbud, Sumedh <sumedh.risbud@intel.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Ghassen Karray <36999864+gkarray@users.noreply.github.com>
Co-authored-by: PhilippPlank <32519998+PhilippPlank@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smm-ncl <145007783+smm-ncl@users.noreply.github.com>
Co-authored-by: Philipp Stratmann <86950058+phstratmann@users.noreply.github.com>
Co-authored-by: Philipp Plank <philipp.plank@intel.com>
Co-authored-by: gkarray <ghassen.karray@intel.com>
Co-authored-by: Jannik Luboeinski <33398515+jlubo@users.noreply.github.com>
Co-authored-by: Zeyu Liu <liuzeyu@usc.edu>
Co-authored-by: bamsumit <bam_sumit@hotmail.com>
monkin77 pushed a commit to monkin77/thesis-lava that referenced this pull request Jul 12, 2024
…ime (lava-nc#833)

* add the models and process of conv_in_time in src/lava/proc/conv_in_time

* remove unused library

* remove Trailing whitespace

* add unittest for conv in time and related pytorch ground truth

* add fixed_pt version of conv in time

* change input to spike_input

* add from lava.proc.conv import utils

* remove unwanted comments

* fixed some linting errors

* Start all comments with upper case character & change the year for all copyright headers to 2024 for new files

* remove whitespace

* continuation line under-indented

* Trailing whitespace

* shorten variables names

---------

Co-authored-by: bamsumit <bam_sumit@hotmail.com>
Co-authored-by: PhilippPlank <32519998+PhilippPlank@users.noreply.github.com>
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

Successfully merging this pull request may close these issues.

None yet

4 participants