Souci avec la fonction 'exp'
Bonjour à tous.
J’ai un souci avec la fonction ‘exp’ de numpy dont python me dit qu’elle ne s’appliquerait pas aux floats (si je comprends bien le message d'erreur).
Voici tout d’abord mon message d’erreur (les dernières lignes).
Citation:
valph = 1 - 1. / (1 + exp(z))
AttributeError: 'float' object has no attribute 'exp'
Voici la fonction incriminée (la fonction logisitque pour ceux qui connaissent).
Code:
1 2 3 4
|
def ph(z):
valph = 1 - 1. / (1 + exp(z))
return valph |
Voici un petit test que j’ai fait pour vérifier que la fonction «ph» traite bien les valeur infinies et qu’elle gère aussi bien les nombre que les matrices. Le test est bien passé avec succès.
Code:
1 2 3 4 5 6 7
|
def test_ph(self):
self.assertEqual(0,ph(float('-inf')))
self.assertEqual(1,ph(float('inf')))
self.assertEqual(0.5,ph(0))
res = ph(N.asarray([[float('inf')],[float('-inf')],[0]]))
self.assertEqual(res.tolist(), [[1],[0],[0.5]]) |
Enfin voici ce que j’ai comme valeur locale de z dans le «stack viewer» de l’onglet «debug»
Code:
1 2 3 4 5 6
|
matrix([[inf],
[inf],
[inf],
....2646522778108181],
[inf]], dtype=object) |
Quelqu’un comprend-t-il cette d’erreur?
Merci beaucoup.