class_docstr: Base class of all user-defined learners. To implement your own learning
  algorithm, derive from this class and override the :meth:`update`.
  
  Certain optimizers (such as AdaGrad) require additional storage.
  This can be allocated and initialized during construction.
class_docstr_tok: ["Base","class","of","all","user-defined","learners",".","To","implement","your","own","learning","algorithm",",","derive","from","this","class","and","override","the",":","meth",":","`","update","`",".","Certain","optimizers","(","such","as","AdaGrad",")","require","additional","storage",".","This","can","be","allocated","and","initialized","during","construction","."]
code: def __init__(self, parameters, lr_schedule, as_numpy=True):
      super(UserLearner, self).__init__(parameters, lr_schedule)
      self.as_numpy = as_numpy
      self.__disown__()
  
imports: from enum import Enum, unique
  import warnings
  import numpy
  import cntk.internal.utils
  from ..None import cntk_py, NDArrayView, asarray
  from cntk.internal import typemap
  from ..internal.swig_helper import map_if_possible
label_desc: Use image node_id 1 to create a new UserLearner object from inherited base classes: cntk_py with example: obj = UserLearner(parameters, lr_schedule, as_numpy)