def funcNbofAttr(P, G): endDir = 'G_%.3f_P_%.5f.npy' %(G,P) try: pattsx = data2array(dir_prix + '/patterns_' + endDir, mmap_mode="r+") pattsA = data2array(dir_priA + '/patterns_' + endDir, mmap_mode="r+") return len(pattsx) except: try: pattsx = data2array(dir_prix + '/allPatt_' + endDir) pattsA = data2array(dir_priA + '/allPatt_' + endDir) except: N = data2array(dco).shape[0] pattsx = zeros((mmax,N)) pattsA = zeros((mmax,N)) conn = {'connAd': dco, 'normType': '1'} noise = {'colors': None} model = {'model': 'HopfieldBasedStatic', 'threshold': 'local', 'tauT': 0, 'P': P, 'G': G} out = [] other = {'init': 'rand', 'dens': rand(),} #p2,!!!!!!!!!!!!!! RAND for d in range(mmax): eva = main.evaCure(evaCon=conn, evaNoi=noise, evaMod=model, out=out, **other) eva.toEquilibrium() pattsx[d] = eva.evaMod.x.copy() pattsA[d] = eva.evaMod.A.copy() array2data(pattsx, dir_prix + '/allPatt_' + endDir) array2data(pattsA, dir_priA + '/allPatt_' + endDir) patts = pattsx # !!!!!!!!! S = sortBy(patts.mean(1) - patts.mean(), inverse=1)[0] C1, freq = preClustering(patts[S], sim_coef=sim_coef, sim_func=similarity_Euclidean) C2, freq = preClustering(patts[S][C1], freq=freq, sim_coef=sim_coef, sim_func=fPearsonCorrelation) SC, freq = sortBy(freq, inverse=1) array2data(pattsx[S][C1][C2][SC], dir_prix + '/patterns_' + endDir) array2data(pattsA[S][C1][C2][SC], dir_priA + '/patterns_' + endDir) array2data(freq, dir_priT + '/tendances_' + endDir) os.system('rm ' + dir_prix + '/allPatt_' + endDir) os.system('rm ' + dir_priA + '/allPatt_' + endDir) return len(pattsx[S][C1][C2][SC])
T0 = 20000 # 0.1 ms TF = 80000 # 0.1 ms sx = 0.2 sT = 0.2 x, A = [], [] ############################################################################################' # **Loop** tic() for iii in range(100): # Init other.update({'dens': rand()}) eva = main.evaCure(evaCon=conn, evaNoi=noise, evaMod=model, out=out, **other) #Run for i in range(T0): eva.update() eva.evaNoi.updateNoise(stdD_x=sx, stdD_T=sT) for i in range(TF): eva.update() #Save x.append(array(eva.out['x'])) A.append(array(eva.out['A']).mean(1)) del eva