22.3_除法
22.3 除法
除法式子 的导数为 和 。基于这个结果,我们编写如下代码。
steps/step22.py
class Div(Function): def forward(self, x0, x1): y = x0 / x1 return y def backward(self, gy): x0, x1 = self.inputs[0].data, selfinputs[1].data gx0 = gy / x1 gx1 = gy * (-x0 / x1 ** 2) return gx0, gx1
def div(x0, x1): x1 = as_array(x1) return Div() (x0, x1)
def rdiv(x0, x1): x1 = as_array(x1) return Div() (x1, x0) #交换x1和x0
Variable._truediv_ = div Variable._rtruediv_ = rdiv和减法运算一样,在实现除法运算时,我们也需要为右项和左项分别实现不同的函数。除此之外没有什么特别难的地方了。最后是幂运算。