Example #1
0
 def create_updater(self):
     vel_gain = 1e-8
     # vel_gain *= self.param_noise_scale
     const_var = 1e-4 * 0.06 / 50
     vel_var = vel_gain * 0.13
     param_noise_variances = np.array([
         vel_var / 225, vel_var / 225, vel_var / 5, vel_var / 5, const_var
     ])
     self.updater = clda.PPFContinuousBayesianUpdater(
         self.decoder, param_noise_variances=param_noise_variances)
 def create_updater(self):
     self.updater = clda.PPFContinuousBayesianUpdater(
         self.decoder, param_noise_scale=self.param_noise_scale)
Example #3
0
 def create_updater(self):
     self.updater = clda.PPFContinuousBayesianUpdater(self.decoder)
Example #4
0
decoder_rml = train._train_PPFDecoder_sim_known_beta(beta_est,
                                                     encoder.units,
                                                     dt=dt,
                                                     dist_units='m')

# Initialize learner and updater
batch_time = 60.
batch_size = batch_time / dt
half_life = 120.
rho = np.exp(np.log(0.5) / (half_life / batch_time))

learner = clda.BatchLearner(batch_size)
updater_sb = clda.PPFSmoothbatchSingleThread()
updater_sb.rho = rho

updater_cont = clda.PPFContinuousBayesianUpdater(decoder_rml)
updater_cont.rho = -1

## RUN
n_iter = X.shape[0]
spike_counts = data['spike_counts']
beta_hist = []

beta_cont_hist = np.zeros([n_iter, n_neurons, 3])
beta_cont_hist[0, :, -1] = beta[:, -1]

I = np.mat(np.eye(3 * n_neurons))
R_diag_neuron = 1e-4 * np.array([0.13, 0.13, 0.06 / 50])
R = np.diag(np.tile(R_diag_neuron, (n_neurons, )))
meta_ppf = ppfdecoder.PointProcessFilter(I, R, np.zeros(3 * n_neurons), dt=dt)
meta_ppf._init_state(init_state=beta_cont_hist[0, :, :].ravel(), init_cov=R)
Example #5
0
beta_hat = data['beta_hat']
aimPos = data['aimPos']
n_iter = data['n_iter'][0, 0]
stimulant_index = data['stimulant_index']
param_noise_variances = data['param_noise_variances'].ravel()
stoch_beta_index = data['stoch_beta_index']
det_beta_index = data['det_beta_index']

## Create the object representing the initial decoder
init_beta = beta_hat[:, :, 0]
init_beta = np.vstack([init_beta[1:, :], init_beta[0, :]]).T
decoder = train._train_PPFDecoder_sim_known_beta(init_beta,
                                                 units=[],
                                                 dist_units='cm')

updater = clda.PPFContinuousBayesianUpdater(decoder, units='cm')
m_to_cm = 100.
cm_to_m = 0.01

dt = 0.005
beta_hat_recon_error = np.nan * np.ones(beta_hat.shape)
inds = []
n_iter = 20000
for idx in range(1, n_iter):
    if idx % 1000 == 0:
        try:
            print idx, np.max(np.abs(beta_hat_recon_error[:, :, inds]))
        except:
            pass
    if not np.any(np.isnan(aimPos[:, idx])):
        ##[test, P_params_est_old] = PPF_adaptive_beta(