Scikit-learn: 我不明白如何用 anaconda/MKL 构建

创建于 2015-07-29  ·  36评论  ·  资料来源: scikit-learn/scikit-learn

将 anaconda 与 MKL 一起使用并尝试构建 sklearn 时,我得到

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

谁能解释发生了什么/如何建造?

最有用的评论

conda install numpy
为我修复了错误

所有36条评论

你是怎么安装的?

对我来说这是非常自动的,我只需要添加一个许可证文件并运行
conda 升级(或类似的东西)

我也这样做了,这让我对 mkl 感到麻木。 但是,如果我随后尝试编译 sklearn,则会在导入时出现链接错误。

嗯,我不知道。 可能和你本地的python和anaconda有冲突
在安装过程中:(

嗯,也许我需要设置 LD_LIBRARY_PATH 之类的?

我把我的设置成类似的东西

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

尽管如果从其他库中找到其他库,排序可能很重要
首先安装python。

2015 年 7 月 29 日星期三下午 5:01,Andreas Mueller通知@github.com
写道:

嗯,也许我需要设置 LD_LIBRARY_PATH 之类的?


直接回复此邮件或在 GitHub 上查看
https://github.com/scikit-learn/scikit-learn/issues/5046#issuecomment -126094651
.

它是混合系统 numpy 和 LD_LIBRARY_PATH 的组合......总是很有趣......对噪音感到抱歉。

我遇到了同样的问题。 @amueller Noob 问题:你在哪里搜索

我遇到了同样的问题,在 anaconda 中使用 pyinstaller 来编译我的程序。 当我在某些机器上执行它时,它会引发上述错误。 就我而言,如果我 echo $LD_LIBRARY_PATH 我会看到我们的系统管理器为某些程序设置的几个路径。 我试图将它设置为 anaconda lib 路径,并将其留空,但它不断产生错误。

我认为有一个新错误,我刚刚在 travis 实例上得到了它。

你的问题什么时候出现? 因为就我而言,我可以使用 conda install numpy 进行安装,并且没有收到错误消息。 之后,我成功地使用 pyinstaller 生成了一个单文件二进制文件。 正是在实际使用可执行文件时,在某些时候,对某些 Biopython 代码的调用会引发错误。 所以我猜你在测试代码时也遇到了问题,在运行时,对吧?

如果我检查我的 conda 安装,libmkl_avx2.so 和 libmkl_def.so 都在 $home/anaconda2/lib 文件夹中。 我还尝试将文件作为二进制文件添加到 pyintaller 规范文件中,但没有一个有效......

我认为有一个新错误,我刚刚在 travis 实例上得到了它。

@amueller我见过这个错误:

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

特拉维斯也是如此。 据我所知,这是由于 numpy 1.10.2 缺少一些 mkl 的东西。 numpy 1.10.4 很好。 这在https://github.com/scikit-learn/scikit-learn/pull/6508#issuecomment -194908920 中有所说明。

作为记录,我从来没有设置 LD_LIBRARY_PATH 来使用 anaconda(有或没有 MKL)构建 scikit-learn。

@clacri您的问题是否与 scikit-learn 相关? 如果不是,看起来您应该向 pyinstaller 或 Biopython 人员提出您的问题......

据我所知,这是由于 numpy 1.10.2 缺少一些 mkl 的东西。

这是在我的机器上重现问题的片段:

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.

不,你是对的。 我应该在他们的问题列表上发帖。 只是我看到这里指出的错误是相同的,而且在使用 anaconda 时也是如此,所以我认为它可能是相关的。 我已经问过 pyinstaller 项目,因为它似乎与其他 mkl 库有类似的问题。 无论如何,我在 anaconda 中检查了我的 numpy 版本,它是 1.10.4。 不管怎么说,还是要谢谢你 :)

