original_docstring: Upgrade a (possibly old) state dict for new versions of fairseq.
docstring: Upgrade a (possibly old) state dict for new versions of fairseq.
docstring_tokens: Upgrade a ( possibly old ) state dict for new versions of fairseq .
code: def upgrade_state_dict_named(self, state_dict, name):
          """Upgrade a (possibly old) state dict for new versions of fairseq."""
          if isinstance(self.embed_positions, SinusoidalPositionalEmbedding):
              weights_key = "{}.embed_positions.weights".format(name)
              if weights_key in state_dict:
                  del state_dict[weights_key]
              state_dict[
                  "{}.embed_positions._float_tensor".format(name)
              ] = torch.FloatTensor(1)
  
          if f"{name}.output_projection.weight" not in state_dict:
              if self.share_input_output_embed:
                  embed_out_key = f"{name}.embed_tokens.weight"
              else:
                  embed_out_key = f"{name}.embed_out"
              if embed_out_key in state_dict:
                  state_dict[f"{name}.output_projection.weight"] = state_dict[
                      embed_out_key
                  ]
                  if not self.share_input_output_embed:
                      del state_dict[embed_out_key]
  
          for i in range(self.num_layers):
              # update layer norms
              layer_norm_map = {
                  "0": "self_attn_layer_norm",
                  "1": "encoder_attn_layer_norm",
                  "2": "final_layer_norm",
              }
              for old, new in layer_norm_map.items():
                  for m in ("weight", "bias"):
                      k = "{}.layers.{}.layer_norms.{}.{}".format(name, i, old, m)
                      if k in state_dict:
                          state_dict[
                              "{}.layers.{}.{}.{}".format(name, i, new, m)
                          ] = state_dict[k]
                          del state_dict[k]
  
          version_key = "{}.version".format(name)
          if utils.item(state_dict.get(version_key, torch.Tensor([1]))[0]) <= 2:
              # earlier checkpoints did not normalize after the stack of layers
              self.layer_norm = None
              self.normalize = False
              state_dict[version_key] = torch.Tensor([1])
  
          return state_dict
code_tokens: def upgrade_state_dict_named ( self , state_dict , name ) : if isinstance ( self . embed_positions , SinusoidalPositionalEmbedding ) : weights_key = "{}.embed_positions.weights" . format ( name ) if weights_key in state_dict : del state_dict [ weights_key ] state_dict [ "{}.embed_positions._float_tensor" . format ( name ) ] = torch . FloatTensor ( 1 ) if f"{name}.output_projection.weight" not in state_dict : if self . share_input_output_embed : embed_out_key = f"{name}.embed_tokens.weight" else : embed_out_key = f"{name}.embed_out" if embed_out_key in state_dict : state_dict [ f"{name}.output_projection.weight" ] = state_dict [ embed_out_key ] if not self . share_input_output_embed : del state_dict [ embed_out_key ] for i in range ( self . num_layers ) : layer_norm_map = { "0" : "self_attn_layer_norm" , "1" : "encoder_attn_layer_norm" , "2" : "final_layer_norm" , } for old , new in layer_norm_map . items ( ) : for m in ( "weight" , "bias" ) : k = "{}.layers.{}.layer_norms.{}.{}" . format ( name , i , old , m ) if k in state_dict : state_dict [ "{}.layers.{}.{}.{}" . format ( name , i , new , m ) ] = state_dict [ k ] del state_dict [ k ] version_key = "{}.version" . format ( name ) if utils . item ( state_dict . get ( version_key , torch . Tensor ( [ 1 ] ) ) [ 0 ] ) <= 2 : self . layer_norm = None self . normalize = False state_dict [ version_key ] = torch . Tensor ( [ 1 ] ) return state_dict
short_docstring: Upgrade a (possibly old) state dict for new versions of fairseq.
short_docstring_tokens: Upgrade a ( possibly old ) state dict for new versions of fairseq .
comment: """Upgrade a (possibly old) state dict for new versions of fairseq."""$SEP$# update layer norms$SEP$# earlier checkpoints did not normalize after the stack of layers