22.1_负数
22.1 负数
负数式子 的导数是 。因此,在反向传播时,要把从上游(输出方)传来的导数乘以-1之后传给下游。基于这一点,我们可以把代码编写成下面这样。
steps/step22.py
class Neg(Function): def forward(self, x): return -x def backward(self, gy): return -gy
def neg(x): return Neg() (x)
Variable._neg_ $=$ neg上面的代码实现了Neg类,并实现了Python函数neg。之后将neg赋给特殊方法__neg__,代码就完成了。然后,我们就可以像下面这样使用负数运算符了。
steps/step22.py
$\begin{array}{rl} & x = \text{Variable(np.array(2.0))}\\ & y = -x\# \text{求负数}\\ & \text{print(y)} \end{array}$
运行结果 variable(-2.0)下面要实现的是减法。