如何确保numpy BLAS库可用作可动态加载的库?

Fra*_*ter 23 linux numpy shared-libraries blas atlas

theano安装文档状态,即theano将作为默认使用BLAS库从numpy的,如果"BLAS库可为动态加载库".这似乎不适用于我的机器,请参阅错误消息.

  • 如果numpy BLAS库可以动态加载,我怎么知道呢?
  • 如果它们不可动态加载,我如何重新编译numpy BLAS库?

如果您需要更多信息,请说明!

错误信息

We did not found a dynamic library into the library_dir of the library we use for blas. If you use ATLAS, make sure to compile it with dynamics library. /usr/bin/ld: cannot find -lblas

附录

theano除其他事项外库的需求与NumPy和BLAS库.如果你sudo apt-get install python-numpy python-scipy在Ubuntu下安装它,我认为numpy带有BLAS .

这是文件列表 /usr/lib64/python2.6/dist-packages/scipy/lib/blas

cblas.so  info.py   __init__.py   scons_support.py   setup.py     
fblas.so  info.pyc  __init__.pyc  scons_support.pyc  setup.pyc  
setupscons.py  test
setupscons.pyc
Run Code Online (Sandbox Code Playgroud)

这是输出distutils.__config__.show()如下

blas_info:
    libraries = ['blas']
    library_dirs = ['/usr/lib64']
    language = f77

lapack_info:
    libraries = ['lapack']
    library_dirs = ['/usr/lib64']
    language = f77

atlas_threads_info:
  NOT AVAILABLE

blas_opt_info:
    libraries = ['blas']
    library_dirs = ['/usr/lib64']
    language = f77
    define_macros = [('NO_ATLAS_INFO', 1)]

atlas_blas_threads_info:
  NOT AVAILABLE

lapack_opt_info:
    libraries = ['lapack', 'blas']
    library_dirs = ['/usr/lib64']
    language = f77
    define_macros = [('NO_ATLAS_INFO', 1)]

atlas_info:
  NOT AVAILABLE

lapack_mkl_info:
  NOT AVAILABLE

blas_mkl_info:
  NOT AVAILABLE

atlas_blas_info:
  NOT AVAILABLE

mkl_info:
  NOT AVAILABLE
Run Code Online (Sandbox Code Playgroud)

小智 13

下载了Anaconda的python库发行版后,我刚刚在Ubuntu 12.04 LTS 64位上遇到了同样的问题.将Theano指向包含libblas.so的目录负责.

$ THEANO_FLAGS=blas.ldflags="-L/usr/lib/ -lblas" python rbm.py

  • 我加入了我的theanorc:[blas] ldflags = -L/usr/lib/-lblas.错误消失了. (2认同)

dwf*_*dwf 2

在您的情况下,您应该查看/usr/lib64等是否libblas可用作.so.so.X文件。

重新编译 BLAS 并不简单,但您可以尝试为您的发行版安装相关的 ATLAS 软件包。