Giter Club home page Giter Club logo

Comments (1)

clinssen avatar clinssen commented on June 20, 2024

Including the relevant report from @tomtetzlaff here about the ignore_and_fire neuron model.

In my original version, I had defined the variable

phase_steps integer = steps( max(0.,phase) / firing_rate )

in the internals block. It's just the integer version of the state
variable "phase". In the above NESTML version, you moved the definition
of "phase_steps" to the state block, probably because it is not a fixed
parameter, but a quantity which changes over time.

However, instead of calculating its initial value from the initial
phase, you set it to

phase_steps integer = firing_period_steps / 2

This is a problem because now one cannot control the initial value of
"phase_steps" by setting the initial value of "phase". If I create a
population of ignore_and-fire neurons, they all fire the first spike at
the same time, even if the initial "phase" is randomized. The idea was
that by randomizing the initial phase, one can generate asynchronous
firing, as described here:

https://jugit.fz-juelich.de/aca_requirements_validation_and_benchmarking/development-of-test-and-science-cases/-/blob/master/testcases/utils/nestml_models/doc/ignore_and_fire.md?ref_type=heads

In

https://jugit.fz-juelich.de/aca_requirements_validation_and_benchmarking/development-of-test-and-science-cases/-/blob/master/testcases/utils/nestml_models/ignore_and_fire.nestml

and in the attached script, you'll find a revised version of the model.
Here, I declare "phase_steps" in line 25 as a state variable with
initial value zero, but then it is recalculated in line 41 at the
beginning of each update step according to the current value of the
phase. This generates the correct behavior, but I find this solution
somewhat suboptimal. In principle, line 41 needs to be executed only
during the initialization. At all later steps, "phase_steps" is already
in sync with "phase" according to line 52. Do you see a better solution?
Having line 41 in the state block doesn't work because then
"phase_steps" is set according to the default initial value of
"phase", rather than according to the initial "phase" set by the user.

ignore_and_fire.txt

from nestml.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.