L'application de limites de variable spécifique au cours de curve_fit (scipy) conduit à une erreur

Je suis en train d'appliquer des limites sur certains paramètres lors de l'ajustement de la courbe mais je reçois le message d'erreur suivant lorsque j'ai essayé de le faire:

ValueError: trop de valeurs pour décompresser

N'est pas chaque 2-tuple dans la commande de limite correspond à x0, k, oubli, suppose que dans le sigmoidscaled fonction dans mon cas, respectivement (Ie. correspondant à p0 trop)?

J'ai ensuite essayé de jouer autour dans l'espoir d'essayer de comprendre comment il fonctionne en réduisant la commande de limite à la suivante, pour débarrasser le "trop grand nombre de valeurs':

limites=((-np.inf,np.inf), (0,1))

Puis-je obtenir le message d'erreur:

ValueError: l'incohérence entre les formes limites et x0.

Ce que j'obtiens l'erreur?

import pylab
from scipy.optimize import curve_fit
from matplotlib.pyplot import *
n = 20 #20 trials
ydata = [0/n, 9.0/n, 9.0/n, 14.0/n, 17.0/n] #Divided by n to fit to a plot of y =1
xdata = np.array([ 1.0, 2.0, 3.0, 4.0, 5.0])
#The scaled sigmoid function
def sigmoidscaled(x, x0, k, lapse, guess):
F = (1 + np.exp(-k*(x-x0))) 
z = guess + (1-guess-lapse)/F
return z
p0=[1,1,0,0] 
popt, pcov = curve_fit(sigmoidscaled, xdata, ydata, p0, bounds=((-np.inf,np.inf), (-np.inf,np.inf), (0,1), (0,1))
#Start and End of x-axis, in spaces of n. The higher the n, the smoother the curve.
x = np.linspace(1,5,20)
#The sigmoid values along the y-axis, generated in relation to the x values and the 50% point.
y = sigmoidscaled(x, *popt)
pylab.plot(xdata, ydata, 'o', label='Psychometric Raw', color = 'blue')
pylab.plot(x,y, label='Psychometric Fit', color = 'blue')
#y axis range.
pylab.ylim(0, 1)
#Replace x-axis numbers as labels and y-axis numbers as percentage
xticks([1., 2., 3., 4., 5.], ['C1','CN2','N3','CN4','S5'])
yticks([0.0, 0.2, 0.4, 0.6, 0.8, 1.0], ['0%','20%','40%','60%','80%','100%'])
pylab.legend(loc='best')
xlabel('Conditions')
ylabel('% perceived more sin like')
pylab.show()