只是为了记录,浏览您引用的评论,我在 Anaconda 博客上找到了这篇文章,其中描述了如何停用库的 mkl 版本(https://www.continuum.io/blog/developer-blog/anaconda-25 -release-now-mkl-optimizations),现在至少我可以编译一个工作版本。 谢谢!

由于我遇到了同样的问题,我通过 conda install nomkl 关闭了 mkl。 我现在很开心。 如果此问题已解决,请与我们分享,以便我重新开机。 感谢您详细说明这个问题。

同样的问题

按照上面的链接解决了我的问题。 谢谢。

现在至少对我来说已经解决了。 您可以尝试使用新的 numpy 11。
在星期三,2016年4月27日,在下午10:42 gjzhu [email protected]写道:

同样的问题。 不知道怎么处理。


您收到此消息是因为您发表了评论。
直接回复此邮件或在 GitHub 上查看
https://github.com/scikit-learn/scikit-learn/issues/5046#issuecomment -215292024

Sungjin (James) Kim 博士

哈佛CCB博士后

[email protected]

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

[领英] https://www.linkedin.com/in/jamessungjinkim

[脸书] https://www.facebook.com/jamessungjin.kim

[备用电子邮件] jamessungjin。 [email protected]

conda install numpy
为我修复了错误

好的。 正如我之前提到的,它也适用于我。

在周二年,2016年5月3日,在上午11:26 alinabee [email protected]写道:

康达安装numpy
为我修复了错误


您收到此消息是因为您发表了评论。
直接回复此邮件或在 GitHub 上查看
https://github.com/scikit-learn/scikit-learn/issues/5046#issuecomment -216563766

Sungjin (James) Kim 博士

哈佛CCB博士后

[email protected]

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

[领英] https://www.linkedin.com/in/jamessungjinkim

[脸书] https://www.facebook.com/jamessungjin.kim

[备用电子邮件] jamessungjin。 [email protected]

你好,

只是想注意,默认情况下启用 mkl 的 Anaconda 4.0.0 存在此问题。
问题确实出在 Anaconda 上,因为它可以通过 @pcgreat 上面建议的 python sklearn 测试重现。

实际问题是 Anaconda 与 mkl 链接,但未与 libmkl_core.so 链接,因此它缺少符号,可以通过运行看到:

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

我不想卸载 mkl,因为我想提高性能,所以我找到了一个对我有用的解决方法 - 在执行之前预加载 libmkl_core.so。

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

问候,
亚尼尔。

这么好的解决思路。

在周三年,2016年5月11日上午7:00 yanirj [email protected]写道:

你好,

只是想注意 Anaconda 4.0.0,随附启用了 mkl
默认,有这个问题。
问题确实出在 Anaconda 上,因为它可以用
@pcgreat 上面建议的 python sklearn 测试
https://github.com/pcgreat。

实际问题是 Anaconda 与 mkl 相关联,但不与
libmkl_core.so,因此它缺少符号,可以通过运行看到:

$ LD_DEBUG=symbols python -c 'import sklearn.linear_model.tests.test_randomized_l1' 2>&1 | grep -i 错误
2200:/opt/anaconda/lib/python2.7/site-packages/scipy/special/../../../../libmkl_avx.so:错误:符号查找错误:未定义符号:mkl_dft_fft_fix_twiddle_table_32f(致命)

我不想卸载 mkl,因为我想提升性能,
所以我找到了一个对我有用的解决方法 - 在之前预加载 libmkl_core.so
执行。

$ python -c 'import sklearn.linear_model.tests.test_randomized_l1'
英特尔 MKL 致命错误:无法加载 libmkl_avx.so 或 libmkl_def.so。
$

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

问候,
亚尼尔。


您收到此消息是因为您发表了评论。
直接回复此邮件或在 GitHub 上查看
https://github.com/scikit-learn/scikit-learn/issues/5046#issuecomment -218427199

Sungjin (James) Kim 博士

哈佛CCB博士后

[email protected]

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

[领英] https://www.linkedin.com/in/jamessungjinkim

[脸书] https://www.facebook.com/jamessungjin.kim

[备用电子邮件] jamessungjin。 [email protected]

尽管使用了最新的可用软件包,但我遇到了同样的问题。 事实证明,解决方案比我想象的要容易:无论出于何种原因,Anaconda 安装了启用 MKL 的 numpy/scipy 堆栈版本,但实际上并没有安装mkl本身。 我在基于Jupyter 最小笔记本堆栈构建 Docker 映像时看到了这一点。

一个简单的conda install --yes mkl mkl-service为我解决了这个问题。

我打开了一个预加载了库的 ipython 终端,当我运行其中一个 pca 例程时遇到以下错误。

/home/rp2801/anaconda2/bin/python:符号查找错误:/home/rp2801/anaconda2/lib/libmkl_core.so:未定义符号:mkl_serv_get_max_threads
我打开了我的 ipython 终端
$ LD_PRELOAD=/path/to/libmkl_core.so ipython

我遇到了同样的错误。 替代删除 MKL 切换到较早的 cvxopt 构建也解决了我的问题:

畅达安装 cvxopt=1.1.8=py35_0

我成功解决了问题,这是教程https://docs.continuum.io/mkl-optimizations/
命令:
康达更新康达
康达更新蟒蛇
康达更新 mkl

我发现我在numpy: 1.11.2下也有同样的问题,可以通过
$ python -c 'import sklearn.linear_model.tests.test_randomized_l1'
英特尔 MKL 致命错误:无法加载 libmkl_avx.so 或 libmkl_def.so。

将 numpy 降级到 1.11.1 后,此错误消失了。
conda install numpy=1.11.1
由于依赖冲突,以下软件包将被降级:
numpy: 1.11.2-py35_0 --> 1.11.1-py35_0
继续 ([y]/n)? 是

添加
将 numpy 导入为 np
在脚本的开头解决了这个问题:-)

不想用 nomkl 禁用 MKL。
添加

import mkl
mkl.get_max_threads()

为我解决了这个问题。

conda install numpy
为我解决了这个问题。

conda install -c intel mkl

为我工作

康达安装numpy
也为我解决了这个问题。

此页面是否有帮助?
0 / 5 - 0 等级