在Dense
层中,一般操作都是把一个tensor降维到目标的预测结果,比如说:
tensor是[28,1,28,28] #[batch,inchannel,heigth,width]
先被reshape成[28,784] #[batch,channel]
接着在二分类中会被降维成[28,2] #[batch,outchannel]
具体的操作方法在pytorch中的实现是:
data.reshape(-1, 1*28*28)
dense1 = nn.Linear(in_features=784, out_features=392)
dense2 = nn.Linear(in_features=392, out_features=196)
dense3 = nn.Linear(in_features=196, out_features=2)
参数权重:
比如来的数据是[28,1,28,28]到Dense
层中 #[batch,inchannel,heigth,width]
那会被reshape成[28,784]. (也就是拉成一行,这样才能在线性层中预测)
而dense1
网络参数权重就是[392 x 784] #[outchannel * inchannel]
同理,dense2
是[196 x 392]
dense3
是[2 x 196]
可以参考下图理解:
在这张图中,目的是把一个4维的tensor降维成3维
输入是一个[1*4],经过一个【outchannel * inchannel】大小的权重矩阵做矩阵乘法,就降维为3维