0
我正在並行優化問題PyGMO
。不幸的是,文檔不是很有幫助。據these guidelines,我riting我的問題,因爲PyGMO自定義類與__init__錯誤
import PyGMO as pygmo
class my_problem(pygmo.base):
def __init__(self,model,config,pars,**kwargs):
# Does some parameter definition according to input arguments model, config etc...
...
# Invoke base class as required by PyGMO
super(my_problem,self).__init__(self.__dim)
def _objfun_impl(self,x):
...
f = ... # Cost function to optimize
return (f,)
# Main
model = 'ei'
config = 'x1'
args = (...)
prob = my_problem(model,config,args)
algo = pygmo.algorithm.de(gen=20)
isl = pygmo.island(algo,prob,20)
print isl.population.champion.f
isl.evolve(10)
print isl.population.champion.f
這並不工作,併產生以下錯誤:
File "/home/maurizio/Dropbox/Stability_Analysis_network/mymain.py", line 643, in main_routine
isl = pygmo.island(algo,prob,20)
File "/usr/lib/python2.7/site-packages/PyGMO/core/__init__.py", line 239, in island
return _generic_island_ctor(None, *args, **kwargs)
File "/usr/lib/python2.7/site-packages/PyGMO/core/__init__.py", line 132, in _generic_island_ctor
return py_island(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/PyGMO/core/__init__.py", line 119, in _generic_island_ctor
super(type(self), self).__init__(*ctor_args)
File "/usr/lib/python2.7/site-packages/PyGMO/core/__init__.py", line 48, in __init__
_core._base_island.__init__(self, *args)
File "/usr/lib/python2.7/site-packages/PyGMO/problem/_base.py", line 36, in __get_deepcopy__
return deepcopy(self)
File "/usr/lib64/python2.7/copy.py", line 190, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "/usr/lib64/python2.7/copy.py", line 329, in _reconstruct
y = callable(*args)
TypeError: __init__() takes exactly 4 arguments (1 given)
任何想法,以什麼__init__
指的是和缺少什麼參數?我懷疑這是我的班級定義的問題。
我沒有看到你在代碼中打電話給你的班級... –
對不起,我正在編輯...這篇文章是一個泛化。 – maurizio
@alec_djinn我懷疑這是'super'調用和基類'__init__'的問題... – maurizio