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).
Voici la fonction incriminée (la fonction logisitque pour ceux qui connaissent).valph = 1 - 1. / (1 + exp(z))
AttributeError: 'float' object has no attribute 'exp'
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 def ph(z): valph = 1 - 1. / (1 + exp(z)) return valph
Enfin voici ce que j’ai comme valeur locale de z dans le «stack viewer» de l’onglet «debug»
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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]])
Quelqu’un comprend-t-il cette d’erreur?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 matrix([[inf], [inf], [inf], ....2646522778108181], [inf]], dtype=object)
Merci beaucoup.
Partager