class_docstr: An abstract base callback to set hyperparameters.
  
  Once the :meth:`trigger()` method is called,
  the method :meth:`_get_value_to_set` will be used to get a new value for the hyperparameter.
docstr: Args:
      param(HyperParam or str): if is a :class:`str`, it is assumed to
          be a :class:`GraphVarParam`.
docstr_tok: ["Args",":","param","(","HyperParam","or","str",")",":","if","is","a",":","class",":","`","str","`",",","it","is","assumed","to","be","a",":","class",":","`","GraphVarParam","`","."]
code: def __init__(self, param):
      """
      Args:
          param(HyperParam or str): if is a :class:`str`, it is assumed to
              be a :class:`GraphVarParam`.
      """
      # if a string, assumed to be a scalar graph variable
      if isinstance(param, six.string_types):
          param = GraphVarParam(param)
      assert isinstance(param, HyperParam), type(param)
      self.param = param
      self._last_value = None
      self._last_epoch_set = -1
  
imports: import operator
  import os
  import numpy
  from abc import ABCMeta, abstractmethod
  from collections import deque
  import six
  from ..compat import tfv1
  from ..tfutils.common import get_op_tensor_name
  from ..utils import logger
  from .base import Callback
label_desc: Use image node_id 1 to create a new HyperParamSetter object from inherited base classes: Callback with example: obj = HyperParamSetter(param)