docstr: Test handling of model with unused params by gather_full_optim_state_dict()
docstr_tok: ["Test","handling","of","model","with","unused","params","by","gather_full_optim_state_dict","(",")"]
code: def test_model_with_unused_params(self, wrap_l2):
      """Test handling of model with unused params by gather_full_optim_state_dict()"""
      test_fn = functools.partial(
          self._test_model_with_unused_params, wrap_l2=wrap_l2
      )
      spawn_and_init(test_fn, world_sizes=[2])
  
imports: import copy
  import functools
  from time import time
  import unittest
  from parameterized import parameterized
  import torch
  from torch import nn
  from torch.optim import SGD, Adadelta, Adam
  from fairscale.fair_dev.testing.testing import dist_init, objects_are_equal, spawn_for_all_world_sizes
  from fairscale.internal.params import recursive_copy_to_device
  from fairscale.nn.data_parallel import FullyShardedDataParallel, get_fsdp_instances
  from fairscale.nn.data_parallel.fsdp_optim_utils import is_singleton_tensor
  from .test_fsdp import DistributedTest, DummyProcessGroup, MixtureOfExperts, TransformerWithSharedParams, rename_test, spawn_and_init
label_desc: Use image node_id 4 for calling the TestOptimizerUtils obj's underlying member method code with example usage: obj.test_model_with_unused_params(wrap_l2) without return types