Theano是一个Python库,可以在CPU或GPU上运行快速数值计算。

这是Python深度学习中的一个关键基础库,你可以直接用它来创建深度学习模型或包装库,大大简化了程序。

在这篇文章中,你会发现Theano Python库。

Theano是什么?

Theano是在BSD许可证下发布的一个开源项目,是由LISA集团(现MILA)在加拿大魁北克的蒙特利尔大学(Yoshua Bengio主场)开发。它是用一个希腊数学家的名字命名的。

Python的核心Theano是一个数学表达式的编译器。它知道如何获取你的结构,并使之成为一个使用numpy、高效本地库的非常高效的代码,如BLAS和本地代码(C++),在CPU或GPU上尽可能快地运行。

它巧妙的采用一系列代码优化从硬件中攫取尽可能多的性能。如果你对代码中的数学优化的基本事实感兴趣,看看这个有趣的名单。

Theano表达式的实际语法是象征性的,可以推送给初学者用于一般软件开发。具体来说,表达式是在抽象的意义上定义,编译和后期是用来进行计算。


它是为深度学习中处理大型神经网络算法所需的计算而专门设计的。它是这类库的首创之一(发展始于2007年),被认为是深度学习研究和开发的行业标准。

如何安装Theano

Theano提供了主要的操作系统详细的安装说明:Windows、OS X和Linux。为你的平台阅读Theano安装指南。

Theano需要一个Python2或Python3包含SciPy的工作环境。这种方法使安装更加容易,比如用Anaconda在你的机器上快速建立Python和SciPy,以及实用Docker图像。

随着运作的Python和SciPy环境,安装Theano就变得相对简单。使用PIP来自PyPI,例如:

1

pip install Theano


撰写Theano的最后一个正式发布的版本为0.8,发布时间是2016年3月21日。

新版本将要宣布,你将要通过更新得到一些错误修复和效率的提高。您可以使用PIP升级Theano方法如下:

1sudo pip install –upgrade –no-deps theano

您可能需要使用Theano的前沿版本来直接找出Github。

这可能需要一些包装库,用来改变API的前沿。您可以按如下方法从找到的Github上直接安装Theano: 1 pip install –upgrade –no-deps git+git://github.com/Theano/Theano.git

你现在已经准备好在你的CPU上运行Theano了,其十分适合小模型的开发。

大型模型可能在CPU上运行缓慢。如果你有一个Nvidia的GPU,你可能想看看使用您的GPU配置Theano。阅读对于Linux或Mac OS X的使用GPU指南建立Theano并使用GPU,使用GPU指南测试其是否正常工作。

简单的Theano例子

在这一节中我们展示了一个简单的Python脚本,让你对Theano稍加了解。


它是从Theano一览导向中摘取出来的。在这个例子中,我们定义了两个符号浮点变量a和b。

我们定义一个使用这些变量的表达式(C = A + B)。

然后,我们编译这个象征性的表达式为使用Theano功能,我们可以在以后使用。

最后,我们通过填入一些真正的值和采用高效的编译代码Theano执行计算,来使用我们编写的表达式。

import theanofrom theano import tensor# declare two symbolic floating-point scalarsa = tensor.dscalar()b = tensor.dscalar()# create a simple expressionc = a + b# convert the expression into a callable object that takes (a,b)# values as input and computes a value for cf = theano.function([a,b], c)# bind 1.5 to ‘a’, 2.5 to ‘b’, and evaluate ‘c’assert 4.0 == f(1.5, 2.5)

运行的示例不提供任何输出。结论1.5+2.5=4.0是真实的。

这是一个有用的例子,因为它为您提供了一个象征性的表达式是怎么定义,编译和使用的过程。你可以看到它是如何扩展到深度学习所需要的大向量和矩阵运算中去。

Theano的扩展和包装

如果你是深度学习的新人,你不必直接使用Theano。

事实上,我们强烈鼓励使用许多流行的Python项目,它会使深度学习中的Theano使用起来更加简便。

这些项目提供Python中的数据结构和行为,专门为快速、可信的深度学习模型创建而设计,确保Theano在幕后执行快速、高效地创建模型。

Theano语法的数量由库变化而显现。

例如,Lasagne库为创建深度学习模型提供便利类数据,但仍期望你知道并利用Theano语法。知道或愿意学一点Theano对于初学者是有利的。

﹒另一个例子是Keras,它完全隐藏了Theano并提供了一个非常简单的API去创造深度学习模型。它把Theano隐藏的如此之好,以至于它实际上可以作为叫做TensorFlow的另一种流行的基础框架的包装运行。

我强烈建议直接尝试一些与Theano相关的内容,然后选择一个包装库学习和实践深度学习。

对于建立在Theano上的库的完整列表,请参阅维基上Theano相关的项目指南。

更多 Theano 资源

Looking for some more resources on Theano? Take a look at some of the following

Theano Official Homepage
Theano GitHub Repository
Theano: A CPU and GPU Math Compiler in Python(2010) (PDF)
List of Libraries Built on Theano
List of Theano configuration options


Theano 和 深度学习 教程
Theano Tutorial
Deep Learning with Theano Tutorial

Theano帮助教程
Theano Users Google Group

总结
在这篇文章中,你发现了进行有效数值计算的Theano Python库。
你了解到这是用于深度学习研究和发展的基础库,它可以直接用于创建深度学习模型或通过便利库建立在它之上,如Lasagne和Keras。

本文为数盟原创译文,转载自“数盟社区”。