code: def test_multiple_optim_for_params(self) -> None:
      model = nn.Sequential(nn.Linear(10, 10), nn.Linear(10, 10))
      opt_0_kwargs = {"lr": 0.03}
      opt_1_kwargs = {"lr": 0.01}
      opt_0 = torch.optim.SGD(model.parameters(), **opt_0_kwargs)
      opt_1 = torch.optim.SGD(model.parameters(), **opt_1_kwargs)
      model_with_opt_in_bwd = deepcopy(model)
      _apply_optimizer_in_backward(
          torch.optim.SGD,
          model_with_opt_in_bwd.parameters(),
          optimizer_kwargs=opt_0_kwargs,
      )
      _apply_optimizer_in_backward(
          torch.optim.SGD,
          model_with_opt_in_bwd.parameters(),
          optimizer_kwargs=opt_1_kwargs,
      )
      self._run_training_loop_and_validate(
          torch.randn(4, 10),
          [model, model_with_opt_in_bwd],
          [opt_0, opt_1],
      )
  
file_path: pytorch/test/distributed/optim/test_apply_optimizer_in_backward.py
imports: import unittest
  from copy import deepcopy
  import torch
  import torch.nn
  from torch.distributed.optim import _apply_optimizer_in_backward, _get_in_backward_optimizers
label_desc: Use image node_id 6 for calling the ApplyOverlappedOptimizerTest obj's underlying member method code with example usage: obj.test_multiple_optim_for_params() without return types