方法一
如果使用conda,请尝试使用以下两个命令:
conda install nomkl numpy scipy scikit-learn numexpr
conda remove mkl mkl-service
它应该能解决你的问题。
亲测可用!!!
方法二
只是想注意到Anaconda4.0.0在默认情况下启用了mkl,它有这个问题。 问题确实出在水蟒身上,因为它可以通过下面的简单python测试重现。
实际问题是,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'
$
参考资料: