code: def get_detr_optimizer(config):
      """Makes a Flax MultiOptimizer for DETR."""
      other_optim = scenic_optimizers.get_optimizer(config)
  
      if config.get("backbone_training"):
          backbone_optim = scenic_optimizers.get_optimizer(
              config.backbone_training
          )
      else:
          backbone_optim = other_optim
  
      def is_bn(path):
          # For DETR we need to skip the BN affine transforms as well.
          names = ["/bn1/", "/bn2/", "/bn3/", "/init_bn/", "/proj_bn/"]
          for s in names:
              if s in path:
                  return True
          return False
  
      backbone_traversal = optimizers.ModelParamTraversal(
          lambda path, param: ("backbone" in path) and (not is_bn(path))
      )
      other_traversal = optimizers.ModelParamTraversal(
          lambda path, param: "backbone" not in path
      )
  
      return MultiOptimizerWithLogging(
          (backbone_traversal, backbone_optim),
          (other_traversal, other_optim),
      )
  
imports: import copy
  import json
  import os
  from typing import Any, Dict, Optional, Set
  from absl import logging
  from flax import core
  from flax import optim
  from flax import traverse_util
  import jax
  from jax.example_libraries import optimizers
  import jax.numpy
  import numpy
  import PIL
  import PIL.ImageDraw
  import PIL.ImageFont
  from scenic.common_lib import image_utils
  from scenic.dataset_lib.coco_dataset import coco_eval
  from scenic.model_lib.base_models import box_utils
  from scenic.train_lib_deprecated import optimizers
  from scenic.train_lib_deprecated import train_utils
  import scipy.special
  import tensorflow
label_desc: Use image node_id 5 for calling a global function with example usage: get_detr_optimizer(config) and returns: MultiOptimizerWithLogging, False, True