将标量乘以矩阵

时间:2017-02-11 08:07:26

标签: python anaconda intel-mkl cvxopt

Python 3.5.2 |Anaconda custom (64-bit)| (default, Jul  2 2016, 17:53:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from cvxopt import matrix
>>> 2 * matrix(1.0, (1, 4))
Intel MKL FATAL ERROR: Cannot load libmkl_avx.so or libmkl_def.so

运行上述脚本时,我收到英特尔MKL致命错误。传递了类似错误的问题中提到的测试。测试是

python -c 'import sklearn.linear_model.tests.test_randomized_l1'

我用LD_DEBUG=symbols运行python并在日志中看到以下错误

/opt/anaconda3/lib/python3.5/site-packages/cvxopt/../../../libmkl_avx.so: error: symbol lookup error: undefined symbol: mkl_sparse_optimize_bsr_trsm_i8 (fatal)

有谁知道如何解决这个问题?我有兴趣保留mkl选项而不是nomkl选项

注意mkl已安装且版本最新,因此scikit-learn

2 个答案:

答案 0 :(得分:2)

我在http://scikit-learn.org/stable/modules/linear_model.html上运行示例时遇到了这个问题。显然,一堆库没有自动加载。以下是我目前使用的手动负载,根据您的操作,可能需要其他负载。对我而言,它确实解决了问题中的一个测试用例。

CONDA_LIB=$CONDA_PREFIX/../../lib
LIBS=$CONDA_LIB/libmkl_intel_thread.so:$CONDA_LIB/libmkl_avx.so:$CONDA_LIB/libmkl_core.so:$CONDA_LIB/libiomp5.so:/lib/libgomp.so
LD_PRELOAD=$LIBS python

答案 1 :(得分:0)

你的anaconda安装中可能缺少mkl包。

a)您可以尝试完全升级anaconda:

conda upgrade anaconda

b)或者你可以明确安装mkl:

conda install mkl

我没有检查过a),但是用过b)。在这种情况下,您可能还需要升级sklearn模块:

conda upgrade scikit-learn