一、Deeplearning-assignment
在本次任务中,我们将学习用numpy实现卷积(CONV)层和池化(POOL)层,由于大多数深度学习工程师不需要关注反向传递的细节,而且卷积网络的反向传递很复杂,所以在本次作业中只讨论关于前向传播的处理细节。
用 python 来实现每个函数,在下次任务用 TensorFlow 中等价的函数构造如下模型:
对于每个前向传播,都有相应的反向传播。因此,每一步前向传播,都会存储一些参数在缓存中。这些参数用于计算反向传播中的梯度。
卷积神经网络
尽管编程框架使得卷积操作易于实现,但它仍然是深度学习中最难理解的概念之一。卷积层将输入转换为不同尺寸的输出:
在实现卷积神经网络之前,首先要实现两个辅助函数:一个用于零填充,另一个用于卷积计算。
零填充
指的是在图像的边缘填充一系列的零点。
上图中,将一个图像(三个通道对应三个RGB值)的每一层RGB矩阵进行padding为2的零填充。
零填充的主要好处如下:
-
它允许你在不缩小宽度和高度的同时使用CONV