44.1_Parameter类的实现

44.1 Parameter类的实现

首先从 Parameter 类开始说明。Parameter 类的功能与 Variable 类的功能完全相同。代码如下所示。

dezero/core.py

class Parameter(Variable): pass

这就是Parameter类。从代码中可以看出,它只继承了Variable类。因此,它具有与Variable类完全相同的功能。

以上Parameter类的代码在dezero/core.py中。在dezero/init_.py中添加代码fromdezero.core import Parameter后,使用DeZero的人就可以通过fromdezero import Parameter来引入该类。

Parameter实例和Variable实例具有完全相同的功能。不过,我们可以把这两个实例区分开来。下面是具体示例。

import numpy as np   
fromdezero import Variable,Parameter   
 $\texttt{x} =$  Variable(np.array(1.0))   
p  $=$  Parameter(np.array(2.0))   
y  $\equiv$  x\*p   
print(isinstance(p,Parameter))   
print(isinstance(x,Parameter))   
print(isinstance(y,Parameter))

运行结果

True False False

如上面的代码所示,Parameter实例和Variable实例可以组合在一起进行计算。isinstance函数可以用来对它们加以区分。利用这一点,我们可以实现只收集Parameter实例的功能。