6.2_Function 类的功能扩展

6.2 Function类的功能扩展

接下来是Function类。在前面的步骤中,Function类实现了进行普通计算的正向传播(forward方法)的功能。在此基础上,我们新增以下两个功能。

  • 计算导数的反向传播(backward方法)功能

  • 调用forward方法时,保有被输入的Variable实例的功能

下面的代码实现了这两个功能。

steps/step06.py

class Function: def__call__(self,input): x  $=$  input.data y  $=$  self.forward(x) output  $\equiv$  Variable(y) self.input  $\equiv$  input #保存输入的变量 returnoutput defforward(self,x): raiseNotImplementedError() defbackward(self,gy): raise NotImplementedError()

在上面的代码中,_call__方法将输入的input设置为实例变量。这样一来,当调用backward方法时,向函数输入的Variable实例就可以作为self.input使用。