def CvsPyEstimate(): N_phi = 20; print 'N_phi = ', N_phi phi_norms = linspace(1/(2.*N_phi), 1. - 1/ (2.*N_phi), N_phi) batch_start = time.clock() base_name = 'sinusoidal_spike_train_N=1000_' D = DataHarvester('CvsPY_2x4') for regime_name, T_thresh in zip(['subT', 'superSin'], [32, 16.]): regime_label = base_name + regime_name for sample_id in xrange(1,4): file_name = regime_label + '_' + str(sample_id) print file_name binnedTrain = BinnedSpikeTrain.initFromFile(file_name, phi_norms) ps = binnedTrain._Train._params abg_true = array((ps._alpha, ps._beta, ps._gamma)) D.setRegime(regime_name,abg_true, Tsim=-1.0) phi_omit = None binnedTrain.pruneBins(phi_omit, N_thresh = 64, T_thresh=T_thresh) Tf = binnedTrain.getTf() D.addSample(sample_id, Tf, binnedTrain.getBinCount(), binnedTrain.getSpikeCount()) start = time.clock() abg_init = initialize_right_2std(binnedTrain) finish = time.clock() D.addEstimate(sample_id, 'Initializer', abg_init, finish-start) dx = .025; dt = FPMultiPhiSolver.calculate_dt(dx, abg_true, -1.0) phis = binnedTrain.bins.keys(); theta = binnedTrain.theta S = FPMultiPhiSolver(theta, phis, dx, dt, Tf, X_min = -1.0) start = time.clock() abg_est = cNMEstimator(S, binnedTrain, abg_init) finish = time.clock() D.addEstimate(sample_id, 'FP-C', abg_est, finish-start) start = time.clock() abg_est = NMEstimator(S, binnedTrain, abg_init) finish = time.clock() D.addEstimate(sample_id, 'FP-PY', abg_est, finish-start) D.closeFile()
def WeightedFP_N1(N_spikes = 100, N_trains=1): N_phi = 20; print 'N_phi = ', N_phi phi_norms = linspace(1/(2.*N_phi), 1. - 1/ (2.*N_phi), N_phi) batch_start = time.clock() base_name = 'sinusoidal_spike_train_N=%d_'%N_spikes D = DataHarvester('FPvsWFP_4x%d_N=%d'%(N_trains,N_spikes)) for regime_name, T_thresh in zip(['subT','superT', 'crit', 'superSin'], [32.,32., 32., 32.]): regime_label = base_name + regime_name for sample_id in xrange(1,N_trains +1): file_name = regime_label + '_' + str(sample_id) print file_name binnedTrain = BinnedSpikeTrain.initFromFile(file_name, phi_norms) ps = binnedTrain._Train._params abg_true = array((ps._alpha, ps._beta, ps._gamma)) D.setRegime(regime_name,abg_true, Tsim=-1.0) #### N_thresh = 10 binnedTrain.pruneBins(None, N_thresh = 10, T_thresh=T_thresh) D.addSample(sample_id, binnedTrain.getTf(), binnedTrain.getBinCount(), binnedTrain.getSpikeCount()) abg_init = initialize_right_2std(binnedTrain) abg_init[1] = amax([.1, abg_init[1]]) abg_init[2] = amax([.0, abg_init[2]]) D.addEstimate(sample_id, 'init_N10', abg_init,.0) dx = .025; dt = FPMultiPhiSolver.calculate_dt(dx, abg_true, -1.0) phis = binnedTrain.bins.keys(); theta = binnedTrain.theta S = FPMultiPhiSolver(theta, phis, dx, dt, binnedTrain.getTf(), X_min = -1.0) start = time.clock() abg_est = cNMEstimator(S, binnedTrain, abg_init) finish = time.clock() D.addEstimate(sample_id, 'FP_N10', abg_est, finish-start) del S; ##### N_thresh = 1 binnedTrain = BinnedSpikeTrain.initFromFile(file_name, phi_norms) binnedTrain.pruneBins(None, N_thresh = 1, T_thresh=T_thresh) phis = binnedTrain.bins.keys(); S = FPMultiPhiSolver(theta, phis, dx, dt, binnedTrain.getTf(), X_min = -1.0) start = time.clock() abg_est = WeightedFPEstimator(S,binnedTrain, abg_init) finish = time.clock() D.addEstimate(sample_id, 'WFP_N1', abg_est, finish-start) del S; D.closeFile() print 'batch time = ', (time.clock() - batch_start) / 3600.0, ' hrs'