2.1.1 Theano
Theano是在BSD许可证下发布的一个开源项目,诞生于加拿大魁北克蒙特利尔大学的LISA实验室,是用一位希腊数学家的名字命名的。
Theano是一个Python库,可用于定义、优化和计算数学表达式,特别是多维数组(numpy.ndarray)。在解决包含大量数据的问题时,使用Theano可实现比手写C语言更快的编程速度。而通过GPU加速,Theano甚至可以比基于CPU计算的C语言快上好几个数量级。Theano结合了计算机代数系统(Computer Algebra System,CAS)和优化编译器,还可以为多种数学运算生成定制的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深度学习框架,Theano很好地完成了自己的使命,为深度学习研究人员早期拓荒提供了极大的帮助,同时也为之后深度学习框架的开发奠定了基本设计方向:以计算图为框架的核心,采用GPU加速计算。
总结:深度学习新手可以使用Theano来练习,但对于职业开发者,建议使用其他主流深度学习框架。