class_docstr: A plain implementation of SGD
  
  :param learningrate learning rate
  :param learningrate_decay learning rate decay
  :param weightdecay weight decay
  :param momentum momentum
  :param dampening dampening for momentum
  :param nesterov enables Nesterov momentum
  :param learningrates 1D tensor of individual learning rates
  :param weightdecays 1D tensor of individual weight decays
  >>> sgd = SGD()
  creating: createDefault
  creating: createSGD
code: def __init__(
      self,
      learningrate=1e-3,
      learningrate_decay=0.0,
      weightdecay=0.0,
      momentum=0.0,
      dampening=DOUBLEMAX,
      nesterov=False,
      learningrate_schedule=None,
      learningrates=None,
      weightdecays=None,
  ):
      from bigdl.optim.optimizer import SGD as BSGD
  
      assert isinstance(learningrate_schedule, Scheduler), (
          "learningrate_schedule should be an zoo.orca.learn.optimizers.schedule.Scheduler,"
          f" but got {learningrate_schedule}"
      )
      self.optimizer = BSGD(
          learningrate,
          learningrate_decay,
          weightdecay,
          momentum,
          dampening,
          nesterov,
          learningrate_schedule.get_scheduler(),
          learningrates,
          weightdecays,
          bigdl_type="float",
      )
  
imports: from abc import ABC, abstractmethod
  from bigdl.util.common import DOUBLEMAX
  from zoo.orca.learn.optimizers.schedule import Scheduler
label_desc: Use image node_id 1 to create a new SGD object from inherited base classes: Optimizer with example: obj = SGD(learningrate, learningrate_decay, weightdecay, momentum, dampening, nesterov, learningrate_schedule, learningrates, weightdecays)