Scikit-learn: Je ne comprends pas comment construire avec anaconda / MKL

Créé le 29 juil. 2015  ·  36Commentaires  ·  Source: scikit-learn/scikit-learn

Lorsque j'utilise anaconda avec MKL et que j'essaie de créer sklearn, j'obtiens

Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.

Quelqu'un peut-il expliquer ce qui se passe / comment construire?

Commentaire le plus utile

conda install numpy
Correction de l'erreur pour moi

Tous les 36 commentaires

comment l'as tu installé ?

c'est assez automatique car pour moi j'ai juste besoin d'ajouter un fichier de licence et de lancer
mise à niveau conda (ou quelque chose comme ça)

Je l'ai fait aussi, et cela me donne numpy avec mkl. Mais si j'essaie ensuite de compiler sklearn, j'obtiens des erreurs de liaison lors de l'importation.

hum je sais pas. Peut-être un conflit avec votre python et votre anaconda locaux
pendant l'installation :(

hm, peut-être que je dois définir LD_LIBRARY_PATH ou quelque chose?

J'ai le mien réglé sur quelque chose comme

LD_LIBRARY_PATH=${LD_LIBRARY_PATH} :/u/kkastne/miniconda/lib/

bien que la commande puisse être importante s'il trouve d'autres bibliothèques d'autres
python s'installe en premier.

Le mercredi 29 juillet 2015 à 17h01, Andreas Mueller [email protected]
a écrit:

hm, peut-être que je dois définir LD_LIBRARY_PATH ou quelque chose?

-
Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/5046#issuecomment-126094651
.

c'était une combinaison de mélange du système numpy et du LD_LIBRARY_PATH... toujours très amusant... désolé pour le bruit.

J'obtiens le même problème. Question de @amueller Noob : où recherchez-vous le mélange ? (ld_lib_path)

J'ai le même problème en utilisant pyinstaller dans anaconda pour compiler mon programme. Lorsque je l'exécute sur certaines machines, cela génère l'erreur mentionnée ci-dessus. Dans mon cas, si je fais écho à $LD_LIBRARY_PATH, je vois quelques chemins que notre gestionnaire de système a définis pour que certains programmes fonctionnent. J'ai essayé de le définir sur le chemin de la bibliothèque anaconda et de le laisser vide, mais cela continue de produire l'erreur.

Je pense qu'il y a une nouvelle erreur, je viens de l'avoir sur une instance de travis.

Quand survient votre problème ? Parce que dans mon cas, j'ai pu installer avec conda install numpy et je n'ai pas eu de messages d'erreur. Par la suite, j'ai réussi à générer un binaire à un fichier avec pyinstaller. C'est lors de l'utilisation réelle de l'exécutable qu'à un moment donné, un appel à du code Biopython génère l'erreur. Donc, je suppose que vous rencontrez également le problème lors du test du code, au moment de l'exécution, n'est-ce pas ?

Si je vérifie mon installation conda, libmkl_avx2.so et libmkl_def.so sont là, dans le dossier $home/anaconda2/lib. J'ai également essayé d'ajouter les fichiers en tant que binaires dans le fichier de spécification de pyintaller, mais rien de tout cela ne fonctionne ...

Je pense qu'il y a une nouvelle erreur, je viens de l'avoir sur une instance de travis.

@amueller j'ai vu cette erreur:

Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so.

sur Travis aussi. D'après ce que j'ai pu comprendre, cela était dû au fait que numpy 1.10.2 manquait de certains éléments mkl. numpy 1.10.4 était bien. Cela a été noté dans https://github.com/scikit-learn/scikit-learn/pull/6508#issuecomment -194908920.

Pour mémoire, je n'ai jamais eu à définir LD_LIBRARY_PATH pour construire scikit-learn avec anaconda (avec ou sans MKL).

@clacri est-ce que ton problème est lié à scikit-learn ? Sinon, il semble que vous devriez poser votre question au pyinstaller ou aux gens de Biopython ...

D'après ce que j'ai pu comprendre, cela était dû au fait que numpy 1.10.2 manquait de certains éléments mkl.

Voici un extrait qui reproduit le problème sur ma machine :

