




"""simple docstring"""



import numpy as np
from PIL import Image







def   _SCREAMING_SNAKE_CASE       (							lowercase_      ,			lowercase_      ,			lowercase_						)						->		np.ndarray:
 A__	=    np.array(lowercase_						)
 if arr.shape[0] != arr.shape[1]:
  raise ValueError("The input array is not a square matrix"						)
 A__	=    0
 A__	=    0
 A__	=    0
 A__	=    0

 # compute the shape of the output matrix
 A__	=    (arr.shape[0] - size) // stride + 1
 # initialize the output matrix with zeros of shape maxpool_shape
 A__	=    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
   A__	=    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
  A__	=    0
  A__	=    0

 return updated_arr







def   _SCREAMING_SNAKE_CASE       (							lowercase_      ,			lowercase_      ,			lowercase_						)						->		np.ndarray:
 A__	=    np.array(lowercase_						)
 if arr.shape[0] != arr.shape[1]:
  raise ValueError("The input array is not a square matrix"						)
 A__	=    0
 A__	=    0
 A__	=    0
 A__	=    0

 # compute the shape of the output matrix
 A__	=    (arr.shape[0] - size) // stride + 1
 # initialize the output matrix with zeros of shape avgpool_shape
 A__	=    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
   A__	=    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
  A__	=    0
  A__	=    0

 return updated_arr


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

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

      # Loading the image
      SCREAMING_SNAKE_CASE    =	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"""



SCREAMING_SNAKE_CASE    =	"\n# Transformers installation\n! pip install transformers datasets\n# To install from source instead of the last release, comment the command above and uncomment the following one.\n# ! pip install git+https://github.com/huggingface/transformers.git\n"

SCREAMING_SNAKE_CASE    =	[{"type": "code", "content": INSTALL_CONTENT}]
SCREAMING_SNAKE_CASE    =	{
    "{processor_class}": "FakeProcessorClass",
    "{model_class}": "FakeModelClass",
    "{object_class}": "FakeObjectClass",
}





