本节推导一下卷积的基础公式,还是先上一张卷积运算的示意图图。
我们知道,一张图片有 3 个维度,分别是长、宽、通道。
这三个维度分别用 3 个字母代替,分别是 H(Height, 对应的是长这一维度), W(Width, 对应的是宽这一维度),C(Channel,对应的是通道这一维度)。
对于一张长宽为 224 x 224 的 RGB 图像,我们可以用以下的方法来表示这种图片的“数据形状”,[H, W, C] = [224, 224, 3]。
这里的 [H, W, C] 是一个3维数组,区别于我们常见的一维数组(也叫向量)和二维数组(也叫矩阵),3 维或更高维的数组,我们称之为张量(英文名为 Tensor)。
Tensor 这个概念很重要,在几乎所有的神经网络推理、训练框架里面,神经网络算法的输入和输出数据都会被叫作 Tensor。
整个神经网络的运行就像是 Tensor 在一层一层的算法之间流动一样,因此有个大名鼎鼎的框架叫做TensorFlow,意为 Tensor 的流动。
每一层算法,在框架内部,都是一个算子(英文名为 Operator,简称 OP)。
有了这些基本概念后,就可以说,一个卷积运算就是一个卷积算子,也就是一个 OP。那么输入的图片是输入 Tensor (input tensor), 卷积核就是这个卷积算