注意:这不是Python SciPy IndexError: the length of bounds is not compatible with that of x0的副本。我相信我已经按照那里和旁边的答案,它在该库中具有不同的功能。
我正在打电话
fmin_tnc(self._negative_likelihood,
[(axis_mean + current_prob) / 2],
fprime=self._likelihood_gradient,
args=(axis_mean, axis_std, current_prob, self.total),
bounds=[tuple(sorted([axis_mean, current_prob]))])
这两个函数都是静态函数,带有签名:
(x, axis_mean, axis_std, current_prob, trials)
根据http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fmin_tnc.html#scipy.optimize.fmin_tnc的文档,第二个未命名的参数是:
x0 : array_like
我一次只在一组值上运行fmin_tnc,所以我将x0列为len 1的列表。
边界文档说:
bounds : list, optional
(min, max) pairs for each element in x0, defining the bounds on that parameter.
所以我传递了一个排序元组的列表,以匹配xo的一个元素。我已经尝试了其他几种排列,但我总是得到:
ValueError: length of x0 != length of bounds
len(bounds)和len(x0)都返回1.我做错了什么?