
"""simple docstring"""



import numpy as np
from PIL import Image
def 					lowerCamelCase   (     _snake_case    ,_snake_case    ,_snake_case ):
    UpperCAmelCase__	:      Tuple     							=					np.array(_snake_case )
    if arr.shape[0] != arr.shape[1]:
        raise ValueError('The input array is not a square matrix' )
    UpperCAmelCase__	:      Optional[int]     							=					0
    UpperCAmelCase__	:      Any     							=					0
    UpperCAmelCase__	:      List[str]     							=					0
    UpperCAmelCase__	:      Optional[int]     							=					0

    # compute the shape of the output matrix
    UpperCAmelCase__	:      Optional[Any]     							=					(arr.shape[0] - size) // stride + 1
    # initialize the output matrix with zeros of shape maxpool_shape
    UpperCAmelCase__	:      Optional[Any]     							=					np.zeros((maxpool_shape, maxpool_shape) )

    while i < arr.shape[0]:
        if i + size > arr.shape[0]:
            # if the end of the matrix is reached, break
            break
        while j < arr.shape[1]:
            # if the end of the matrix is reached, break
            if j + size > arr.shape[1]:
                break
            # compute the maximum of the pooling matrix
            UpperCAmelCase__	:      Optional[Any]     							=					np.max(arr[i : i + size, j : j + size] )
            # shift the pooling matrix by stride of column pixels
            j += stride
            mat_j += 1

        # shift the pooling matrix by stride of row pixels
        i += stride
        mat_i += 1

        # reset the column index to 0
        UpperCAmelCase__	:      int     							=					0
        UpperCAmelCase__	:      Union[str, Any]     							=					0

    return updated_arr
def 					lowerCamelCase   (     _snake_case    ,_snake_case    ,_snake_case ):
    UpperCAmelCase__	:      Union[str, Any]     							=					np.array(_snake_case )
    if arr.shape[0] != arr.shape[1]:
        raise ValueError('The input array is not a square matrix' )
    UpperCAmelCase__	:      Dict     							=					0
    UpperCAmelCase__	:      str     							=					0
    UpperCAmelCase__	:      Optional[Any]     							=					0
    UpperCAmelCase__	:      List[str]     							=					0

    # compute the shape of the output matrix
    UpperCAmelCase__	:      Any     							=					(arr.shape[0] - size) // stride + 1
    # initialize the output matrix with zeros of shape avgpool_shape
    UpperCAmelCase__	:      Union[str, Any]     							=					np.zeros((avgpool_shape, avgpool_shape) )

    while i < arr.shape[0]:
        # if the end of the matrix is reached, break
        if i + size > arr.shape[0]:
            break
        while j < arr.shape[1]:
            # if the end of the matrix is reached, break
            if j + size > arr.shape[1]:
                break
            # compute the average of the pooling matrix
            UpperCAmelCase__	:      Dict     							=					int(np.average(arr[i : i + size, j : j + size] ) )
            # shift the pooling matrix by stride of column pixels
            j += stride
            mat_j += 1

        # shift the pooling matrix by stride of row pixels
        i += stride
        mat_i += 1
        # reset the column index to 0
        UpperCAmelCase__	:      Any     							=					0
        UpperCAmelCase__	:      List[str]     							=					0

    return updated_arr


# Main Function
if __name__ == "__main__":
    from doctest import testmod

    testmod(name='avgpooling', verbose=True)

    # Loading the image
    UpperCamelCase__          =	Image.open('path_to_image')

    # Converting the image to numpy array and maxpooling, displaying the result
    # Ensure that the image is a square matrix

    Image.fromarray(maxpooling(np.array(image), size=3, stride=2)).show()

    # Converting the image to numpy array and averagepooling, displaying the result
    # Ensure that the image is a square matrix

    Image.fromarray(avgpooling(np.array(image), size=3, stride=2)).show()



"""simple docstring"""



import argparse

import torch
from torch import nn

from transformers import MaMaaaConfig, MaMaaaForConditionalGeneration
def 					lowerCamelCase   (     _snake_case ):
    UpperCAmelCase__	:      int     							=					[
        'encoder.version',
        'decoder.version',
        'model.encoder.version',
        'model.decoder.version',
        'decoder.output_projection.weight',
        '_float_tensor',
        'encoder.embed_positions._float_tensor',
        'decoder.embed_positions._float_tensor',
    ]
    for k in ignore_keys:
        state_dict.pop(_snake_case    ,_snake_case )
def 					lowerCamelCase   (     _snake_case ):
    UpperCAmelCase__							,							UpperCAmelCase__	:      Optional[Any]     							=					emb.weight.shape
    UpperCAmelCase__	:      List[str]     							=					nn.Linear(_snake_case    ,_snake_case    ,bias=_snake_case )
    UpperCAmelCase__	:      Any     							=					emb.weight.data
    return lin_layer
def 					lowerCamelCase   (     _snake_case ):
    UpperCAmelCase__	:      Optional[int]     							=					torch.load(_snake_case    ,map_location='cpu' )
    UpperCAmelCase__	:      Any     							=					mam_aaa['args'] or mam_aaa['cfg']['model']
    UpperCAmelCase__	:      Optional[int]     							=					mam_aaa['model']
    remove_ignore_keys_(_snake_case )
    UpperCAmelCase__	:      Optional[int]     							=					state_dict['encoder.embed_tokens.weight'].shape[0]

    UpperCAmelCase__	:      List[str]     							=					MaMaaaConfig(
        vocab_size=_snake_case    ,max_position_embeddings=1024    ,encoder_layers=args.encoder_layers    ,decoder_layers=args.decoder_layers    ,encoder_attention_heads=args.encoder_attention_heads    ,decoder_attention_heads=args.decoder_attention_heads    ,encoder_ffn_dim=args.encoder_ffn_embed_dim    ,decoder_ffn_dim=args.decoder_ffn_embed_dim    ,d_model=args.encoder_embed_dim    ,encoder_layerdrop=args.encoder_layerdrop    ,decoder_layerdrop=args.decoder_layerdrop    ,dropout=args.dropout    ,attention_dropout=args.attention_dropout    ,activation_dropout=args.activation_dropout    ,activation_function='relu'    ,)

    UpperCAmelCase__	:      Optional[int]     							=					state_dict['decoder.embed_tokens.weight']
    UpperCAmelCase__	:      Union[str, Any]     							=					MaMaaaForConditionalGeneration(_snake_case )
    model.model.load_state_dict(_snake_case    ,strict=_snake_case )
    UpperCAmelCase__	:      Optional[Any]     							=					make_linear_from_emb(model.model.shared )

    return model


if __name__ == "__main__":
    UpperCamelCase__          =	argparse.ArgumentParser()
    # Required parameters
    parser.add_argument('fairseq_path', type=str, help='path to a model.pt on local filesystem.')
    parser.add_argument('pytorch_dump_folder_path', default=None, type=str, help='Path to the output PyTorch model.')
    UpperCamelCase__          =	parser.parse_args()
    UpperCamelCase__          =	convert_fairseq_mamaaa_checkpoint_from_disk(args.fairseq_pathß)
    model.save_pretrained(args.pytorch_dump_folder_path)

