from util import *
import fileinput
from common import getmodel
def weight_reset():
model = getmodel()
for rsyn in model.mgrss.values():
if rsyn.gd2fi:
rsyn.gd2fi.weight[1] = 0
if rsyn.md2ampanmda:
rsyn.md2ampanmda.weight[1] = 0
def weight_load(filename):
model = getmodel()
for l in fileinput.input(filename):
tk = l.split()
gid = int(tk[0])
s = int(tk[1])
# inhib check
if gid % 2 != 0:
gid += 1
inhib = True
else:
inhib = False
# has key
if model.mgrss.has_key(gid):
rsyn = model.mgrss[gid]
if inhib and rsyn.gd2fi:
rsyn.gd2fi.weight[1] = s
elif not inhib and rsyn.md2ampanmda:
rsyn.md2ampanmda.weight[1] = s
fileinput.close()
#mg_dict_filename = 'mg_dict.txt'
def weight_file(prefix):
wtime = h.startsw()
mingroupsize = max(nhost/64, 1)
ng = nhost/mingroupsize
for r in group_serialize(ng):
name = prefix + '.' + str(r[0])
if r[1]:
f = open(name, 'a')
#fdic = open(mg_dict_filename + '.' + str(r[0]), 'a')
else:
f = open(name, 'w')
#fdic = open(mg_dict_filename + '.' + str(r[0]), 'w')
vs = getmodel().mgrss.values
for rs in vs():
s = rs.wstr()
f.write(s)
#sdic = rs.mg_dic_str()
#fdic.write(sdic)
f.close()
#fdic.close()
if rank == 0 : print "weight_files %s.[0:%d] write time %g s" % (prefix, ng, h.startsw()-wtime)