def compute_pre_post_traces(conns, verbose=True): bcpnn_trace_len = params['t_stimulus'] / params['dt_rate'] trace_len = params['t_stimulus'] / params['dt_rate'] for i in xrange(len(conns)): #for i in xrange(100): print "Pc %d conn: \t%d - %d; \t%d / %d\t%.4f percent complete" % (pc_id, conns[i][0], conns[i][1], i + 1, len(conns), i * 100./len(conns)) pre_id = conns[i][0] post_id = conns[i][1] pre_trace = np.loadtxt(params['input_rate_fn_base'] + str(pre_id) + '.dat') post_trace = np.loadtxt(params['input_rate_fn_base'] + str(post_id) + '.dat') # pre_trace = np.zeros(bcpnn_trace_len) # d = np.loadtxt(params['input_rate_fn_base'] + str(pre_id) + '.dat') # pre_trace[:trace_len] = d # post_trace = np.zeros(bcpnn_trace_len) # d = np.loadtxt(params['input_rate_fn_base'] + str(post_id) + '.dat') # post_trace[:trace_len] = d # post_trace[trace_len:] = 0. # post_trace.resize(bcpnn_trace_len) # compute wij, bias, pi, pj, pij, ei, ej, eij, zi, zj = Bcpnn.get_spiking_weight_and_bias(pre_trace, post_trace, get_traces=True, \ tau_dict=tau_dict, f_max=1000.) weight_fn = params['weights_fn_base'] + '%d_%d.dat' % (pre_id, post_id) if verbose: print 'Saving to ', weight_fn np.savetxt(weight_fn, wij) output_fn = params['bias_fn_base'] + "%d.dat" % (post_id) if verbose: print 'Saving to ', output_fn np.savetxt(output_fn, bias) output_fn = params['ztrace_fn_base'] + "%d.dat" % pre_id if verbose: print 'Saving to ', output_fn np.savetxt(output_fn, zi) output_fn = params['ztrace_fn_base'] + "%d.dat" % post_id if verbose: print 'Saving to ', output_fn np.savetxt(output_fn, zj) output_fn = params['etrace_fn_base'] + "%d.dat" % pre_id if verbose: print 'Saving to ', output_fn np.savetxt(output_fn, ei) output_fn = params['etrace_fn_base'] + "%d.dat" % post_id if verbose: print 'Saving to ', output_fn np.savetxt(output_fn, ej) output_fn = params['etrace_fn_base'] + "%d_%d.dat" % (pre_id, post_id) if verbose: print 'Saving to ', output_fn np.savetxt(output_fn, eij) output_fn = params['ptrace_fn_base'] + "%d.dat" % pre_id if verbose: print 'Saving to ', output_fn np.savetxt(output_fn, pi) output_fn = params['ptrace_fn_base'] + "%d.dat" % post_id if verbose: print 'Saving to ', output_fn np.savetxt(output_fn, pj) output_fn = params['ptrace_fn_base'] + "%d_%d.dat" % (pre_id, post_id) if verbose: print 'Saving to ', output_fn np.savetxt(output_fn, pij) output_fn = params['weights_fn_base'] + "%d_%d.dat" % (pre_id, post_id) if verbose: print 'Saving to ', output_fn np.savetxt(output_fn, wij)
d = np.loadtxt(params["input_rate_fn_base"] + str(pre_id) + ".dat") print "debug", trace_len, d.size, bcpnn_trace_len pre_trace[:trace_len] = d post_trace = np.zeros(bcpnn_trace_len) d = np.loadtxt(params["input_rate_fn_base"] + str(post_id) + ".dat") post_trace[:trace_len] = d post_trace[trace_len:] = 0.0 post_trace.resize(bcpnn_trace_len) for i in xrange(5): tau_z = 10 tau_e = 100 tau_p = 500 + 500 * i # compute wij, bias, pi, pj, pij, ei, ej, eij, zi, zj = Bcpnn.get_spiking_weight_and_bias( pre_trace, post_trace, get_traces=True, tau_z=tau_z, tau_e=tau_e, tau_p=tau_p, f_max=1000.0 ) weight_fn = params["weights_fn_base"] + "%d_%d.dat" % (pre_id, post_id) print "Saving to ", weight_fn np.savetxt(weight_fn, wij) output_fn = params["bias_fn_base"] + "%d_%d.dat" % (pre_id, post_id) np.savetxt(output_fn, bias) output_fn = params["ztrace_fn_base"] + "%d.dat" % pre_id np.savetxt(output_fn, zi) output_fn = params["ztrace_fn_base"] + "%d.dat" % post_id np.savetxt(output_fn, zj) output_fn = params["etrace_fn_base"] + "%d.dat" % pre_id np.savetxt(output_fn, ei) output_fn = params["etrace_fn_base"] + "%d.dat" % post_id