code: def on_train_start(
      self, trainer: "pl.Trainer", pl_module: "pl.LightningModule"
  ) -> None:
      model_weights = extract_weights(pl_module)
      self.ema_weights = extract_ema_weights(pl_module, trainer)
      for x, y in zip(model_weights, self.ema_weights):
          assert torch.allclose(x, y)
  
imports: import os.path
  from typing import Any, Dict, Union
  import pytest
  import pytorch_lightning
  import torch
  from omegaconf import DictConfig, OmegaConf
  from pytorch_lightning import Callback, Trainer
  from pytorch_lightning.utilities.exceptions import MisconfigurationException
  from pytorch_lightning.utilities.types import STEP_OUTPUT
  from nemo.collections.common.callbacks import EMA
  from nemo.collections.common.callbacks.ema import EMAOptimizer
  from nemo.core import ModelPT
  from nemo.utils.exp_manager import exp_manager
label_desc: Use image node_id 1 for calling the EMAAssertCallback obj's underlying member method code with example usage: obj.on_train_start(trainer, pl_module) without return types