1. Theano不是一个正常意义上的编程语言,因为你在Python中编写一个程序来为Theano构建表达式。在某种程度上它仍然像一个编程语言,因为你必须
(1)声明变量(a,b)并给出它们的类型
(2)构建表达式来表示如何将这些变量放在一起
(3)将表达式图编译为函数,以便将它们用于计算。
可以把theano.function看作一个编译器的接口,它从纯粹的符号图中构建一个可调用的对象。Theano的最重要的特性之一是theano.function可以优化图,甚至将其中的一些或全部编译为本机机器指令。
2.Theano是一个Python库和优化编译器,用于处理和求值表达式,特别是矩阵表达式。矩阵的操作通常使用numpy包来完成,那么什么是Theano做的而Python和numpy没有做的呢?
执行速度优化:Theano可以使用g++或nvcc将表达式图的部分编译成CPU或GPU指令,它们运行起来比纯Python快得多。
符号微分:Theano可以自动构建用于计算梯度的符号图。
稳定性优化:Theano可以识别[某些]数值不稳定的表达式,并使用更稳定的算法计算它们。
3.