


"""simple docstring"""







import numpy as np
from PIL import Image




def        UpperCamelCase_	(lowerCAmelCase_  ,						lowerCAmelCase_  ,						lowerCAmelCase_       ):




					'''simple docstring'''


					__SCREAMING_SNAKE_CASE						       =    np.array(lowerCAmelCase_       )
					if arr.shape[0] != arr.shape[1]:
										raise ValueError("The input array is not a square matrix"       )
					__SCREAMING_SNAKE_CASE						       =    0
					__SCREAMING_SNAKE_CASE						       =    0
					__SCREAMING_SNAKE_CASE						       =    0
					__SCREAMING_SNAKE_CASE						       =    0

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

					return updated_arr




def        UpperCamelCase_	(lowerCAmelCase_  ,						lowerCAmelCase_  ,						lowerCAmelCase_       ):




					'''simple docstring'''


					__SCREAMING_SNAKE_CASE						       =    np.array(lowerCAmelCase_       )
					if arr.shape[0] != arr.shape[1]:
										raise ValueError("The input array is not a square matrix"       )
					__SCREAMING_SNAKE_CASE						       =    0
					__SCREAMING_SNAKE_CASE						       =    0
					__SCREAMING_SNAKE_CASE						       =    0
					__SCREAMING_SNAKE_CASE						       =    0

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

					return updated_arr


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

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

		# Loading the image
		a__    :							Optional[int]            =					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"""







from typing import TYPE_CHECKING

from ...utils import _LazyModule


a__    :							Optional[int]            =					{'''tokenization_byt5''': ['''ByT5Tokenizer''']}


if TYPE_CHECKING:
		from .tokenization_byta import ByTaTokenizer
else:
		import sys

		a__    :							Any            =					_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)
