code: def _register_linears_optimization(self, evaluator: Evaluator):
      linear_params = {}
      for module_name, linears in self.trans_linears.items():
          for _, linear in linears.items():
              if linear is not None:
                  linear_params[module_name] = list(linear.parameters())
  
      if not linear_params:
          return
  
      evaluator.patch_optim_param_group(linear_params)
  
imports: from __future__ import annotations
  from collections import defaultdict
  import logging
  from typing import Any, Callable, Dict, List, overload
  import torch
  import torch.nn.functional
  from torch.utils._pytree import tree_map
  from ..base.compressor import Compressor, Distiller, _DISTILLATION_TARGET_SPACES
  from ..base.wrapper import ModuleWrapper, register_wrappers
  from ..utils import Evaluator, _EVALUATOR_DOCSTRING
label_desc: Use image node_id 3 for calling the Adaptive1dLayerwiseDistiller obj's underlying member method code with example usage: obj._register_linears_optimization(evaluator) without return types