【Theano】学习笔记-1-什么是Theano?有哪些优点?

来源:互联网 发布:剑网3男性捏脸夜帝数据 编辑:程序博客网 时间:2024/05/16 17:16

原文:http://deeplearning.net/software/theano/introduction.html#introduction


Theano是一个Python库,你可以定义,优化,评价数学表达式,尤其是多维数组 (numpy.ndarray)

处理具有大量数据的问题时,可以与C的速度媲美,通过利用GPU,甚至可以超过CPU上的C好几个数量级


有些任务中,复杂的数学表达式需要被重复评价,并且评价的速度也很关键,对于这样的任务,CAS和优化编译的结合就有其有用


Theano的编译器应用了许多优化,可以改变符号表达式的复杂度


这里有个如何用Theano的例子

import theanofrom theano import tensor# declare two symbolic floating-point scalarsa = tensor.dscalar()b = tensor.dscalar()# create a simple expressionc = a + b# convert the expression into a callable object that takes (a,b)# values as input and computes a value for cf = theano.function([a,b], c)# bind 1.5 to 'a', 2.5 to 'b', and evaluate 'c'assert 4.0 == f(1.5, 2.5)


Theano区别于Python和numpy之处

执行速度的优化:Theano可以用g++或者nvcc来将你的部分表达图编译成CPU或者GPU指令,这比纯Python要快

符号微分:Theano可以自动建立符号图来计算导数

稳定性优化:Theano可以识别一些数值不稳定表达式并且用更稳定的算法计算它们


最接近Theano的Python包是sympy,Theano比sympy更专注于张量表达式,并且有更多的机制来编译,

而sympy有更多的精准的代数规则并且可以处理更广的数学操作,比如序列,极限,积分



附上知乎的一个帖子,目前完全小白,只能看看别人怎么说,自己操作之后,再来比较

如何评价 Theano?

https://www.zhihu.com/question/35485591


0 0