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)
    for i in range(len(self.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
Upgrade a (possibly old) state dict for new versions of fairseq.
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)
    for i in range(len(self.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