Example #1
0
def test_rates(Simulator):
    functions = [
        ('isi_zero', lambda t, s: rates_isi(
            t, s, midpoint=False, interp='zero')),
        ('isi_midzero', lambda t, s: rates_isi(
            t, s, midpoint=True, interp='zero')),
        ('isi_linear', lambda t, s: rates_isi(
            t, s, midpoint=False, interp='linear')),
        ('isi_midlinear', lambda t, s: rates_isi(
            t, s, midpoint=True, interp='linear')),
        ('kernel_expon', lambda t, s: rates_kernel(t, s, kind='expon')),
        ('kernel_gauss', lambda t, s: rates_kernel(t, s, kind='gauss')),
        ('kernel_expogauss', lambda t, s: rates_kernel(
            t, s, kind='expogauss')),
        ('kernel_alpha', lambda t, s: rates_kernel(t, s, kind='alpha')),
    ]

    print("\ntest_rates:")
    for name, function in functions:
        rel_rmse = _test_rates(Simulator, function, name)
        print("%20s relative rmse: %0.3f" % (name, rel_rmse))
Example #2
0
def test_rates(Simulator, plt, seed):
    functions = [
        ('isi_zero', lambda t, s: rates_isi(
            t, s, midpoint=False, interp='zero')),
        ('isi_midzero', lambda t, s: rates_isi(
            t, s, midpoint=True, interp='zero')),
        ('isi_linear', lambda t, s: rates_isi(
            t, s, midpoint=False, interp='linear')),
        ('isi_midlinear', lambda t, s: rates_isi(
            t, s, midpoint=True, interp='linear')),
        ('kernel_expon', lambda t, s: rates_kernel(t, s, kind='expon')),
        ('kernel_gauss', lambda t, s: rates_kernel(t, s, kind='gauss')),
        ('kernel_expogauss', lambda t, s: rates_kernel(
            t, s, kind='expogauss')),
        ('kernel_alpha', lambda t, s: rates_kernel(t, s, kind='alpha')),
    ]

    print("\ntest_rates:")
    for name, function in functions:
        rel_rmse = _test_rates(Simulator, function, plt, seed, name)
        print("%20s relative rmse: %0.3f" % (name, rel_rmse))
Example #3
0
def test_rates(Simulator, seed, logger):
    pytest.importorskip('scipy')
    functions = [
        ('isi_zero', lambda t, s: rates_isi(
            t, s, midpoint=False, interp='zero')),
        ('isi_midzero', lambda t, s: rates_isi(
            t, s, midpoint=True, interp='zero')),
        ('isi_linear', lambda t, s: rates_isi(
            t, s, midpoint=False, interp='linear')),
        ('isi_midlinear', lambda t, s: rates_isi(
            t, s, midpoint=True, interp='linear')),
        ('kernel_expon', lambda t, s: rates_kernel(t, s, kind='expon')),
        ('kernel_gauss', lambda t, s: rates_kernel(t, s, kind='gauss')),
        ('kernel_expogauss', lambda t, s: rates_kernel(
            t, s, kind='expogauss')),
        ('kernel_alpha', lambda t, s: rates_kernel(t, s, kind='alpha')),
    ]

    for name, function in functions:
        rel_rmse = _test_rates(Simulator, function, None, seed)
        logger.info('rate estimator: %s', name)
        logger.info('relative RMSE: %0.4f', rel_rmse)
Example #4
0
def test_rates(Simulator, seed, logger):
    pytest.importorskip('scipy')
    functions = [
        ('isi_zero',
         lambda t, s: rates_isi(t, s, midpoint=False, interp='zero')),
        ('isi_midzero',
         lambda t, s: rates_isi(t, s, midpoint=True, interp='zero')),
        ('isi_linear',
         lambda t, s: rates_isi(t, s, midpoint=False, interp='linear')),
        ('isi_midlinear',
         lambda t, s: rates_isi(t, s, midpoint=True, interp='linear')),
        ('kernel_expon', lambda t, s: rates_kernel(t, s, kind='expon')),
        ('kernel_gauss', lambda t, s: rates_kernel(t, s, kind='gauss')),
        ('kernel_expogauss',
         lambda t, s: rates_kernel(t, s, kind='expogauss')),
        ('kernel_alpha', lambda t, s: rates_kernel(t, s, kind='alpha')),
    ]

    for name, function in functions:
        rel_rmse = _test_rates(Simulator, function, None, seed)
        logger.info('rate estimator: %s', name)
        logger.info('relative RMSE: %0.4f', rel_rmse)
Example #5
0
dt = 0.0001  # use finer resolution cz of high bursting

with nengo.Network() as model:
    # parameters tuned for EBN/IBN
    neuron = nengo.Izhikevich(reset_voltage=-70, reset_recovery=2,
                              tau_recovery=0.005)

    ens = nengo.Ensemble(n_neurons=1, dimensions=1, encoders=[[1]],
                         intercepts=[-0.9], max_rates=[150],
                         neuron_type=neuron)
    # ens = nengo.Ensemble(n_neurons=1, dimensions=1, encoders=[[1]],
    # intercepts=[-0.9])
    node = nengo.Node(output=lambda t: 1 if t < dur else -1)
    nengo.Connection(node, ens)
    sp = nengo.Probe(ens.neurons, attr='spikes')
    cp = nengo.Probe(ens, attr='input')

s = nengo.Simulator(model, dt=dt)
s.run(0.1)

plt.figure()
plt.subplot(221)
plt.plot(s.trange(), s.data[sp])
plt.subplot(222)
plt.plot(s.trange(), rates_isi(s.trange(), s.data[sp]))
plt.subplot(223)
plt.plot(s.trange(), s.data[cp])
plt.subplot(224)
plt.plot(*tuning_curves(ens, s))
plt.show()