class_docstr: Differentiable Stochastic Gradient Descent.
  
  DifferentiableSGD performs the same optimization step as SGD, but instead
  of updating parameters in-place, it saves updated parameters in new
  tensors, so that the gradient of functions of new parameters can flow back
  to the pre-updated parameters.
  
  Args:
      module (torch.nn.module): A torch module whose parameters needs to be
          optimized.
      lr (float): Learning rate of stochastic gradient descent.
class_docstr_tok: ["Differentiable","Stochastic","Gradient","Descent",".","DifferentiableSGD","performs","the","same","optimization","step","as","SGD",",","but","instead","of","updating","parameters","in-place",",","it","saves","updated","parameters","in","new","tensors",",","so","that","the","gradient","of","functions","of","new","parameters","can","flow","back","to","the","pre-updated","parameters",".","Args",":","module","(","torch.nn.module",")",":","A","torch","module","whose","parameters","needs","to","be","optimized",".","lr","(","float",")",":","Learning","rate","of","stochastic","gradient","descent","."]
code: def __init__(self, module, lr=1e-3):
      self.module = module
      self.lr = lr
  
label_desc: Use image node_id 1 to create a new DifferentiableSGD object  with example: obj = DifferentiableSGD(module, lr)