zc911/MatrixSlow

Variable类存在错误

bftan1949 opened this issue · 1 comments

Variable类在初始化时,父类Node的初始化不应该传入self参数,即

def __init__(self, dim, init=False, trainable=True, **kargs):
    """
    变量节点没有父节点,构造函数接受变量的形状,是否初始化以及是否参与训练的标识
    """
    Node.__init__(**kargs) #而非Node.__init__(self,  **kargs)
    self.dim = dim

这是因为如果传入self,则Node会将自身Variable实例收集到parent参数中,然后将自己加入到自己的children列表中,如果调用reset_value函数,就会陷入无限递归,从而报错

对不起,理解错了