该theano installation documentation状态,即theano将作为默认使用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库。我想通numpy的自带BLAS,如果你在Ubuntu下sudo apt-get install python-numpy python-scipy
安装。
这是/usr/lib64/python2.6/dist-packages/scipy/lib/blas
的filelisting
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
这是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
下载Python库的蟒蛇发行后,我正好遇到在Ubuntu 12.04 LTS 64位的同样的问题。指着Theano包含目录libblas.so照顾它。
$ THEANO_FLAGS=blas.ldflags="-L/usr/lib/ -lblas" python rbm.py
与Ubuntu,在包管理器,libblas.so自带libblas3gf包。如果不知它不创造libblas.so,而造成libblas.so.X,手动创建一个符号链接,如:
cd /usr/lib64
sudo ln -s libblas.so.3gf libblas.so
注意:这一直为我好,但是阅读以下虽然评论。并牢记这个包不会被优化到特定的硬件(读取其他答案暗示ATLAS例如)。
在你的情况,你应该看看在/usr/lib64
,看看是否libblas
等可作为.so
或.so.X
文件。
重新编译BLAS是不平凡的,但你也许可以尝试为您配送安装相关的ATLAS包。
你的主要问题是本质的发行维护者是否正确或不安装的依赖关系之一 - 对,我不知道答案或解决方案。
不过,我有一个建议。 ATLAS是不是很辛苦去建立。获得源代码,解压,保证你满意它的依赖,然后揭开序幕,配置及制作步骤。依赖部分可能是耗时的过程的手动部分的时间最多。
当然,那么你必须重新链接numpy的,theano等。虽然我承认这是一个痛苦(相信我,我通过它去了两个Theano和汉纳斯Shulz&安迪·穆勒的CSV),你得到的好处是BLAS调整到优化您的硬件上运行。
如果安装numpy的最近的一个版本足够多,theano将在所有情况下正常工作。
从那里,关心使用的BLAS的唯一原因是与速度有关。默认BLAS是很慢的。许多发行版编译numpy的再这种缓慢的BLAS版本。
一个简单/快捷方式有一个更快的BLAS实现安装包发行约地图集和Atlas devel的。这是一个优化的BLAS实现。
Unbuntu的新版本,图谱中所做的安装是numpy的开始使用它的方式。因此,没有必要对Theano任何改变这一点。我不知道其他的发行版做到这一点。
最好的方法来检查Theano用途是快速与否对时间它BLAS。要做到这一点,在bash下运行如下命令:
X=`python -c "import theano;import os.path; print os.path.split(theano.__file__)[0]"`
python ${X}/misc/check_blas.py
然后比较所花费的印一些其他的比较结果运行的速度。