手动计算深度学习模型中的参数数量
我们为什么需要计算DL模型中的参数数量?
More deserve to learn about Efficient Methods and Hardware for DL.
本来呢,代码也可以帮你计算你在模型中所使用的这些trainable parameters of DL models.但是在初期知道如何去计算这些参数对于理解非常有用。
关于以下两类神经网络中的模型参数的计算。
- FFNN
- CNN
Reference:
Jargons
假设我们的FFNN(aka FCNN :fully feedfoward neural network/fully connected neural network).
FFNN
可以想象一下,FFNN是怎么计算的?
对于下面这个简单的有5个units 在1个hidden layer中的模型:
一个hiddenUnit的输入是什么呢?是来自于3个weight$\times$input的和,再加上一个额外的偏置。
5个hiddenUnit都收,所以需要5$\times$3+bias(5个)
- 由输入层input layer的neuron个数:i
- size of hidden layer:h
- 输出层output layer的neuron个数:o
3$\times$5+5(bias)+5$\times$2+2(bias)
50$\times$100+100$\times$1+100+1+1$\times$100+100+100$\times$50+50
CNN中的para怎么计算呢?
CNN 的architecture 是什么样的呢?
- i:输入映射的数量(channel) number of input maps.
- F:filter size(just the length)
- o:how many filters are used.
One filter is applied to every input maps.
i: 1 feature map
Filter3: 大小是2$\times$2.一共3个filter.
由图所示para: 1$\times$2$\times$2$\times$3+bias(3)
3个feature map:
3$\times$2$\times$2+1(bias取决于output neuron的个数)
2$\times$2$\times$2$\times$3+3