您的位置:首页 > 其它

Theano学习系列(1):符号变量

2016-01-27 11:02 316 查看

Theano学习系列(1):符号变量

这段时间通过学习Theano的Library Documentation,(http://deeplearning.net/software/theano/library/index.html#libdoc),总结出使用Theano去实现一个具体的算法一般需要以下几个步骤:(1)定义符号变量;(2)建立起来符号表达式;(3)建立起来图连接关系也就是function函数实现的;(4)调用function实现一定的功能,也就是完成编译调用。在本节里面重点讲述Theano符号变量这一个数据类型的基本知识。
Theano中所有符号变量来源于一个基类:Tensorvariable(),也就是说这些符号变量的实际上都是这个类的实例化,而这些符号变量的本身的数据类型,通过实例化给定,通过访问对象属性得到object.type,这些在theano的tensor模块中,下面给出常见的语法模式以及常见的数据类型:



一般格式:import theano
import theano.tensor as T
x=T.符号变量类型(name='这个变量的名字',dtype=‘该实例化的符号变量的数据类型’)
Note:有人尝试这么去定义符号变量出现以下错误:




第一眼看上去好像并没有啥错误,其实这是对于Python基本功太差的表现,也是一个细节问题,因为“theano.config.floatX”在这个情况下并没有导入,所以一般情况下,记住,先import theano,在import theano.tensor as T。下面贴出来常见的符号类型,以及符号变量的数据类型。






第一栏里面是符号变量的类型,第二栏是符号变量的数据类型,有意思的是最后一栏broadcastable属性,实际上Numpy一样,它是完成不同shape的矩阵之间的运算的,其实咱们一直在用,只不过没有明确提出来而已,下面通过对比看看Numpy和Theano中broastcastable:




正常来说a和b的shape不一样,不能参加运算,正式因为这个broadcastable,让他们可以计算了。


大家可以看到在theano中的符号变量也有这样的概念,这对于之后计算很有用的。这里有关于function函数的用法,在之后会详细说明。
在theano中一次定义几个同类型的符号变量,用法也简单,下面简单看看。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: