value of "full_optim_state_dict()".
  Example:

     >>> from torch.distributed.fsdp import FullyShardedDataParallel as FSDP
     >>> model, optim = ...
     >>> full_osd = FSDP.full_optim_state_dict(model, optim)
     >>> torch.save(full_osd, PATH)
     >>> # Define new model with possibly different world size
     >>> new_model, new_optim = ...
     >>> full_osd = torch.load(PATH)
     >>> sharded_osd = FSDP.shard_full_optim_state_dict(full_osd, new_model)
     >>> new_optim.load_state_dict(sharded_osd)

  Note:

    Both "shard_full_optim_state_dict()" and
    "scatter_full_optim_state_dict()" may be used to get the
    sharded optimizer state dict to load. Assuming that the full
    optimizer state dict resides in CPU memory, the former
    requires each rank to have the full dict in CPU memory, where
    each rank individually shards the dict without any
    communication, while the latter requires only rank 0 to have
