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中

各开发包的版本为:

开发包    版本      文件名                  下载地址

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

BLAS                  blas.tgz                http://www.netlib.org/blas/

lapack    3.2.2      lapack.tgz              http://www.netlib.org/lapack/#_previous_release

ATLAS      3.8.4      atlas3.8.4.tar.bz2      http://sourceforge.net/projects/math-atlas/files/Stable/

NumPy      1.7.1      numpy-1.7.1.tar.gz      https://pypi.python.org/pypi/numpy

SciPy      0.12.0    scipy-0.12.0.tar.gz      https://pypi.python.org/pypi/scipy

Theano    0.6.0      Theano-0.6.0rc3.tar.gz  http://deeplearning.net/software/theano/#download

以下是安装步骤:

step 1. 编译BLAS

(1) 解压:tar -xvzf blas.tgz

(2) cd BLAS

(3) 修改 make.inc 中的编译选项:

PLAT = _LINUX

FORTRAN  = gfortran

OPTS    = -O2 -m64 -fPIC

NOOPT    = -O0 -m64 -fPIC

LOADER  = gfortran

(4) 编译BLAS:make

编译完成后,会生成blas_LINUX.a文件

step 2. 配置ATLAS

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

(1) 解压:tar -xvjf atlas3.8.4.tar.bz2

(2) cd ATLAS

(3) 创建一个build目录,用于存放ATLAS的编译配置:mkdir atlas_build

(4) cd atlas_build

