Programme se bloque - Python - Programmation
Marsh Posté le 15-02-2014 à 10:57:17
Je tiens à préciser:
- en testant plusieurs fois le même code, avec les mêmes entrées (rien ne change), un coup ça bloque, un coup ça ne bloque pas...
- les données que je traite (par exemple Y et Ypredicted) sont des matrices de grandes tailles.
Au secours!! Personne n'a une idée de comment je pourrais comprendre ce qui bloque?
Marsh Posté le 16-02-2014 à 12:16:11
En recopiant la fonction corrcoef dans mon programme - donc maintenant je ne l'importe plus de la bibliothèque numpy-, j'arrive à détailler un peu plus l'origine de mon problème:
La fonction corrcoef fait appel à la fonction numpy.cov qui fait elle même appel à la fonction numpy.dot - multiplication matricielle. Et c'est à l'appel de cette dernière fonction que mon programme bloque.
Je n'ai pas trouvé dans numpy où elle était codé. Mais j'ai cru comprendre qu'elle utilisait la libraire BLAS ou DOTBLAS.
D'après ce que j'ai compris la fonction numpy.show_config() permet de savoir quelle librairie BLAS est utilisée. J´ai joint le résultat ici:
Ce qui est intéressant, c'est que l'adresse qui est citée partout:
Code :
|
n'existe pas!
Est-ce que ça un lien avec mon problème?
Marsh Posté le 16-02-2014 à 15:45:46
Bonjour,
Si tu connais la ligne qui bug, pourquoi tu n'utilises pas un simple bloc try-except avec un petit print ?
Code :
|
Ça permettra de savoir à quelles valeurs de Y et Ypredicted ça déconne...
Marsh Posté le 16-02-2014 à 16:20:19
A l'intérieur de la fonction numpy.corrcoef, c'est la fonction numpy.dot qui déconne. Comme les variables d'entrées X et Y sont très grandes (dimensions: 5203x2 et 2x5203), je n'imprime que leur dimension:
Code :
|
Je ne pense pas que ces variables d'entrées soient en cause, parce que en relançant plusieurs fois mon programme, en ne changeant rien, avec les mêmes valeurs d'entrées, un coup ça marche, un coup ça marche pas.
Marsh Posté le 13-02-2014 à 22:58:04
Bonjour,
J'ai un programme en python qui se bloque de temps en temps au niveau de la fonction suivante:
Ça se bloque au niveau de la ligne 9:
Des fois ça ne bloque pas, des fois ça bloque. Et je n'ai pas encore compris quels facteurs influençaient sur le fait que ça bloque ou pas.
Ce qui est bizarre, c'est que quand ça bloque, je n'ai pas de message d'erreur. Le processus "python" ne s’interrompt pas, il est toujours présent dans la liste des processus du gestionnaire de tâches, mais aucune ressource CPU n'y est accordé. Mon utilisation de CPU tombe a presque 0%. J'ai laissé l'ordi tourner une journée comme ca et rien ne se passe. Ca resque bloqué au niveau de cette ligne:
Une idée d'où peut venir le problème ou de comment je pourrais trouver le problème?
Config:
Windows 8
WinPython 64 bits 2.7.6.2