docstr: Unlike DDP, FSDP works fine even no parameter requires any gradient.
  So we can disable the hack done for DDP.
docstr_tok: ["Unlike","DDP",",","FSDP","works","fine","even","no","parameter","requires","any","gradient",".","So","we","can","disable","the","hack","done","for","DDP","."]
code: def add_dummy_layer(self):
      """
      Unlike DDP, FSDP works fine even no parameter requires any gradient.
      So we can disable the hack done for DDP.
      """
      pass
  
file_path: vissl/vissl/trainer/train_fsdp_task.py
imports: import logging
  from classy_vision.generic.distributed_util import get_cuda_device_index, is_distributed_training_run
  from classy_vision.tasks import register_task
  from fairscale.nn.data_parallel import FullyShardedDataParallel
  from vissl.config import AttrDict
  from vissl.trainer.train_task import SelfSupervisionTask
  from vissl.utils.fsdp_utils import fsdp_wrapper, is_valid_fsdp_model
  from vissl.utils.misc import is_fairscale_sharded_available
label_desc: Use image node_id 3 for calling the SelfSupervisionFSDPTask obj's underlying member method code with example usage: obj.add_dummy_layer() without return types