(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

其中的参数说明如下:

-b 指定编译出库的类型(32位库还是64位库)

-D c -DPentiumCPS 是指定你的CPU的时钟频率,可以通过 grep MHz /proc/cpuinfo 得到

-Fa alg -fPIC 得到与位置无关的代码,生成动态的共享库

--prefix 为安装路径

--with-netlib-lapack 则是制定lapack库文件(此时lapack库文件还没有生成,先随便指定一个)

(6) 完成配置后,在Make.inc文件中找到F77和F77FLAGS的参数配置,这两个配置将会赋给lapack的FORTRAN和OPTS

ps:对于ATLAS 3.10及以上版本,设置--with-netlib-lapack会出错,需要直接指定lapack的压缩包(--with-netlib-lapack-tarfile=),它在编译过程中会自动解压和编译lapack,最终生成的so文件也由之前的6个整合成两个。ATLAS 3.10以上版本对后续安装NumPy没有影响,但是在使用的时候会造成有些库文件找不到的现象。因此这里使用的是ATLAS 3.8.4版本。

step 3. 编译lapack

(1) 解压:tar -xvzf lapack.tgz

(2) cd lapack-3.2.2

(3) 拷贝生成make.inc: cp make.inc.example make.inc

(4) 修改make.inc:

将其中FORTRAN和OPTS的值设置得跟 ATLAS/atlas_build/Make.inc 中的F77和F77FLAGS一致

同时设置

PLAT = _LINUX

BLASLIB = /data4/open_src/BLAS/blas$(PLAT).a

(5) 编译:make build

(6) 编译成功后,会在根目录生成两个库文件:lapack_LINUX.a 和 tmglib_LINUX.a

step 4. 编译并安装ATLAS

(1) cd ATLAS

(2) 删除原配置:rm -rf atlas_build

(3) 重新配置ATLAS:参考 step 2,并设置 --with-netlib-lapack=/data4/open_src/lapack-3.2.2/lapack_LINUX.a

(4) 在atlas_build中进行编译:make build

ps:这个过程相当漫长,耐心等待!!

(5) check编译结果:

make check

make ptcheck (对于多核服务器)

make time

ps:如果check过程中没有报错,则可以放心进行以后的步骤;如果出现报错,也可以尝试进行后续步骤,是否成功就要靠人品了。

(6) 编译动态库:

cd lib

make shared

make ptshared (对于多核服务器)

cd ..

如果在 lib 下面出现libatlas.so, libcblas.so, libf77blas.so, liblapack.so, libptcblas.so, libptf77blas.so 这6个动态库文件,则表示编译成功

(7) 安装ATLAS:make install

由于之前设置了--prefix=~/.local 因此ATLAS将被安装到 ~/.local/lib 中

(8) cp ./lib/*.so ~/.local/lib

(9) 设置环境变量:在~/.bashrc中添加 export LD_LIBRARY_PATH=~/.local/lib:$LD_LIBRARY_PATH 并执行 source ~/.bashrc

step 5. 安装NumPy

(1) 解压 tar -xvzf numpy-1.7.1.tar.gz

(2) cd numpy-1.7.1

(3) 拷贝生成sit.cfg: cp site.cfg.example site.cfg

(4) 配置site.cfg:

1> 打开[DEFAULT],并设置 library_dirs 和 include_dirs ,使得在编译的时候能够找到atlas库

library_dirs = ~/.local/lib

include_dirs = ~/.local/include

2> 打开[blas_opt],并设置 libraries

libraries = ptf77blas, ptcblas, atlas

3> 打开[lapack_opt],并设置 libraries

libraries = lapack, ptf77blas, ptcblas, atlas

ps:如果在ATLAS安装过程中,没有生成libptf77blas和libptcblas,则需要设置两个libraries为

libraries = f77blas, cblas, atlas

libraries = lapack, f77blas, cblas, atlas

(5) 利用python构建NumPy:python setup.py build

(6) 利用python安装NumPy:python setup.py install --prefix=~/.local

(7) 安装完成后,NumPy被安装在 ~/.local/lib/python2.7/site-packages/numpy

(8) 设置环境变量:在~/.bashrc中添加 export PYTHONPATH=~/.local/lib/python2.7/site-packages:$PYTHONPATH 并执行 source ~/.bashrc

step 6. 安装SicPy

(1) 解压: tar -xvzf scipy-0.12.0.tar.gz

(2) cd scipy-0.12.0

(3) 设置site.cfg: 可以直接将NumPy的site.cfg拷贝到当前目录中

(4) 利用python构建SciPy:python setup.py build

(5) 利用python安装SciPy:python setup.py install --prefix=~/.local

(6) 安装完成后,SciPy被安装在 ~/.local/lib/python2.7/site-packages/scipy

step 7. 安装Theano

有了以上的准备后,安装Theano就是一个非常简单的过程了。直接利用python就可以完成安装:

(1) 解压:tar -xvzf Theano-0.6.0rc3.tar.gz

(2) cd Theano-0.6.0rc3

(3) python setup.py install --prefiex=~/.local

(4) 安装完成后,SciPy被安装在 ~/.local/lib/python2.7/site-packages/Theano-0.6.0rc3-py2.7.egg

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

python科学计算环境配置_ATLAS + NumPy + SciPy + Theano 的Python科学计算环境搭建相关推荐

  1. 深度学习环境配置10——Ubuntu下的torch==1.7.1环境配置

    深度学习环境配置10--Ubuntu下的torch==1.7.1环境配置 注意事项 一.2022/9/18更新 学习前言 各个版本pytorch的配置教程 环境内容 环境配置 一.Anaconda安装 ...

  2. 深度学习环境配置5——windows下的torch-cpu=1.2.0环境配置

    深度学习环境配置5--windows下的torch-cpu=1.2.0环境配置 注意事项 一.2021/10/8更新 学习前言 各个版本pytorch的配置教程 环境内容 环境配置 一.Anacond ...

  3. 深度学习环境配置1——windows下的tensorflow-gpu=1.13.2环境配置

    深度学习环境配置1--windows下的tensorflow-gpu=1.13.2环境配置 注意事项 一.2021/9/11更新 二.2021/7/8更新 三.2020/11/5更新 学习前言 环境内 ...

  4. Python环境配置保姆教程(Anaconda、Jupyter、GPU环境)!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:吴永强,东北大学,Datawhale团队成员 1. 写在前面 搞算 ...

  5. 【Python】Python环境配置保姆教程(Anaconda、Jupyter、GPU环境)!

    作者:吴永强,东北大学,Datawhale团队成员 1. 写在前面 搞算法的同学也都明白,一个比较完美的python环境是多么的重要.这篇文章打算把一些必备的python环境配置过程记录下来,这样不管 ...

  6. python环境配置不成功_怎么解决python配置环境变量不成功

    怎么解决python配置环境变量不成功 发布时间:2020-08-25 16:02:46 来源:亿速云 阅读:94 这期内容当中小编将会给大家带来有关怎么解决python配置环境变量不成功,文章内容丰 ...

  7. php4 apache 配置,[开发环境配置]windows下php4+mysql4+apache2开发环境配置

    在网上看了好多php+mysql+apache的开发环境配置文档.但是其中不乏出现了很多的问题导致在配置开发环境的时候出现了很多的问题.这里总结出一份自己配置过程中的文档希望能给大家带来一些帮助.那么 ...

  8. python+NLTK+科学计算包安装(numpy/scipy/matplotlib等)+win64位

    最近折腾python下nltk的学习,在安装科学计算包的时候好纠结...官方给的几乎都是win32的包,再者安装的过程由于版本的问题,卸载安装了好几次...写下来,大家也能借鉴借鉴. nltk是一个p ...

  9. linux服务器配置python环境_服务器python环境配置福利,CentOS ,Linux 一键下载python3和环境配置...

    很多新手对于linux 系统很是费解,通常下一个环境就需要大半天,中途还会出现各种这样的问题 ,干脆写一个脚本一键配置python环境 shell 脚本start.sh: #!/bin/bash yu ...

最新文章

  1. 【AI白身境】搞计算机视觉必备的OpenCV入门基础
  2. 【牛客 - 369A】小D的剧场(线性dp)
  3. eclipse插件本地扩展安装
  4. GitHub改为token验证后,如何提交代码?
  5. [2019杭电多校第四场][hdu6621]K-th Closest Distance(主席树)
  6. XMLHttpRequest 对象获取服务端数据
  7. Mac After Effects安装BodyMovin说明文档
  8. BCH码(BCH code)详细分析
  9. 【贪心+堆优化】奶牛晒衣服 dry.pas/c/cpp
  10. 操作系统 - 王道 - 第五章 I/O
  11. 数据可视化笔记5 时间数据可视化
  12. bzoj1755[Usaco2005 qua]Bank Interest*
  13. 部署开源软件snipe-it
  14. 心态-《积极的力量》书中的精髓:如何保持积极乐观的心态,从而提升我们的幸福感?
  15. 【AWS】一、如何在AWS免费撸一年的服务器
  16. 1.5 Nginx进程模型解析
  17. 量化交易入门阶段:好事要成双——双均线策略
  18. js中国标准时间转换为yyyy-MM-dd
  19. 为什么做抓包测试 及抓包 http 原理图解分析
  20. zData与持续优化 云和恩墨以创新获天安人寿供应商突出贡献奖

热门文章

  1. HTML,多行文本输入框textarea
  2. linux下canopen协议视频,CAN协议与CANOpen协议
  3. Linux下的文件及文件后缀名
  4. Android9.0源代码中替换默认静态壁纸
  5. Terraform 基础 定义阿里云资源 VPC、安全组
  6. 蓝牙服务器维修理地址,云服务器蓝牙
  7. Java/171. Excel Sheet Column Number Excel序号转换数字
  8. 以字母Q为元素的创意logo设…
  9. 工具善其事,必先被苦逼的其器所钝伤然后打磨之才能利其器
  10. php include file_PHP Include文件实例讲解