示例#1
0
def test_lnp_spikes_parametric_nonlinearity():
    w_true, X, y, dims, dt = generate_spike_train(noise='white')

    (X_train, y_train), (X_dev, y_dev), (_, _) = split_data(X,
                                                            y,
                                                            dt,
                                                            frac_train=0.8,
                                                            frac_dev=0.2)

    df = [3, 4]

    model = splineLNP(X_train,
                      y_train,
                      dims,
                      df=df,
                      dt=dt,
                      output_nonlinearity='spline')
    model.initialize_parametric_nonlinearity(init_to='exponential',
                                             params_dict={'df': 11})
    model.fit(extra={
        'X': X_dev,
        'y': y_dev
    },
              num_iters=50,
              metric='corrcoef',
              beta=0.01,
              verbose=False,
              tolerance=10,
              fit_nonlinearity=True)

    assert model.output_nonlinearity == 'spline'
    assert model.nl_basis is not None
    assert model.nl_xrange is not None
    assert model.nl_params is not None
    assert model.fnl_fitted is not None
示例#2
0
def test_splinelnp_spikes_split_data():
    w_true, X, y, dims, dt = generate_spike_train(noise='white')

    (X_train, y_train), (X_dev, y_dev), (_, _) = split_data(X,
                                                            y,
                                                            dt,
                                                            frac_train=0.8,
                                                            frac_dev=0.2)

    df = [3, 4]

    model = splineLNP(X_train,
                      y_train,
                      dims,
                      df,
                      dt=dt,
                      output_nonlinearity='exponential')
    model.fit(extra={
        'X': X_dev,
        'y': y_dev
    },
              num_iters=50,
              metric='corrcoef',
              beta=0.01,
              verbose=0,
              tolerance=10)

    assert model.w_spl.size == w_true.size
示例#3
0
def test_lnp_spikes_history_filter():
    w_true, X, y, dims, dt = generate_spike_train(noise='white')

    (X_train, y_train), (X_dev, y_dev), (_, _) = split_data(X,
                                                            y,
                                                            dt,
                                                            frac_train=0.8,
                                                            frac_dev=0.2)

    df = [3, 4]

    model = splineLNP(X_train, y_train, dims, df=df, dt=dt)
    model.initialize_history_filter(dims[0], df[0])
    model.fit(extra={
        'X': X_dev,
        'y': y_dev
    },
              num_iters=50,
              metric='corrcoef',
              beta=0.01,
              verbose=False,
              tolerance=10,
              fit_history_filter=True,
              fit_nonlinearity=False)

    assert model.h_opt is not None
    assert model.h_spl is not None
示例#4
0
def test_lnp_STC():
    w_true, X, y, dims, dt = generate_spike_train(noise='white')

    model = LNP(X, y, dims=dims, dt=dt)
    model.fit_STC(n_repeats=100, verbose=10)

    assert model.w_stc is not None
    assert model.w_stc is not None
示例#5
0
def test_lnp_spikes():
    w_true, X, y, dims, dt = generate_spike_train(noise='white')

    model = LNP(X, y, dims=dims, dt=dt)
    model.fit(metric='corrcoef',
              num_iters=100,
              verbose=0,
              tolerance=10,
              beta=0.01)

    assert model.w_opt.size == w_true.size
示例#6
0
def test_splinelnp_spikes():
    w_true, X, y, dims, dt = generate_spike_train(noise='white')

    df = [3, 4]
    model = splineLNP(X, y, dims=dims, dt=dt, df=df)
    model.fit(metric='corrcoef',
              num_iters=100,
              verbose=0,
              tolerance=10,
              beta=0.01)

    assert model.w_spl.size == w_true.size