1.卷积核和图片执行互相关运算,图片为(a,b),核为(k,l),则输出图片为(a-k+1,b-l+1),相当于核全部扫描一遍图片,每次一个局部,之后产生对应于检测某种特征的权重矩阵(比如黑白分界特征)。一般训练集会给出希望得到的特征分类,比如垂直边缘矩阵等,然后给出预期的卷积核模样,之后我们进行多次训练,然后随着损失减小,卷积核(权重矩阵)会越来越接近预期矩阵。
2.卷积层每层前向传播计算公式与全连接类似,corr2d对一个二维矩阵扫面运算得到一个输出
corr2d(x, self.weight) + self.bias
3.类定义的初始化只在第一次引用时进行,即只进行一次。注意:初始化过程对self.weight等需要修改为parameter类型
self.weight = nn.Parameter(torch.rand(kernel_size))
4.直接conv2d.weight引用的时parameter类型,.data后则是tensor类型,才可以切片赋值。
5.卷积层没有优化器也没有损失函数,所有反向求导梯度会储存在卷积层本身,所以全连接层对trainer.zero_grad()(trainer中存储梯度),而这里对卷积层。
6.感受野:输入数据对该各自数据有影响的部分,层越多,感受野随着层数叠加会越广。