![Python快乐编程:人工智能深度学习基础](https://wfqqreader-1252317822.image.myqcloud.com/cover/181/44510181/b_44510181.jpg)
上QQ阅读APP看书,第一时间看更新
2.6.3 Theano中重要的函数
1.求偏导数
求偏导数的函数theano.grad(),比如前面提到的S函数,当x=3的时候,对S函数求偏导数的代码如下所示:
![](https://epubservercos.yuewen.com/507925/23721665909549406/epubprivate/OEBPS/Images/Figure-P43_15347.jpg?sign=1739280889-jP2Uy7bU5UpfFOglzAJpfNUTtRX3sGUb-0-11c5920c3165cbf28aa8227cf50d4150)
结果为0.04517666。
2.共享变量
共享变量是指各线程公共拥有的变量,它是为了多线程高效计算、访问而使用的变量。因为在深度学习中,整个计算过程基本上是多线程计算的,于是就需要用到共享变量。在程序中,一般把神经网络的参数w(权重)、b(偏置项)等定义为共享变量,因为网络的参数,基本上是每个线程都需要访问的。共享变量的定义格式如下所示:
![](https://epubservercos.yuewen.com/507925/23721665909549406/epubprivate/OEBPS/Images/Figure-P43_15349.jpg?sign=1739280889-FypWA7NdmYZOZmTIoCwDA18Lecf8xRwb-0-f04c6f4961cfce8a62e8544a3bd79d44)
通过get_value()可以查看共享变量的数值,通过set_value()可以设置共享变量的数值。
3.共享变量参数更新
参数updates在theano.function函数中具有非常重要的作用,它是一个包含两个元素的列表或元组,一般表示形式为updates=[old_w,new_w]。当函数被调用的时候,会将old_w替换成new_w,具体示例如下所示:
![](https://epubservercos.yuewen.com/507925/23721665909549406/epubprivate/OEBPS/Images/Figure-P43_15350.jpg?sign=1739280889-MI73uD7jEqTgMShvZX4o2LzDMnVO9XC4-0-e4bb3afe71fdb6b25220a38347d09b40)
输出结果如下所示:
1 4
共享变量参数更新主要用于梯度下降算法中。