差异演化因工人而产生错误= -1

问题描述

我使用Scipy的差分进化来使用OMPython运行一些模拟。 我在Windows和Jupiter Notebook上工作。

当我仅使用1个处理器时,我的代码有效。但是,当我使用选项workers=-1时,代码冻结(尽管目录中生成了一些文件),但出现以下错误

from multiprocessing import Process,freeze_support
from scipy.optimize import differential_evolution

def Optimization_Modelica_General('arguments'):
    'Some code'
    Solution_GEN=differential_evolution(Optimization_Modelica,bounds=bounds_2,args= 
    ('args'),updating='deferred',workers=-1)


if __name__ == "__main__":
    from pathos.helpers import freeze_support
    freeze_support()
    
    Result_Gen_Final=Optimization_Modelica_General('arguments') 

错误消息:

---------------------------------------------------------------------------
RemoteTraceback                           Traceback (most recent call last)
RemoteTraceback: 
"""
Traceback (most recent call last):
  File "C:\...\Anaconda3\lib\multiprocessing\pool.py",line 125,in worker
    result = (True,func(*args,**kwds))
  File "C:\...\Anaconda3\lib\multiprocessing\pool.py",line 48,in mapstar
    return list(map(*args))
  File "C:\...\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py",line 1261,in __call__
    return self.f(x,*self.args)
  File "C:\...\Fonc_complem_1.ipynb",line 310,in Optimization_Modelica
    "        \n",File "C:\...\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py",line 308,in differential_evolution
    ret = solver.solve()
  File "C:\...\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py",line 750,in solve
    self._calculate_population_energies(
  File "C:\...\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py",line 873,in _calculate_population_energies
    calc_energies = list(self._mapwrapper(self.func,*self.args)
  File "C:\...\Fonc_complem_2.ipynb",line 733,in Fonct_Obj_General
    "    #    T_me_temp[i]   = T_me_temp_brut[3*i-2]\n",File "C:\...\Fonc_complem_2.ipynb",line 425,in Simulator
    "            #au long de l'intervalle) \n",File "C:\...\Anaconda3\lib\site-packages\OMPython\__init__.py",line 1086,in simulate
    raise Exception("Error: application file not generated yet")
Exception: Error: application file not generated yet
"""

The above exception was the direct cause of the following exception:

Exception                                 Traceback (most recent call last)
<ipython-input-5-d40ce0161088> in <module>
      4     freeze_support()
      5 
----> 6     Result_Gen_Final=Optimization_Modelica_General(po_stat_tt_intv,Nom_Modelica_po_stat_tt_intv,Type_simul_dyna_mult_int,Plage_variation_po_stat_tt_intv,step_gen,deb_int_gen,fin_int_gen,Vecteur_int_calib_st_dyn,modelpath,Nom_fichier_mo,Nom_fich,data_cond_lim,Data_mesu_gen,Type_Ind_FO,param_optim,initial_condit_temp,Directory_cd,data_cond_lim_fich_temporel,fich_res_Modelica_mat,Nom_Modelica_param_optim,Nom_Modelica_initial_condit_temp,Nom_Modelica_outlet_results_sim,Nom_Modelica_Function_Objectif,Plage_variation_param,M_population,Fichier_Excel_sortie_nom,M_STAT_population)

<ipython-input-4-cdce4edef5b3> in Optimization_Modelica_General(po_stat_tt_intv,M_STAT_population)
--> 208         Solution_GEN=differential_evolution(Optimization_Modelica,args=(Nom_Modelica_po_stat_tt_intv,Fichier_Excel_sortie_nom),callback=printCurrentIteration,maxiter=3,init=(random_init_val_bound_final_STAT),workers=-1)

~\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py in differential_evolution(func,bounds,args,strategy,maxiter,popsize,tol,mutation,recombination,seed,callback,disp,polish,init,atol,updating,workers,constraints)
    306                                      workers=workers,307                                      constraints=constraints) as solver:
--> 308         ret = solver.solve()
    309 
    310     return ret

~\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py in solve(self)
    748             # only work out population energies for feasible solutions
    749             self.population_energies[self.feasible] = (
--> 750                 self._calculate_population_energies(
    751                     self.population[self.feasible]))
    752 

~\Anaconda3\lib\site-packages\scipy\optimize\_differentialevolution.py in _calculate_population_energies(self,population)
    871         parameters_pop = self._scale_parameters(population)
    872         try:
--> 873             calc_energies = list(self._mapwrapper(self.func,874                                                   parameters_pop[0:nfevs]))
    875             energies[0:nfevs] = calc_energies

~\Anaconda3\lib\site-packages\scipy\_lib\_util.py in __call__(self,func,iterable)
    412         # only accept one iterable because that's all Pool.map accepts
    413         try:
--> 414             return self._mapfunc(func,iterable)
    415         except TypeError:
    416             # wrong number of arguments

~\Anaconda3\lib\multiprocessing\pool.py in map(self,iterable,chunksize)
    362         in a list that is returned.
    363         '''
--> 364         return self._map_async(func,mapstar,chunksize).get()
    365 
    366     def starmap(self,chunksize=None):

~\Anaconda3\lib\multiprocessing\pool.py in get(self,timeout)
    769             return self._value
    770         else:
--> 771             raise self._value
    772 
    773     def _set(self,i,obj):

Exception: Error: application file not generated yet

您是否会知道问题出在哪里? 我尝试使例程中使用的函数腌制,但是仍然出现相同的错误。 预先感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)