def update(self, params, grads): raise UnimplementedMethodException()
def dloss(self, weight): raise UnimplementedMethodException()
def forward(self, x, **kwargs): raise UnimplementedMethodException()
def backward(self, dout): raise UnimplementedMethodException()
def density(self, x): raise UnimplementedMethodException()
def log_likelihood(self, data, hypo): raise UnimplementedMethodException()