Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1049 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Programme se bloque

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Programme se bloque

n°2219600
gengina
Posté le 13-02-2014 à 22:58:04  profilanswer
 

Bonjour,
J'ai un programme en python qui se bloque de temps en temps au niveau de la fonction suivante:
 

Code :
  1. def learnerTest( naTrain, naTest ):
  2. #create the learner with the train set with K=5
  3. cLearn = ftu.createLearner( naTrain, lKnn=5 )
  4. #get the Y values predicted by the learner
  5. Ypredicted = cLearn.query( naTest[:,:-1] )
  6. #get the actual Y values
  7. Y = naTest[:,-1]
  8. #calculate the correlation coefficient
  9. corrcoeffi = np.corrcoef(Y,Ypredicted)[0][1]
  10. return corrcoeffi


Ça se bloque au niveau de la ligne 9:

Code :
  1. corrcoeffi = np.corrcoef(Y,Ypredicted)[0][1]


 
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:

Code :
  1. corrcoeffi = np.corrcoef(Y,Ypredicted)[0][1]


 
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

mood
Publicité
Posté le 13-02-2014 à 22:58:04  profilanswer
 

n°2219753
gengina
Posté le 15-02-2014 à 10:57:17  profilanswer
 

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?

n°2219813
gengina
Posté le 16-02-2014 à 12:16:11  profilanswer
 

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: http://www.developpez.net/forums/attachments/p138240d1392548291/autres-langages/python-zope/numpy-corrcoef-numpy-dot-bloque-probleme-librairie-blas/show_config.jpg/
Ce qui est intéressant, c'est que l'adresse qui est citée partout:

Code :
  1. C:/Program Files (x86)/Intel/Composer XE/mkl


n'existe pas!
Est-ce que ça un lien avec mon problème?


Message édité par gengina le 16-02-2014 à 12:18:58
n°2219823
fred1599
Posté le 16-02-2014 à 15:45:46  profilanswer
 

Bonjour,
 
Si tu connais la ligne qui bug, pourquoi tu n'utilises pas un simple bloc try-except avec un petit print ?
 

Code :
  1. try:
  2.     corrcoeffi = np.corrcoef(Y,Ypredicted)[0][1]
  3. except:
  4.     print((Y, Ypredicted))


 
Ça permettra de savoir à quelles valeurs de Y et Ypredicted ça déconne...

n°2219829
gengina
Posté le 16-02-2014 à 16:20:19  profilanswer
 

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 :
  1. print X.shape
  2. print Y.shape
  3. output = numpy.dot(X,Y)


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.


Message édité par gengina le 16-02-2014 à 16:21:56

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Programme se bloque

 

Sujets relatifs
[VBA] travailler sur un tableau pendant qu'un programme tourne[VBS]Programme decompression tar.gz, quel outil
[VB.NET] Programme d'envoi de paquetBug programme asm 8086
aide pour un programme en python (réception de e mails)Aide pour un petit programme en C
[java] Ligne qui bloque tout mon programme[MSDOS] PROGRAMME INSPIRE DE LOST SUR LEQUEL JE BLOQUE
programme bloqué quand j'utilise beep() (faire bipper le hp interne)bloqué sur un petit programme en C
Plus de sujets relatifs à : Programme se bloque


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR