开始使用免费开始使用

编写您自己的池化操作

正如我们之前所见,CNN 的参数可能非常多。通常会在神经网络的卷积层之间加入池化层,用更精炼的方式汇总它们的输出,并减少网络下一层的参数量。如果我们希望更快地训练网络,或者可用数据不足以学习大量参数,这会很有帮助。

池化层可以看作是一种特殊的卷积。对于输入中的每个窗口,它都会找到该窗口内的最大像素值,并只传递这个像素。在本练习中,您将基于之前用于编写二维卷积操作的代码,实现您自己的最大池化(max pooling)操作。

本练习是课程的一部分

使用 Keras 进行图像建模

查看课程

练习说明

  • 对输入数组(im)进行索引,选取正确的窗口。
  • 找出该窗口中的最大值。
  • 将其写入输出数组(result)中的相应位置。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Result placeholder
result = np.zeros((im.shape[0]//2, im.shape[1]//2))

# Pooling operation
for ii in range(result.shape[0]):
    for jj in range(result.shape[1]):
        result[ii, jj] = np.max(____)
编辑并运行代码