code: def update_teacher(self, m):
      student_param_list = []
      teacher_param_list = []
      with torch.no_grad():
          for k in self.student.keys():
              for ms, mt in zip(
                  get_fsdp_modules(self.student[k]),
                  get_fsdp_modules(self.teacher[k]),
              ):
                  student_param_list += ms.params
                  teacher_param_list += mt.params
          torch._foreach_mul_(teacher_param_list, m)
          torch._foreach_add_(
              teacher_param_list, student_param_list, alpha=1 - m
          )
  
imports: from functools import partial
  import logging
  import torch
  from torch import nn
  from dinov2.loss import DINOLoss, iBOTPatchLoss, KoLeoLoss
  from dinov2.models import build_model_from_cfg
  from dinov2.layers import DINOHead
  from dinov2.utils.utils import has_batchnorms
  from dinov2.utils.param_groups import get_params_groups_with_decay, fuse_params_groups
  from dinov2.fsdp import get_fsdp_wrapper, ShardedGradScaler, get_fsdp_modules, reshard_fsdp_model
  from dinov2.models.vision_transformer import BlockChunk
label_desc: Use image node_id 6 for calling the SSLMetaArch obj's underlying member method code with example usage: obj.update_teacher(m) without return types