conda create -n mkl --yes python=3.5 pip nose numpy=1.10.2 scipy=0.16.1 cython=0.23.4 mkl
. activate mkl
cd ~/dev/scikit-learn
make in
python -c 'import sklearn.linear_model.tests.test_randomized_l1'
Intel MKL FATAL ERROR: Cannot load libmkl_mc3.so or libmkl_def.so.

Non, tu as raison. Je devrais poster sur leur liste de problèmes. C'est juste que j'ai vu que l'erreur signalée ici était la même et aussi lors de l'utilisation d'anaconda, alors j'ai pensé que cela pourrait être lié. J'ai déjà posé la question sur le projet pyinstaller, car il semble avoir un problème similaire avec d'autres bibliothèques mkl. En tout cas, j'ai vérifié ma version numpy dans anaconda, et c'est 1.10.4. Merci quand même :)

Juste pour mémoire, en parcourant votre commentaire référencé, j'ai trouvé le post sur le blog Anaconda où ils décrivent comment désactiver les versions mkl des bibliothèques (https://www.continuum.io/blog/developer-blog/anaconda-25 -release-now-mkl-optimizations) et maintenant au moins je peux compiler une version fonctionnelle. Merci!

En raison du même problème pour moi, je désactive mkl par conda install nomkl. Je suis maintenant heureux. Si ce problème est résolu, veuillez partager avec nous afin que je puisse rallumer. Merci d'avoir développé ce problème.

Même problème

J'ai suivi le lien ci-dessus et j'ai résolu mon problème. Merci.

Il a été résolu maintenant au moins pour moi. Vous pouvez essayer avec le nouveau numpy 11.
Le mercredi 27 avril 2016 à 22h42, gjzhu [email protected] a écrit :

Même problème. Je ne sais pas comment gérer ça.

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/5046#issuecomment -215292024

Sungjin (James) Kim, PhD

Post-doctorat, CCB à Harvard

[email protected]

[Web] http://aspuru.chem.harvard.edu/james-sungjin-kim/

[Linkedin] https://www.linkedin.com/in/jamessungjinkim

[Facebook] https://www.facebook.com/jamessungjin.kim

[courriel alternatif] jamessungjin. [email protected]

conda install numpy
Correction de l'erreur pour moi

Bon. Cela fonctionne aussi pour moi comme je l'ai noté précédemment.

Le mardi 3 mai 2016 à 11h26, alinabee [email protected] a écrit :

conda installer numpy
Correction de l'erreur pour moi

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/5046#issuecomment -216563766

Sungjin (James) Kim, PhD

Post-doctorat, CCB à Harvard

[email protected]

[Web] http://aspuru.chem.harvard.edu/james-sungjin-kim/

[Linkedin] https://www.linkedin.com/in/jamessungjinkim

[Facebook] https://www.facebook.com/jamessungjin.kim

[courriel alternatif] jamessungjin. [email protected]

Salut,

Je voulais juste noter qu'Anaconda 4.0.0, livré avec mkl activé par défaut, a ce problème.
Le problème est en effet avec Anaconda, car il peut être reproduit avec le test python sklearn suggéré ci-dessus par @pcgreat.

Le problème réel est qu'Anaconda est lié à mkl, mais pas à libmkl_core.so, il a donc un symbole manquant et peut être vu en exécutant :

$ LD_DEBUG=symbols python -c 'import sklearn.linear_model.tests.test_randomized_l1' 2>&1 | grep -i error
      2200:     /opt/anaconda/lib/python2.7/site-packages/scipy/special/../../../../libmkl_avx.so: error: symbol lookup error: undefined symbol: mkl_dft_fft_fix_twiddle_table_32f (fatal)

Je ne voulais pas désinstaller mkl, car j'aimerais avoir une amélioration des performances, j'ai donc trouvé une solution de contournement qui a fonctionné pour moi - précharger libmkl_core.so avant l'exécution.

$ python -c 'import sklearn.linear_model.tests.test_randomized_l1'
Intel MKL FATAL ERROR: Cannot load libmkl_avx.so or libmkl_def.so.
$
$ LD_PRELOAD=/opt/anaconda/lib/libmkl_core.so python -c 'import sklearn.linear_model.tests.test_randomized_l1'
$

Salutations,
Yanir.

C'est une solution si merveilleuse pensée.

Le mercredi 11 mai 2016 à 7h00, yanirj [email protected] a écrit :

Salut,

