This looks like expected behaviour to me. By ‘exploding’ do you mean those two time-steps where it outputs 2 spikes rather than 1 spike during those time-steps? Assuming you are using a `dt`

of `1ms`

, given a Poisson distribution with a rate of 50 Hz, this is roughly what one would expect. Specifically, across 2,000 time-steps you would expect ~95 of those steps to contain one spike, ~2 of those steps to contain two spikes, and overall 40x as many steps will contain one spike versus two spikes. (*)

This may be confusing as you are basing the Poisson neuron on the response curve of a `LIFRate`

neuron with a refractory period of 2 ms. `LIFRate(tau_ref=0.002)`

cannot spike more than once in a single millisecond, but when you convert it to Poisson you lose the dynamics of that refractory since a Poisson process does not have a refractory period. Nevertheless, you keep the same response curve, and all this means is that occasionally the neuron spikes more than once in a one millisecond window.

(*) See code checking this mathematically, below:

```
import scipy.special
def pdf(lmbda, k):
"""Probability density function for a Poisson distribution."""
return lmbda ** k * np.exp(-lmbda) / scipy.special.factorial(k)
dt = 0.001
rate = 50
one_spike = pdf(rate * dt, k=1)
two_spike = pdf(rate * dt, k=2)
n_steps = 2000
print(one_spike * n_steps)
print(two_spike * n_steps)
print(one_spike / two_spike)
```

=>

```
95.1229424500714
2.3780735612517856
39.99999999999999
```