某医疗诊断公司在进行医疗图像识别的过程中,使用了基于卷积神经网络(CNN)的机器学习模型。其中,卷积层后的最大池化操作是关键步骤之一,它有助于减少模型的计算负担并提取特征的最重要部分。请根据输入描述和输出描述中的要求,编程实现与 CNN 中最大池化操作相关的子功能。
最大池化:最大池化是一种子采样方法,它在卷积操作后进行,用于减少模型的计算负担并提取特征的最重要部分。最大池化操作的步骤是:在卷积后的特征图中,选取一个固定大小的窗口,以固定的步长滑动窗口,并在每个窗口中选取最大的值作为该窗口的输出。
输入第一行是一个 2 维的 list ,用于表示卷积后的特征图,形如 [[1,2,1,2],[3,4,3,4],[1,2,1,2],[3,4,3,4]] ,且所有的 list 组成的都是方阵。
第二行输入是一个 1 维的 list 参数,长度固定为 2 ,形如 [2,2] ,这两个元素分别表示池化窗口的宽度和高度。
返回值为一个 2 维的 list ,表示经过最大池化操作后的特征图。
输入
[[1,2,1,2],[3,4,3,4],[1,2,1,2],[3,4,3,4]]
[2,2]
输出
[[4, 4],[4, 4]]
输入
[[1,3,2,4],[5,7,6,8],[1,3,2,4],[5,7,6,8]]
[3,3]
输出
[[7]]