27.1_sin函数的实现
27.1 sin函数的实现
函数的导数能够以解析方式求出。若 ,其导数就为 。因此,Sin类和sin函数可以按如下方式实现。
steps/step27.py
import numpy as np
fromdezero import Function
class Sin(Functions): def forward(self,x): y = np.sin(x) return y def backward(self,gy): x = selfinputs[0].data gx $=$ gy \* np.cos(x) returngx
defsin(x): return Sin()x上面的代码利用NumPy内置的np.sin函数和np.cos函数轻松地完成了实现。这样一来,我们就能在DeZero中使用sin函数进行计算了。下面是计算在 处 的导数的代码示例。
steps/step27.py
fromdezeroimportVariable
$\mathbf{x} =$ Variable(np.array(np.pi/4))
y $=$ sin(x)
y.backup()
print(y.data)
print(x.grad)运行结果
0.7071067811865476
0.7071067811865476
计算得到的y的值和x的导数均为0.7071067811865476。这个值约等于 (即 )。由 可知,计算结果是正确的。