内容正文:
第2章 Theano基础
认识Theano
安装Theano
配置环境变量
Theano中的符合变量
Theano编程风格
Theano中的函数
Theano中的符号计算图模型
Theano中的条件表达式
Theano中的循环
Theano中的常用Debug技巧
初识Theano
安装Theano
配置环境变量
Theano中的符号变量
Theano编程风格
Theano中的函数
Theano中的符号计算图模型
Theano中的条件表达式
Theano中的循环
Theano中的常用Debug技巧
学习目标
掌握Theano方法
了解Theano的基本概念
掌握Theano的编程风格
了解
掌握
掌握
学 习 目 标
LEARNING OBJECTIVES
初心至善 匠心育人
“工欲善其事,必先利其器。”初学者除了需要掌握深度学习的理论知识外,还应熟练运用相关的工具库来创建深度学习模型或包装库。Theano是一个Python库,可以在CPU或GPU上进行快速数值计算,从而大大简化程序。本章将对Theano 的相关基础知识进行讲解。
初心至善 匠心育人
2.1 初识Theano
Theano是最早的深度学习开发工具之一,是在BSD许可证下发布的一个开源项目,它的开发始于2007年,由YoshuaBengio领导的加拿大蒙特利尔理工学院LISA集团现( MILA )开发,Theano的名字源于一位著名的希腊数学家,它是为深度学习中处理大型神经网络算法所需的计算而专门设计的,擅长处理多维数组库,与其他深度学习库结合使用时十分适合用于数据探索。Theano首次引入了“符号计算图”来描述模型表达式的开源结构,目前,这被看作深度学习研究和开发的行业标准。Theano可以被理解成数学表达式的编译器:用符号式语言定义需要的结果,该框架会对程序进行编译,从而高效运行于GPU或CPU。目前许多优秀的深 度学习开源工具库对Theano的底层设计进行了借鉴,如Tensorflow、Keras等,因此,掌握Theano的使用方法可以作为学习其他类似开源工具的铺垫。
初心至善 匠心育人
2.1 初识Theano
Theano是一个基于Python和Numpy的数值计算工具包,它可以定义最优化以及估值高维度的数学表达式,也可以通过一系列代码优化从而获得更好的硬件性能。theano.tensor数据类型包含double、int、uchar、float等,最常用的类型是int 和float,具体如下所示:
数值———iscalar(int类型的变量)、fscalar(float 类型的变量);
一维向量———ivector(int类型的向量)、fvector(float类型的向量);
二维矩阵———fmatrix(float类型矩阵)、imatrix(int类型的矩阵);
三维float类型矩阵———ftensor3 ;
四维float类型矩阵———ftensor4 。
初心至善 匠心育人
2.1 初识Theano
Theano与Tensorflow功能十分相似(前面提到,Tensorflow借鉴了Theano的底层设计),因而两者常常被放在一起比较,这两者都偏向底层。Theano更像一个研究平台,并没有专门用于深度学习的相关接口。例如,Theano中没有现成的神经网络分级,因此,在实际应用中需要从最基本的网络层开始构建所需要的模型。
经过多年发展,目前有大量基于Theano的开源深度学习库被开发并得到实际应用,例如Keras、Lasagne和Blocks。这些更高层级的wrapperAPI可以大幅减少开发时间以及开发过程中的麻烦。现在,大多数使用Theano的开发者都会借助辅助API进行开发,Theano已经逐渐形成一套生态系统,可以在使用Theano时借助其他API来降低其使用难度。
初心至善 匠心育人
2.1 初识Theano
在过去的很长一段时间内,Theano都是深度学习开发与研究的行业标准。由于Theano是由高校的研究团队研发的,它的设计初衷是服务于学术研究,这导致深度学习领域的许多学者至今仍在使用Theano。对于深度学习新手而言,使用 Theano练手对于深入理解模型的原理有很大的好处,但对于开发者而言,还是建议使用Tensorflow等更高效的深度学习工具。
初心至善 匠心育人
2.2 安装Theano
Theano提供了主要的操作系统详细的安装说明:Windows、OSX和Linux。Theano需要一个Python2或Python3包含SciPy的工作环境,Anaconda中基本涵盖了运行Theano所需要的大部分工具包,可以用Anaconda在的机器上快速建立 Python和SciPy,以及实用Docker图像。
本书建议采用含有Py