2.1.1 Theano
Theano由LISA集团(现MILA)在加拿大魁北克的蒙特利尔大学开发,是在BSD许可证下发布的开源项目,它是用一位希腊数学家的名字命名的。
Theano是一个Python库,可用于定义、优化和计算数学表达式,特别是多维数组(numpy.ndarray)。在解决包含大量数据问题的时候,使用Theano编程可实现比C语言编程更快的运行速度。通过GPU加速,Theano甚至可以比基于CPU计算的C语言快好几个数量级。Theano结合CAS(Computer Algebra System,计算机代数系统)和优化编译器,还可以为多种数学运算生成定制的C语言代码。对于处理包含重复计算的复杂数学表达式任务,计算速度很重要,因此这种CAS和优化编译器的组合非常有用。对于需要将每种不同的数学表达式都计算一遍的情况,Theano可以最小化编译/解析计算量,但仍会给出如自动微分那样的符号特征。
在过去很长一段时间里,Theano是深度学习开发与研究的行业标准。出身学界的Theano最初是为学术研究而设计的,这使得深度学习领域的许多学者至今仍在使用Theano。但随着TensorFlow在谷歌的支持下强势崛起,Theano日渐式微,使用的人越来越少。其中标志性事件是Theano的创始者之一Ian GoodFellow放弃Theano转去谷歌开发TensorFlow了。
2017年9月28日,在Theano 1.0正式版发布前夕,LISA实验室负责人、深度学习三巨头之一的Yoshua Bengio宣布Theano将停止开发:“Theano is Dead.”尽管Theano将退出历史舞台,但作为第一个Python深度学习框架,它很好地完成了自己的使命——为深度学习研究人员早期拓荒提供了极大的帮助,同时也为之后深度学习框架的开发奠定了基本设计方向:以计算图为框架的核心,采用GPU加速计算。
对于深度学习新手,可以使用Theano做入门练习,但对于职业开发者,建议使用TensorFlow。