全连接层的一些理解
结合pytorch
对于CNN的全连接层,有两种理解方式。
1.非扁平化理解
若要求全连接层输出为1024
对于最后一层卷积的输出(14x14x128),用一个14x14x128x1024的卷积层去卷积激活函数的输出
2.扁平化理解(在pytorch的实际实现方法)
在pytorch中,利用
x = x.view(-1, 14*14*128)
对输入张量进行扁平化处理,即将128个14x14的feature maps转化为1x(14x14x128)的二维张量,作为全连接层输入。14x14x128=25008。
25008个输入作为X,X=[x1,x2,…,x25008],W是输入到输出的转化参数,是二维的,一个维度对应输入的个数(x的数量,共有25008),以完成对x的一一对应相乘。另一个维度对应输出个数,假设这里输出要求为1024个。W中的25008即与非扁平化理解中的三维卷积核14x14x128对应,共有1024个这样的卷积核,对应输出1024。