从零开始搭建卷积神经网络组件
本文是深度学习课程的一次练习,使用 Numpy 实现了 CNN 中卷积层、池化层的前向传播与反向传播。
以下是一个典型卷积层的计算过程:
- 输入张量:\(X \in \mathbb{R}^{M \times N \times D}\)。例:\(D=1\) 时,输入的是 \(M \times N\) 维的灰度图像; \(D=3\) 时,输入的是 \(M \times N\) 维的彩色图像。
- 卷积核:\(W \in \mathbb{R}^{U \times V \times D \times P}\),其中每个切片矩阵 \(W^{d, p} \in \mathbb{R}^{U \times V}\), \(1 \leq d \leq D, 1 \leq p \leq P\)。
- 输出张量: \(Y \times \mathbb{R}^{M^{\prime} \times N^{\prime} \times P}\)。