`
810364804
  • 浏览: 773674 次
文章分类
社区版块
存档分类
最新评论

theano安装

 
阅读更多

http://blog.csdn.net/lucktroy/article/details/9336477

http://blog.sina.com.cn/s/blog_6cb8e53d0101keak.html


因为想安装Theano到系里的电脑上,但是本人并没有root权限,无奈在google group之theano-user上发帖问大神[注1有对话 : ) ]。

Sigurd的回答非常有帮助的,顺着这个线索我最后安装成功了。

系统版本:CentOS6.x

原始安装参考:http://deeplearning.net/software/theano/install_centos6.html#install-centos6

  1. 1.$sudoyuminstallpython-develpython-nosepython-setuptoolsgccgcc-gfortrangcc-c++blas-devellapack-develatlas-devel
  2. 2.$sudoeasy_installpip
  3. 3.$sudopipinstallnumpy==1.6.1
  4. 4.$sudopipinstallscipy==0.10.1
  5. 5.$sudopipinstallTheano

但我之前说了没root权限,没法用sudo!!!

系里的机子默认已经安装了gcc,gfortran等。

所以,第一步安装Blas,Lapack,Atlas,不能用sodu,意味着也无法yum了。不过我们可以用yumdownloader:

1.用yumdownloader所需的rpm

  1. $yumdownloaderblas-devellapack-develatlas-devel
然后用rpm2cpio:

  1. $rpm2cpio*rpm|cpio-id
copy到$HOME或你想的目录下

  1. $mvusr~/usr
然后要设置环境变量,修改~/.bashrc,设置下Blas,Lapack,Atlas的路径

  1. exportBLAS=~/usr/lib64/libblas.a
  2. exportLAPACK=~/usr/lib64/liblapack.a
  3. exportATLAS=~/usr/lib64/atlas/libatlas.a
这样就完成了第一步.

2.用easy_install --user安装pip

在这之前,先设置环境变量PYTHONUSERBASE

  1. exportPYTHONUSERBASE=~/PYTHON
  2. exportPATH=$PATH:~/PYTHON/bin

  1. $easy_install--userpip

3.用pipinstall--user安装numpy

  1. $pipinstall--usernumpy==1.6.1
4.用pipinstall--user安装scipy

  1. $pipinstall--userscipy==0.10.1

5.用pipinstall--user安装Thean

  1. $pipinstall--userTheano

安装完成后,测试了下4个不同机器上GPU的性能.

  1. $pythontheano/misc/check_blas.py

测试结果:

  1. $catgpu0*|grep"Totalexe"
  2. Totalexecutiontime:0.45sonGPU.[GeForceGTX285]
  3. Totalexecutiontime:0.25sonGPU.[TeslaC2075]
  4. Totalexecutiontime:0.19sonGPU.[GeForceGTX480]
  5. Totalexecutiontime:0.45sonGPU.[GeForceGTX285]

注:安装过程中出现错误要先解读错误,可能根据错误提示简单改一下就行了。


注1:

-------------------------------------------------------------------------------------------------------------------------------------------

On Monday, July 15, 2013 4:32:47 PM UTC+8, Sigurd wrote:
Hi Eric,

You can install python packages underneath your home directory. For installing Theano with pip or from source, just add --user.

pip install --user Theano
python setup.py install --user


Sigurd

Am Montag, 15. Juli 2013 10:23:17 UTC+2 schrieb Eric:
Hi,
I tried to install theano in the clusters at our lab.
But, unfortunately, I am just a user rather than root user. I cannot use "sudo".
Any idea for installing theano without root authority is appreciated.

Besides, I may ask administrators to install theano for me. However, sometimes, it also requires root authority when running a theano/pylearn2 program. How to avoid it ? Many thanks.

-- Eric
-------------------------------------------------------------------------------------------------


Theano是一个python库,提供了定义、优化以及评估数学表达式的库,尤其适合处理高维数组。使用Theano能获得和C差不多的处理速度,并且当利用GPU进行计算时,效率要优于CPU上运行的C语言程序。利用Theano能快速验证各种算法模型。

但是在Linux上安装theano是一件非常痛苦的事情,从theano的文档中看到,其依赖条件非常多:
(1) 64-bit Linux(最佳)
(2) python 2.4以上
(3) g++ 4.2以上
(4) NumPy 1.5.0以上
(5) SciPy 0.8以上
(6) BLAS支持Level-3
事实上,在安装过程中发现,如果要安装NumPy,还需要安装ATLAS,而ATLAS则又依赖于lapack ……

这其中涉及到:
ATLAS是python下的一个线性代数库,是基于另外两个线性代数库BLAS和lapack的;
NumPy提供了一个在python中做科学计算的基础库,它重在数值计算,甚至可以说是用于多维数组处理的库;
SciPy是基于numpy,提供了一个在python中做科学计算的工具集,也就是说它是更上一个层次的库;
Theano则是基于NumPy以及SciPy的一个更高级的用于科学计算的库。

这里假设python和g++已经按要求装好,并且符合版本要求,以下根据安装的步骤来进行说明:

首先介绍下环境,多核服务器,cpu时钟频率2668MHz,Linux-64bit,非root权限。所有源码放在/data4/open_src中

各开发包的版本为:

开发包 <wbr><wbr>版本 <wbr><wbr><wbr>文件名 <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>下载地址</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
-----------------------------------------------------------------------------------------------
BLAS <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>blas.tgz <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>http://www.netlib.org/blas/</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
lapack <wbr><wbr>3.2.2 <wbr><wbr><wbr>lapack.tgz <wbr><wbr><wbr><wbr><wbr><wbr><wbr>http://www.netlib.org/lapack/#_previous_release</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
ATLAS <wbr><wbr><wbr>3.8.4 <wbr><wbr><wbr>atlas3.8.4.tar.bz2 <wbr><wbr><wbr>http://sourceforge.net/projects/math-atlas/files/Stable/</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
NumPy <wbr><wbr><wbr>1.7.1 <wbr><wbr><wbr>numpy-1.7.1.tar.gz <wbr><wbr><wbr>https://pypi.python.org/pypi/numpy</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
SciPy <wbr><wbr><wbr>0.12.0 <wbr><wbr>scipy-0.12.0.tar.gz <wbr><wbr><wbr>https://pypi.python.org/pypi/scipy</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
Theano <wbr><wbr>0.6.0 <wbr><wbr><wbr>Theano-0.6.0rc3.tar.gz <wbr>http://deeplearning.net/software/theano/#download</wbr></wbr></wbr></wbr></wbr></wbr>

以下是安装步骤:

step 1. 编译BLAS

<wbr>(1) 解压:tar -xvzf blas.tgz</wbr>
<wbr>(2) cd BLAS</wbr>
<wbr>(3) 修改 make.inc 中的编译选项:</wbr>
<wbr><wbr><wbr><wbr>PLAT = _LINUX</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>FORTRAN <wbr>= gfortran</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>OPTS <wbr><wbr>= -O2 -m64 -fPIC</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>NOOPT <wbr><wbr>= -O0 -m64 -fPIC</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>LOADER <wbr>= gfortran</wbr></wbr></wbr></wbr></wbr>
<wbr>(4) 编译BLAS:make</wbr>
<wbr><wbr><wbr><wbr>编译完成后,会生成blas_LINUX.a文件</wbr></wbr></wbr></wbr>

step 2. 配置ATLAS

<wbr>在安装ATLAS之前需要先编译lapack,但是为了能使得编译成功,需要保证lapack的编译选项与ATLAS一致。因此首先配置ATLAS,然后将相关编译配置拷贝到lapack中</wbr>

<wbr>(1) 解压:tar -xvjf atlas3.8.4.tar.bz2</wbr>
<wbr>(2) cd ATLAS</wbr>
<wbr>(3) 创建一个build目录,用于存放ATLAS的编译配置:mkdir atlas_build</wbr>
<wbr>(4) cd atlas_build</wbr>
<wbr>(5) 执行configure进行配置:../configure -b 64 -D c -DPentiumCPS=2668 -Fa alg -fPIC --with-netlib-lapack=/data4/open_src/lapack-3.2.2/lapack_LINUX.a --prefix=~/.local</wbr>
<wbr><wbr><wbr><wbr>其中的参数说明如下:</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>-b 指定编译出库的类型(32位库还是64位库)</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>-D c -DPentiumCPS 是指定你的CPU的时钟频率,可以通过 grep MHz /proc/cpuinfo 得到</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>-Fa alg -fPIC 得到与位置无关的代码,生成动态的共享库</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>--prefix 为安装路径</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>--with-netlib-lapack 则是制定lapack库文件(此时lapack库文件还没有生成,先随便指定一个)</wbr></wbr></wbr></wbr>
<wbr>(6) 完成配置后,在Make.inc文件中找到F77和F77FLAGS的参数配置,这两个配置将会赋给lapack的FORTRAN和OPTS</wbr>
<wbr><wbr></wbr></wbr>
<wbr>ps:对于ATLAS 3.10及以上版本,设置--with-netlib-lapack会出错,需要直接指定lapack的压缩包(--with-netlib-lapack-tarfile=),它在编译过程中会自动解压和编译lapack,最终生成的so文件也由之前的6个整合成两个。ATLAS 3.10以上版本对后续安装NumPy没有影响,但是在使用的时候会造成有些库文件找不到的现象。因此这里使用的是ATLAS 3.8.4版本。</wbr>

step 3. 编译lapack

<wbr>(1) 解压:tar -xvzf lapack.tgz</wbr>
<wbr>(2) cd lapack-3.2.2</wbr>
<wbr>(3) 拷贝生成make.inc: cp make.inc.example make.inc</wbr>
<wbr>(4) 修改make.inc:<wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>将其中FORTRAN和OPTS的值设置得跟 ATLAS/atlas_build/Make.inc 中的F77和F77FLAGS一致</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>同时设置</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>PLAT = _LINUX</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>BLASLIB = /data4/open_src/BLAS/blas$(PLAT).a</wbr></wbr></wbr></wbr>
<wbr>(5) 编译:make build</wbr>
<wbr>(6) 编译成功后,会在根目录生成两个库文件:lapack_LINUX.a 和 tmglib_LINUX.a</wbr>

step 4. 编译并安装ATLAS

<wbr>(1) cd ATLAS</wbr>
<wbr>(2) 删除原配置:rm -rf atlas_build</wbr>
<wbr>(3) 重新配置ATLAS:参考 step 2,并设置 --with-netlib-lapack=/data4/open_src/lapack-3.2.2/lapack_LINUX.a</wbr>
<wbr>(4) 在atlas_build中进行编译:make build</wbr>
<wbr><wbr><wbr><wbr>ps:这个过程相当漫长,耐心等待!!</wbr></wbr></wbr></wbr>
<wbr>(5) check编译结果:</wbr>
<wbr><wbr><wbr><wbr>make check</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>make ptcheck (对于多核服务器)</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>make time</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>ps:如果check过程中没有报错,则可以放心进行以后的步骤;如果出现报错,也可以尝试进行后续步骤,是否成功就要靠人品了。</wbr></wbr></wbr></wbr>
<wbr>(6) 编译动态库:</wbr>
<wbr><wbr><wbr><wbr>cd lib</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>make shared</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>make ptshared (对于多核服务器)</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>cd ..</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>如果在 lib 下面出现libatlas.so, libcblas.so, libf77blas.so, liblapack.so, libptcblas.so, libptf77blas.so 这6个动态库文件,则表示编译成功</wbr></wbr></wbr></wbr>
<wbr>(7) 安装ATLAS:make install</wbr>
<wbr><wbr><wbr><wbr>由于之前设置了--prefix=~/.local 因此ATLAS将被安装到 ~/.local/lib 中</wbr></wbr></wbr></wbr>
<wbr>(8) cp ./lib/*.so ~/.local/lib</wbr>
<wbr>(9) 设置环境变量:在~/.bashrc中添加 export LD_LIBRARY_PATH=~/.local/lib:$LD_LIBRARY_PATH 并执行 source ~/.bashrc</wbr>

step 5. 安装NumPy

<wbr>(1) 解压 tar -xvzf numpy-1.7.1.tar.gz</wbr>
<wbr>(2) cd numpy-1.7.1</wbr>
<wbr>(3) 拷贝生成sit.cfg: cp site.cfg.example site.cfg</wbr>
<wbr>(4) 配置site.cfg:<wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>1&gt; 打开[DEFAULT],并设置 library_dirs 和 include_dirs ,使得在编译的时候能够找到atlas库</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>library_dirs = ~/.local/lib</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>include_dirs = ~/.local/include</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>2&gt; 打开[blas_opt],并设置 libraries</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>libraries = ptf77blas, ptcblas, atlas</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>3&gt; 打开[lapack_opt],并设置 libraries</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>libraries = lapack, ptf77blas, ptcblas, atlas</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>ps:如果在ATLAS安装过程中,没有生成libptf77blas和libptcblas,则需要设置两个libraries为</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>libraries = f77blas, cblas, atlas</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>libraries = lapack, f77blas, cblas, atlas</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>(5) 利用python构建NumPy:python setup.py build</wbr>
<wbr>(6) 利用python安装NumPy:python setup.py install --prefix=~/.local</wbr>
<wbr>(7) 安装完成后,NumPy被安装在 ~/.local/lib/python2.7/site-packages/numpy<wbr></wbr></wbr>
<wbr>(8) 设置环境变量:在~/.bashrc中添加 export PYTHONPATH=~/.local/lib/python2.7/site-packages:$PYTHONPATH 并执行 source ~/.bashrc</wbr>

step 6. 安装SicPy

<wbr>(1) 解压: tar -xvzf scipy-0.12.0.tar.gz</wbr>
<wbr>(2) cd scipy-0.12.0</wbr>
<wbr>(3) 设置site.cfg: 可以直接将NumPy的site.cfg拷贝到当前目录中</wbr>
<wbr>(4) 利用python构建SciPy:python setup.py build</wbr>
<wbr>(5) 利用python安装SciPy:python setup.py install --prefix=~/.local</wbr>
<wbr>(6) 安装完成后,SciPy被安装在 ~/.local/lib/python2.7/site-packages/scipy</wbr>
<wbr><wbr></wbr></wbr>
step 7. 安装Theano

<wbr>有了以上的准备后,安装Theano就是一个非常简单的过程了。直接利用python就可以完成安装:</wbr>
<wbr>(1) 解压:tar -xvzf Theano-0.6.0rc3.tar.gz</wbr>
<wbr>(2) cd Theano-0.6.0rc3</wbr>
<wbr>(3) python setup.py install --prefiex=~/.local</wbr>
<wbr>(4) 安装完成后,SciPy被安装在 ~/.local/lib/python2.7/site-packages/Theano-0.6.0rc3-py2.7.egg</wbr>


至此,完成了ATLAS + NumPy + SciPy + Theano的python科学计算环境的搭建

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics