Open OuyangWenyu opened 4 months ago
https://github.com/thouska/spotpy/blame/7e5e3f4f268e45e150ba8407dd6747c2f85c4cc0/src/spotpy/algorithms/_algorithm.py#L87
When I use a new loss function which return a numpy array, I found self.compare was ignored in this part:
def __call__(self, objectivefunction, params, block_print=False): self.rep += 1 if type(objectivefunction) == type([]): # TODO: change to iterable self.compare(objectivefunction[0], params) elif type(objectivefunction) == type(np.array([])): pass else: self.compare(objectivefunction, params)
Then in the console the following words will be printed:
"1 of 100, minimal objective function=1e+308, time remaining: 02:01:04"
So I am wondering why numpy array is not allowed?
I am looking forward your reply. Thanks!
https://github.com/thouska/spotpy/blame/7e5e3f4f268e45e150ba8407dd6747c2f85c4cc0/src/spotpy/algorithms/_algorithm.py#L87
When I use a new loss function which return a numpy array, I found self.compare was ignored in this part:
def __call__(self, objectivefunction, params, block_print=False): self.rep += 1 if type(objectivefunction) == type([]): # TODO: change to iterable self.compare(objectivefunction[0], params) elif type(objectivefunction) == type(np.array([])): pass else: self.compare(objectivefunction, params)
Then in the console the following words will be printed:
"1 of 100, minimal objective function=1e+308, time remaining: 02:01:04"
So I am wondering why numpy array is not allowed?
I am looking forward your reply. Thanks!