Scikit-learn: Eu não entendo como construir com anaconda / MKL

Criado em 29 jul. 2015  ·  36Comentários  ·  Fonte: scikit-learn/scikit-learn

Ao usar o anaconda com MKL e tentar construir o sklearn, recebo

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

Alguém pode explicar o que está acontecendo / como construir?

Comentários muito úteis

conda install numpy
Corrigido o erro para mim

Todos 36 comentários

como você iinstalou?

é bastante automático para mim, só preciso adicionar um arquivo de licença e executar
atualização conda (ou algo parecido)

Eu também fiz isso, e isso me deixa entorpecido com mkl. Mas se eu tentar compilar o sklearn, obtenho erros de vinculação na importação.

hum eu não sei. Talvez um conflito com sua python e anaconda local
durante a configuração :(

hm, talvez eu precise definir LD_LIBRARY_PATH ou algo assim?

Eu tenho o meu definido para algo como

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

embora o pedido possa ser importante se encontrar outras bibliotecas de outros
o python é instalado primeiro.

Na quarta-feira, 29 de julho de 2015 às 17:01, Andreas Mueller [email protected]
escreveu:

hm, talvez eu precise definir LD_LIBRARY_PATH ou algo assim?

-
Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/scikit-learn/scikit-learn/issues/5046#issuecomment -126094651
.

foi uma combinação de misturar o sistema numpy e o LD_LIBRARY_PATH ... sempre uma boa diversão ... desculpe pelo barulho.

Estou recebendo o mesmo problema. @amueller Pergunta Noob: onde você procura a confusão? (ld_lib_path)

Estou tendo o mesmo problema, usando o pyinstaller no anaconda para compilar meu programa. Quando eu o executo em certas máquinas, ele gera o erro mencionado acima. No meu caso, se eu ecoar $ LD_LIBRARY_PATH, vejo alguns caminhos que nosso gerenciador de sistema definiu para que alguns programas funcionem. Tentei defini-lo para o caminho lib do anaconda e deixá-lo vazio, mas continua produzindo o erro.

Acho que há um novo erro, acabei de vê-lo em uma instância de travis.

Quando o seu problema ocorre? Porque no meu caso, consegui instalar com conda install numpy e não recebi mensagens de erro. Posteriormente, gerei com sucesso um binário de um arquivo com o pyinstaller. É quando realmente está usando o executável que, em algum ponto, uma chamada para algum código Biopython está gerando o erro. Então eu acho que você também está tendo problemas ao testar o código, em tempo de execução, certo?

Se eu verificar minha instalação do conda, ambos libmkl_avx2.so e libmkl_def.so estão lá, na pasta $ home / anaconda2 / lib. Também tentei adicionar os arquivos como binários no arquivo de especificações do pyintaller, mas nada funciona ...

Acho que há um novo erro, acabei de vê-lo em uma instância de travis.

@amueller Eu vi este erro:

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

no Travis também. Pelo que pude perceber, era devido ao numpy 1.10.2 faltar algumas coisas do mkl. numpy 1.10.4 estava bem. Isso foi observado em https://github.com/scikit-learn/scikit-learn/pull/6508#issuecomment -194908920.

Para o registro, nunca tive que definir LD_LIBRARY_PATH para construir scikit-learn com anaconda (com ou sem MKL).

@clacri, seu problema está relacionado ao scikit-learn? Do contrário, parece que você deve fazer sua pergunta ao pyinstaller ou ao pessoal do Biopython ...

Pelo que pude perceber, era devido ao numpy 1.10.2 faltar algumas coisas do mkl.

Aqui está um snippet que reproduz o problema em minha máquina:

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.

Não, você está certo. Eu deveria postar em sua lista de problemas. É que vi que o erro apontado aqui era o mesmo e também ao usar o anaconda, então pensei que poderia estar relacionado. Eu já perguntei sobre o projeto pyinstaller, porque parece ter um problema semelhante com outras bibliotecas mkl. Em qualquer caso, verifiquei minha versão numpy no anaconda, e é 1.10.4. Obrigado de qualquer maneira :)

