                  logger.info("Updated config from legacy 'l2_reg_term' to 'loss_function_2'")
  
          logger.debug("State file updated for legacy config: %s", updated)
          return updated
  
      def _update_changed_config_items(self, config_changeable_items: dict) -> None:
          """ Update any parameters which are not fixed and have been changed.
  
 
</s> remove         priors = ["dssim_loss", "mask_type", "mask_type", "l2_reg_term"]
        new_items = ["loss_function", "learn_mask", "mask_type", "loss_function_2"]
 </s> add         priors = ["dssim_loss", "mask_type", "mask_type", "l2_reg_term", "clipnorm"]
        new_items = ["loss_function", "learn_mask", "mask_type", "loss_function_2",
                     "autoclip"] </s> remove                    clipnorm: bool,
                   mixed_precision: bool,
                   arguments: "Namespace") -> None:
 </s> add                    autoclip: bool) -> None: </s> remove         if clipnorm and (arguments.distributed or mixed_precision):
            logger.warning("Clipnorm has been selected, but is unsupported when using distributed "
                           "or mixed_precision training, so has been disabled. If you wish to "
                           "enable clipnorm, then you must disable these other options.")
            clipnorm = False
        if clipnorm and get_backend() == "amd":
            # TODO add clipnorm in for plaidML when it is fixed upstream. Still not fixed in
            # release 0.7.0.
            logger.warning("Due to a bug in plaidML, clipnorm cannot be used on AMD backends so "
                           "has been disabled")
            clipnorm = False
        if clipnorm:
            self._kwargs["clipnorm"] = 1.0
 </s> add         if not autoclip:
            return </s> remove                  clipnorm: bool,
                 epsilon: float,
                 mixed_precision: bool,
                 arguments: "Namespace") -> None:
        logger.debug("Initializing %s: (optimizer: %s, learning_rate: %s, clipnorm: %s, "
                     "epsilon: %s, mixed_precision: %s, arguments: %s)", self.__class__.__name__,
                     optimizer, learning_rate, clipnorm, epsilon, mixed_precision, arguments)
 </s> add                  autoclip: bool,
                 epsilon: float) -> None:
        logger.debug("Initializing %s: (optimizer: %s, learning_rate: %s, autoclip: %s, "
                     ", epsilon: %s)", self.__class__.__name__, optimizer, learning_rate,
                     autoclip, epsilon)
            # Replace clipnorm with correct gradient clipping type and value
            if old == "clipnorm":
                self._config[new] = self._config[old]
                del self._config[old]
                updated = True
                logger.info("Updated config from legacy '%s' to '%s'", old, new)

                  logger.info("Updated config from legacy 'l2_reg_term' to 'loss_function_2'")
  
            # Replace clipnorm with correct gradient clipping type and value
            if old == "clipnorm":
                self._config[new] = self._config[old]
                del self._config[old]
                updated = True
                logger.info("Updated config from legacy '%s' to '%s'", old, new)

          logger.debug("State file updated for legacy config: %s", updated)
          return updated
  
      def _update_changed_config_items(self, config_changeable_items: dict) -> None:
          """ Update any parameters which are not fixed and have been changed.
  
keep add keep keep keep keep keep keep
 Nvidia: Add AutoClip training option 
plugins/train/model/_base/model.py