在将ubuntu从12.04升级到14.04之后,为什么使用python的numpy的矩阵乘法变得如此缓慢?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在将ubuntu从12.04升级到14.04之后,为什么使用python的numpy的矩阵乘法变得如此缓慢?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1541字,纯文字阅读大概需要3分钟。
内容图文
![在将ubuntu从12.04升级到14.04之后,为什么使用python的numpy的矩阵乘法变得如此缓慢?](/upload/InfoBanner/zyjiaocheng/968/bb42eb60f4fc49a1a1aaddfba014b141.jpg)
我曾经有过Ubuntu 12.04,最近刚刚安装了Ubuntu 14.04.我正在研究的东西涉及大矩阵的乘法(~2000 X 2000),我正在使用numpy.我遇到的问题是,现在计算的时间要长10到15倍.
从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中停止使用.
非常感谢!
解决方法:
wim是正确的,因为问题可能是由于numpy链接到较慢的BLAS库(例如参考CBLAS库而不是ATLAS)引起的.
您可以通过在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,展示了如何做到这一点.
内容总结
以上是互联网集市为您收集整理的在将ubuntu从12.04升级到14.04之后,为什么使用python的numpy的矩阵乘法变得如此缓慢?全部内容,希望文章能够帮你解决在将ubuntu从12.04升级到14.04之后,为什么使用python的numpy的矩阵乘法变得如此缓慢?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。