您的位置:首页 > 其它

theano——Graph Structures

2015-12-07 11:36 274 查看
Theano编程的核心是用符号占位把数学关系表示出来。

import theano.tensor as T
x = T.dmatrix('x')
y = x*2.

>>> y.owner.op.name
'Elemwise{mul,no_inplace}'
>>> y.owner.inputs
[x, DimShuffle{x,x}.0]
# 返回 list
>>> y.owner.inputs[0]
x
>>> y.owner.inputs[1]
DimShuffle{x,x}.0


编译Theano其实是编译了一张图。

a = T.vector('a')   # declare symbolic variable
b = a + a**10       # build symbolic expression
f = theano.function([a], b)
# compile function
print(f([0, 1, 2]))


图结构中在编译之前要求参与运算的数据结构都需声明各个维度是否可broadcastable。numpy使用的是运行时的shape信息(不需声明,自动broadcast?)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: