コード例 #1
0
ファイル: classes_emu.py プロジェクト: kakila/mechemu
 def improve(self,design,improvement_steps):
     # from multiprocessing import Pool
     j=0
     # threads=8
     while j<improvement_steps:
         # need to add a condition to be already initiated
         totals=np.zeros((design.n_test,3))
         self.condition()
         # multicore processing, does not work, try PATHOS instead of MULTIP
         # def emulated(index):
         #     self.emulate(design.test_pars[index])
         #     return(cf.rmse(self.result,design.test_data[index]))
         # magazine=np.zeros(threads)
         # mag_idx=0
         # i=0
         # while i<design.n_test:
         #     if mag_idx<threads:
         #         magazine[mag_idx]=i
         #         mag_idx+=1
         #     else:
         #         p=Pool(threads)
         #         output_parallel_session=p.map(emulated,magazine.tolist())
         #         totals[magazine.tolist()]=output_parallel_session
         #         mag_idx=0
         #         p.close()
         #     i+=1
         i=0
         while i<design.n_test:
             self.emulate(design.test_pars[i])
             totals[i,0]=cf.rmse(self.result,design.test_data[i])
             totals[i,1]=cf.sharpness(self.result,design.test_data[i])
             i+=1
         max_0=max(totals[:,0])
         max_1=max(totals[:,1])
         print(max_0)
         print(max_1)
         totals[:,0]=totals[:,0]/max_0
         totals[:,1]=totals[:,1]/max_1
         totals[:,2]=totals[:,1]+totals[:,0]
         worst=np.argmax(totals[:,2])
         current0=np.mean(totals[:,0])
         current1=np.mean(totals[:,1])
         current2=np.mean(totals[:,2])
         print(max(totals[:,2]))
         print(current0)
         print(current1)
         print(current2)
         print("--------")
         j+=1
         design.extend(design.test_data[worst],design.test_pars[worst])
         design.remove_test_set(worst)
         self.dp=design.pars
         self.dd=design.data
コード例 #2
0
ファイル: classes_emu.py プロジェクト: kakila/mechemu
 def objective_rmse(self,new_cor_len,design,n_test_sample):
     totals=np.zeros(n_test_sample)
     self.cor_len=new_cor_len
     self.condition()
     i=0
     while i<n_test_sample:
         self.emulate(design.test_pars[i])
         totals[i]=cf.rmse(self.result,design.test_data[i])
         i+=1
     current=np.mean(totals)
     # print(current)
     # print(self.cor_len)
     return(current)