Apenas para registro, navegando pelo seu comentário referenciado, encontrei a postagem no blog do Anaconda onde eles descrevem como desativar as versões mkl das bibliotecas (https://www.continuum.io/blog/developer-blog/anaconda-25 -release-now-mkl-optimizations) e agora, pelo menos, posso compilar uma versão funcional. Obrigado!

Por causa do mesmo problema para mim, eu desligo mkl por conda install nomkl. Agora estou feliz. Se o problema for corrigido, compartilhe conosco para que eu possa ligar novamente. Obrigado por elaborar este problema.

Mesmo problema

Seguei o link acima e resolvi meu problema. Obrigado.

Estava resolvido agora, pelo menos para mim. Você pode tentar com o novo numpy 11.
Na quarta-feira, 27 de abril de 2016 às 22h42 gjzhu [email protected] escreveu:

Mesmo problema. Não sei como lidar com isso.

-
Você está recebendo isto porque comentou.
Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/scikit-learn/scikit-learn/issues/5046#issuecomment -215292024

Sungjin (James) Kim, PhD

Pós-doutorado, CCB em 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

[email alternativo] jamessungjin. [email protected]

conda install numpy
Corrigido o erro para mim

Boa. Também funciona para mim, como observei antes.

Na terça-feira, 3 de maio de 2016 às 11h26, alinabee [email protected] escreveu:

conda install numpy
Corrigido o erro para mim

-
Você está recebendo isto porque comentou.
Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/scikit-learn/scikit-learn/issues/5046#issuecomment -216563766

Sungjin (James) Kim, PhD

Pós-doutorado, CCB em 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

[email alternativo] jamessungjin. [email protected]

Oi,

Só queria observar que o Anaconda 4.0.0, fornecido com mkl habilitado por padrão, tem esse problema.
O problema é de fato com o Anaconda, pois ele pode ser reproduzido com o teste sklearn python sugerido acima por @pcgreat.

O problema real é que o Anaconda se vinculou ao mkl, mas não ao libmkl_core.so, portanto, ele tem um símbolo ausente e pode ser visto executando:

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

Eu não queria desinstalar o mkl, pois gostaria de aumentar o desempenho, então encontrei uma solução alternativa que funcionou para mim - pré-carregar libmkl_core.so antes da execução.

$ 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'
$

Cumprimentos,
Yanir.

É um pensamento de solução tão maravilhoso.

Na quarta-feira, 11 de maio de 2016 às 7h, yanirj [email protected] escreveu:

Oi,

Só queria observar que o Anaconda 4.0.0, fornecido com mkl habilitado por
padrão, tem esse problema.
O problema é mesmo com o Anaconda, pois pode ser reproduzido com o
teste python sklearn sugerido acima por @pcgreat
https://github.com/pcgreat.

O problema real é que o Anaconda se vinculou ao mkl, mas não ao
libmkl_core.so, portanto, tem um símbolo ausente e pode ser visto executando:

$ LD_DEBUG = símbolos 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: erro: erro de pesquisa de símbolo: símbolo indefinido: mkl_dft_fft_fix_twiddle_table_32f (fatal)

Eu não queria desinstalar o mkl, pois gostaria de aumentar o desempenho,
então eu encontrei uma solução que funcionou para mim - pré-carregar libmkl_core.so antes
execução.

$ python -c 'import sklearn.linear_model.tests.test_randomized_l1'
Intel MKL FATAL ERROR: Não é possível carregar 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'
$

Cumprimentos,
Yanir.

-
Você está recebendo isto porque comentou.
Responda a este e-mail diretamente ou visualize-o no GitHub
https://github.com/scikit-learn/scikit-learn/issues/5046#issuecomment -218427199

Sungjin (James) Kim, PhD

Pós-doutorado, CCB em 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

[email alternativo] jamessungjin. [email protected]

Tive o mesmo problema, apesar de usar os pacotes disponíveis mais recentes. Acontece que a solução foi mais fácil do que eu pensava: por alguma razão, o Anaconda instalou as versões habilitadas para MKL da pilha numpy / scipy, mas não instalou mkl propriamente dito. Eu vi isso ao criar imagens do Docker com base na pilha mínima de notebooks do

Um simples conda install --yes mkl mkl-service resolveu para mim.

Eu estava abrindo um terminal ipython com a biblioteca pré-carregada e encontrei o seguinte erro ao executar uma das rotinas pca.
:
/ home / rp2801 / anaconda2 / bin / python: erro de pesquisa de símbolo: /home/rp2801/anaconda2/lib/libmkl_core.so: símbolo indefinido: mkl_serv_get_max_threads
Abri meu terminal ipython como
$ LD_PRELOAD = / path / to / libmkl_core.so ipython

Eu estava recebendo o mesmo erro. Alternativa para remover a mudança de MKL para cvxopt build anterior também resolveu o problema para mim:

conda install cvxopt = 1.1.8 = py35_0

Resolvi o problema com sucesso, este é o tutorial https://docs.continuum.io/mkl-optimizations/
o comando:
conda atualização conda
conda update anaconda
conda update mkl

Descobri que tinha o mesmo problema em numpy: 1.11.2 , que poderia ser reproduzido por
$ python -c 'import sklearn.linear_model.tests.test_randomized_l1'
Intel MKL FATAL ERROR: Não é possível carregar libmkl_avx.so ou libmkl_def.so.

Depois de fazer o downgrade do numpy para 1.11.1, esse erro desapareceu.
conda install numpy=1.11.1
Os seguintes pacotes serão BAIXADOS devido a conflitos de dependência:
numpy: 1.11.2-py35_0 -> 1.11.1-py35_0
Continuar ([s] / n)? y

Adicionando
importar numpy como np
no início do script resolveu o problema :-)

Não queria desabilitar MKL com nomkl.
Adicionando

import mkl
mkl.get_max_threads()

Resolvido este problema para mim.

conda install numpy
resolveu o problema para mim.

conda install -c intel mkl

Funcionou para mim

conda install numpy
resolveu o problema para mim também.

Esta página foi útil?
0 / 5 - 0 avaliações