需要numpy版本_一文看懂Theano:在GPU上运行性能是NumPy的11倍

NumPy在处理大数据时性能存在瓶颈,Theano作为Python库可突破此瓶颈。本文介绍了Theano的性能优势,如在CPU和GPU上比NumPy快数倍,还介绍了Linux+Anaconda+theano环境的安装步骤,包括安装anaconda、theano及测试方法。

导读:NumPy是数据计算的基础,更是深度学习框架的基石。但如果直接使用NumPy计算大数据,其性能已成为一个瓶颈。

随着数据爆炸式增长,尤其是图像数据、音频数据等数据的快速增长,迫切需要突破NumPy性能上的瓶颈。需求就是强大动力!通过大家的不懈努力,在很多方面取得可喜进展,如硬件有GPU,软件有Theano、Keras、TensorFlow,算法有卷积神经网络、循环神经网络等。

作者:吴茂贵,王冬,李涛,杨本法

如需转载请联系华章科技

bb1e21fa0d83f76691fbab3e8dfee6a5.png

Theano是Python的一个库,为开源项目,在2008年,由Yoshua Bengio领导的加拿大蒙特利尔理工学院LISA实验室开发。对于解决大量数据的问题,使用Theano可能获得与手工用C实现差不多的性能。另外通过利用GPU,它能获得比CPU上快很多数量级的性能。

至于Theano是如何实现性能方面的跨越,如何用“符号计算图”来运算等内容,本文都将有所涉猎,但限于篇幅无法深入分析,只做一些基础性的介绍。涵盖的主要内容:

  • 如何安装Theano。
  • 符号变量是什么。
  • 如何设计符号计算图。
  • 函数的功能。
  • 共享变量的妙用。

Theano开发者在2010年公布的测试报告中指出:在CPU上执行程序时,Theano程序性能是NumPy的1.8倍,而在GPU上是NumPy的11倍。这还是2010年的测试结果,近些年无论是Theano还是GPU,性能都有显著提高。

这里我们把Theano作为基础来讲,除了性能方面的跨越外,它还是“符合计算图”的开创者,当前很多优秀的开源工具,如TensorFlow、Keras等,都派生于或借鉴了Theano的底层设计。所以了解Theano的使用,将有助于我们更好地学习TensorFlow、Keras等其他开源工具。

aa6f1c998c9f18c442c2c7826720a855.png

01 安装

这里主要介绍Linux+Anaconda+theano环境的安装说明,在CentOS或Ubuntu环境下,建议使用Python的Anaconda发行版,后续版本升级或添加新模块可用Conda工具。当然也可用pip进行安装。但最好使用工具来安装,这样可以避免很多程序依赖的麻烦,而且日后的软件升级维护也很方便。

Theano支持CPU、GPU,如果使用GPU还需要安装其驱动程序如CUDA等,限于篇幅,这里只介绍CPU的,有关GPU的安装,大家可参考:

http://www.deeplearning.net/software/theano/install.html

以下为主要安装步骤:

1. 安装anaconda

从anaconda官网下载Linux环境最新的软件包,Python版本建议选择3系列的,2系列后续将不再维护。

anaconda官网:

https://www.anaconda.com/download/

下载文件为一个sh程序包,如Anaconda3-4.3.1-Linux-x86_64.sh,然后在下载目录下运行如下命令:

bash Anaconda3-4.3.1-Linux-x86_64.sh

安装过程中按enter或y即可,安装完成后,程序提示是否把anaconda的binary加入到.bashrc配置文件中,加入后运行python、ipython时将自动使用新安装的Python环境。

安装完成后,你可用conda list命令查看已安装的库:

conda list

安装成功的话,应该能看到numpy、scipy、matplotlib、conda等库。

2. 安装theano

利用conda 来安装或更新程序:

conda install theano

3. 测试

先启动Python,然后导入theano模块,如果不报错,说明安装成功。

$ PythonPython 3.6.0 |Anaconda custom (64-bit)| (default, Dec 23 2016, 12:22:00) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linuxType "help
软件特色  支持批量文件(或目录)同时修改;  时间精度为毫秒级;  可进行固定时间、随机时间、平均时间、递增时间方式修改;  *模式下可使用规则定义灵活地生成随机时间;  可将不同的时间进行绑定,如可让创建时间与访问时间相同,不受设定影响;  可选择性地修改文件时间项,如只修改创建时间;  时间输入框支持键盘方向键调节,可以快速切换数据段并调数值;  可随时为本工具增加、删除系统菜单项,删除后不留垃圾,增加后能在文件/目录上右键快速打开本工具。功能介绍  时间设定模式分为普通模式和*模式,普通模式又分为:固定时间、随机、平均、递增模式。  固定时间模式:按指定的时间进行修改  随机时间模式:设定时间段(即两个时间点),并在时间段内生成随机的时间  平均时间模式:设定时间段(即两个时间点),并根据文件的总数分摊时间值(需要注意文件的排序)  递增递减模式:设定起点一时间,再设定递增(或递减)的量和单位,按文件列表顺序逐步递增(或递减)时间  *模式:也称为*随机模式,可设定自定义规则,分别对不同数据段设定变动范围,能更加灵活地生成所需要的随机时间。  时间绑定:时间绑定是指将创建时间、 修改时间、 访问时间之间进行同步绑定,使绑定的时间相同,被绑定的时间不再受时间设定影响,直接引用绑定时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值