从Ubuntu 12.04到14.04意味着从Python 2.7.3到2.7.6以及从numpy 1.6.1到1.8.1.但是,我认为这个问题可能与numpy所链接的线性代数库有关.我只能找到libblas.so.3和liblapack.so.3,而不是libblas.so.3gf和liblapack.so.3gf.
我还安装了libopenblas和libatlas:
$sudo apt-get install libopenblas-base libatlas3-base
并尝试过它们,但减速并没有改变.所以,我的问题是:
>有没有“gf”的套餐有什么区别?
>这是否可能导致矩阵乘法减速?
>如果是这样,我怎样才能回到libblas.so.3gf和liblapack.so.3gf?它们似乎在Ubuntu 14.04中停止使用.
非常感谢!
解决方法
您可以通过在numpy的一个已编译的共享库上调用ldd实用程序来检查在运行时链接的BLAS库.
例如,如果您使用apt-get在标准位置安装numpy:
~$ldd /usr/lib/python2.7/dist-packages/numpy/core/_dotblas.so ... libblas.so.3 => /usr/lib/libblas.so.3 (0x00007f01f0188000) ...
这个输出告诉我numpy链接到/usr/lib/libblas.so.3.这通常是参考CBLAS库的符号链接,这很慢.
你可以像wim建议的那样删除通过apt-get安装的numpy版本并自己构建,使用pip或直接下载源代码.但是,我强烈建议您不要使用sudo pip install …在系统范围内安装python模块.这是一个不好习惯,因为你冒着在系统范围的Python环境中破坏依赖关系的风险.
使用pip install –user …安装到〜/ .local /目录中更安全,甚至更好,安装到完全独立的virtualenv
中.
另一个选择是使用update-alternatives
强制您的系统范围numpy链接到不同的BLAS库.我写了一个previous answer here,展示了如何做到这一点.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。