class_docstr: ## Base class for *Adam* and extensions
docstr: ### Take optimizer step on a parameter tensor
  
  This should be overridden and take the optimization step on `param` tensor $    heta$,
  where `grad` is the gradient for that parameter, $g_t$,
  `state` is the optimizer state dictionary for that parameter, and
  `group` is the parameter group dictionary `param` belongs to.
docstr_tok: ["#","#","#","Take","optimizer","step","on","a","parameter","tensor","This","should","be","overridden","and","take","the","optimization","step","on","`","param","`","tensor","$","heta","$",",","where","`","grad","`","is","the","gradient","for","that","parameter",",","$","g_t","$",",","`","state","`","is","the","optimizer","state","dictionary","for","that","parameter",",","and","`","group","`","is","the","parameter","group","dictionary","`","param","`","belongs","to","."]
code: def step_param(
      self,
      state: Dict[str, any],
      group: Dict[str, any],
      grad: torch.Tensor,
      param: torch.Tensor,
  ):
      """
      ### Take optimizer step on a parameter tensor
  
      This should be overridden and take the optimization step on `param` tensor $\theta$,
      where `grad` is the gradient for that parameter, $g_t$,
      `state` is the optimizer state dictionary for that parameter, and
      `group` is the parameter group dictionary `param` belongs to.
      """
      pass
  
file_path: annotated_deep_learning_paper_implementations/labml_nn/optimizers/__init__.py
imports: from typing import Dict, Tuple, Any
  import torch
  from torch import nn
  from torch.optim.optimizer import Optimizer
label_desc: Use image node_id 3 for calling the GenericAdaptiveOptimizer obj's underlying member method code with example usage: obj.step_param(state, group, grad, param) without return types