Bonjour a tous,
je voudrais utiliser la fonction fsolve dans le package optimize de scipy mais je n'arrive pas a me debarasser d'une erreur...
le probleme apparait quand je veut trouver la valeur du vecteur qui minimise une certaine fonction...
En bref voici mon code:
Tout semble bien marcher jusqu'a ce que j'appelle fsolve:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 from scipy import * n=10 slope=100 offset=0.5 def sigmoid(val): return 1/(1+exp(-slope*(val-offset))) W=ones([n,n]) V0=ones([n,1]) def test(V): return V+dot(W,sigmoid(V)) print '###' print V0.shape print dot(W,V0).shape print sigmoid(V0).shape print test(V0).shape print '###' Vstar=optimize.fsolve(test,V0)
Je ne comprends pas ce " shape mismatch"... J'ai d'ailleurs affiche la taille de mes vecteurs qui semblent consistantes. J'ai essaye de passer mes arguments comme des listes... en vain, ca ne marche toujours pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 user@machine1 $ python example.py ### (10, 1) (10, 1) (10, 1) (10, 1) ### Traceback (most recent call last): File "example.py", line 24, in <module> Vstar=optimize.fsolve(test,V0) File "/usr/lib64/python2.5/site-packages/scipy/optimize/minpack.py", line 112, in fsolve check_func(func,x0,args,n,(n,)) File "/usr/lib64/python2.5/site-packages/scipy/optimize/minpack.py", line 17, in check_func raise TypeError, "There is a mismatch between the input and output shape of %s." % thefunc.func_name TypeError: There is a mismatch between the input and output shape of test.
Quelqu'un saurait-il comment s'en sortir?
Merci d'avance.
A+
Mattthieu
Partager