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))
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))
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)
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)
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()