Je voulais juste noter qu'Anaconda 4.0.0, livré avec mkl activé par
par défaut, a ce problème.
Le problème est en effet avec Anaconda, car il peut être reproduit avec le
test python sklearn suggéré ci-dessus par @pcgreat
https://github.com/pcgreat.

Le problème réel est qu'Anaconda est lié à mkl, mais pas à
libmkl_core.so, il a donc un symbole manquant et peut être vu en exécutant :

$ LD_DEBUG=symboles python -c 'import sklearn.linear_model.tests.test_randomized_l1' 2>&1 | grep -i erreur
2200 : /opt/anaconda/lib/python2.7/site-packages/scipy/special/../../../../libmkl_avx.so : erreur : erreur de recherche de symbole : symbole non défini : mkl_dft_fft_fix_twiddle_table_32f (fatal)

Je ne voulais pas désinstaller mkl, car j'aimerais augmenter les performances,
j'ai donc trouvé une solution de contournement qui a fonctionné pour moi - précharger libmkl_core.so avant
exécution.

$ python -c 'importer sklearn.linear_model.tests.test_randomized_l1'
ERREUR FATAL Intel MKL : impossible de charger libmkl_avx.so ou libmkl_def.so.
$

$ LD_PRELOAD=/opt/anaconda/lib/libmkl_core.so python -c 'import sklearn.linear_model.tests.test_randomized_l1'
$

Salutations,
Yanir.

-
Vous recevez ceci parce que vous avez commenté.
Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/5046#issuecomment-218427199

Sungjin (James) Kim, PhD

Post-doctorat, CCB à Harvard

[email protected]

[Web] http://aspuru.chem.harvard.edu/james-sungjin-kim/

[Linkedin] https://www.linkedin.com/in/jamessungjinkim

[Facebook] https://www.facebook.com/jamessungjin.kim

[courriel alternatif] jamessungjin. [email protected]

J'ai eu le même problème, malgré l'utilisation des derniers packages disponibles. Il s'avère que la solution était plus simple que je ne le pensais : pour une raison quelconque, Anaconda a installé les versions compatibles MKL de la pile numpy/scipy, mais n'a pas réellement installé mkl lui-même. J'ai vu cela lors de la création d'images Docker basées sur la pile minimale de notebooks Jupyter .

Un simple conda install --yes mkl mkl-service résolu pour moi.

J'ouvrais un terminal ipython avec la bibliothèque préchargée et j'ai rencontré l'erreur suivante lorsque j'ai exécuté l'une des routines pca.
:
/home/rp2801/anaconda2/bin/python : erreur de recherche de symbole : /home/rp2801/anaconda2/lib/libmkl_core.so : symbole non défini : mkl_serv_get_max_threads
J'ai ouvert mon terminal ipython en tant que
$ LD_PRELOAD=/chemin/vers/libmkl_core.so ipython

J'obtenais la même erreur. L'alternative à la suppression du basculement de MKL vers la version précédente de cvxopt a également résolu le problème pour moi :

conda install cvxopt=1.1.8=py35_0

Je résous le problème avec succès, c'est le tutoriel https://docs.continuum.io/mkl-optimizations/
la commande:
mise à jour conda conda
mise à jour conda anaconda
mise à jour conda mkl

J'ai trouvé que j'avais le même problème sous numpy: 1.11.2 , qui pourrait être reproduit par
$ python -c 'import sklearn.linear_model.tests.test_randomized_l1'
ERREUR FATAL Intel MKL : impossible de charger libmkl_avx.so ou libmkl_def.so.

Après avoir rétrogradé numpy à 1.11.1, cette erreur a disparu.
conda install numpy=1.11.1
Les packages suivants seront DÉCLASSÉS en raison de conflits de dépendances :
numpy : 1.11.2-py35_0 --> 1.11.1-py35_0
Continuer ([o]/n) ? oui

Ajouter
importer numpy en tant que np
au début du script a résolu le problème :-)

Je ne voulais pas désactiver MKL avec nomkl.
Ajouter

import mkl
mkl.get_max_threads()

Résolu ce problème pour moi.

conda install numpy
résolu le problème pour moi.

conda install -c intel mkl

A travaillé pour moi

conda installer numpy
a résolu le problème pour moi aussi.

Cette page vous a été utile?
0 / 5 - 0 notes