无法在scipy.optimize.fmin_tnc中获取要匹配的边界的维度

时间:2016-09-22 00:19:15

标签: python numpy scipy

注意:这不是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.我做错了什么?

0 个答案:

没有答案