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).

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 :Sélectionner tout -Visualiser dans une fenêtre à part
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 :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]])

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
 
matrix([[inf],
        [inf],
        [inf],
   ....2646522778108181],
        [inf]], dtype=object)


Quelqu’un comprend-t-il cette d’erreur?

Merci beaucoup.