예제 #1
0
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)
예제 #2
0
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