Вы можете извлечь его из объекта оптимизации и добавлять значение при каждом внешнем вызове Scipy.Чтобы узнать, как получить количество оценок функций, см. эту скучную документацию .Вы можете обратиться к примерам на той же странице, чтобы просмотреть пример.
Если это не поможет, вы можете свернуть функцию стоимости и попробовать что-то вроде этого:
class F(object):
def __init__(self, fn):
self.n_calls = 0
self.fn = fn
def __call__(self, x):
self.n_calls += 1
return self.fn(x)
return F(fn)