PyTorch 实现的 VGG 神经网络模型各层详细分析及参数个数
VGG 模型是一种经典的卷积神经网络模型,它由多个卷积层和全连接层组成。下面是 VGG 模型的各层详细分析以及各层参数个数。
-
输入层:接受输入图像的像素值。
-
卷积层1-1:使用 3x3 的卷积核进行卷积操作,输出通道数为 64,步长为 1,padding 为 1。
-
卷积层1-2:同样使用 3x3 的卷积核进行卷积操作,输出通道数为 64,步长为 1,padding 为 1。
-
最大池化层1:使用 2x2 的池化核进行最大池化操作,步长为 2。
-
卷积层2-1:使用 3x3 的卷积核进行卷积操作,输出通道数为 128,步长为 1,padding 为 1。
-
卷积层2-2:同样使用 3x3 的卷积核进行卷积操作,输出通道数为 128,步长为 1,padding 为 1。
-
最大池化层2:使用 2x2 的池化核进行最大池化操作,步长为 2。
-
卷积层3-1:使用 3x3 的卷积核进行卷积操作,输出通道数为 256,步长为 1,padding 为 1。
-
卷积层3-2:同样使用 3x3 的卷积核进行卷积操作,输出通道数为 256,步长为 1,padding 为 1。
-
卷积层3-3:同样使用 3x3 的卷积核进行卷积操作,输出通道数为 256,步长为 1,padding 为 1。
-
最大池化层3:使用 2x2 的池化核进行最大池化操作,步长为 2。
-
卷积层4-1:使用 3x3 的卷积核进行卷积操作,输出通道数为 512,步长为 1,padding 为 1。
-
卷积层4-2:同样使用 3x3 的卷积核进行卷积操作,输出通道数为 512,步长为 1,padding 为 1。
-
卷积层4-3:同样使用 3x3 的卷积核进行卷积操作,输出通道数为 512,步长为 1,padding 为 1。
-
最大池化层4:使用 2x2 的池化核进行最大池化操作,步长为 2。
-
卷积层5-1:使用 3x3 的卷积核进行卷积操作,输出通道数为 512,步长为 1,padding 为 1。
-
卷积层5-2:同样使用 3x3 的卷积核进行卷积操作,输出通道数为 512,步长为 1,padding 为 1。
-
卷积层5-3:同样使用 3x3 的卷积核进行卷积操作,输出通道数为 512,步长为 1,padding 为 1。
-
最大池化层5:使用 2x2 的池化核进行最大池化操作,步长为 2。
-
全连接层1:将卷积层的输出展平为一维向量,并连接到全连接层。该全连接层有 4096 个神经元。
-
全连接层2:有 4096 个神经元。
-
输出层:根据任务的要求,输出对应类别的概率。
VGG 模型中的参数个数主要是卷积层和全连接层中的权重和偏置项的个数之和。具体计算方法为:每个卷积核的大小为(n x m x l),其中 n、m 为卷积核的高度和宽度,l 为输入通道数;每个卷积核对应一个偏置项;每个全连接层的权重个数为前一层的神经元个数乘以当前层的神经元个数,同时还有每个神经元对应一个偏置项。
以 VGG16 为例,它有 13 个卷积层和 3 个全连接层。其中,前 13 个卷积层中每层有 2 个卷积核,最后 3 个全连接层分别有 4096、4096 和 1000 个神经元。
计算参数个数的公式为:
参数个数 = (卷积核大小 x 输入通道数 + 1) x 卷积核个数
以下是 VGG16 模型各层的参数个数:
-
卷积层1-1:(3 x 3 x 3 + 1) x 64 = 1792
-
卷积层1-2:(3 x 3 x 64 + 1) x 64 = 36928
-
卷积层2-1:(3 x 3 x 64 + 1) x 128 = 73856
-
卷积层2-2:(3 x 3 x 128 + 1) x 128 = 147584
-
卷积层3-1:(3 x 3 x 128 + 1) x 256 = 295168
-
卷积层3-2:(3 x 3 x 256 + 1) x 256 = 590080
-
卷积层3-3:(3 x 3 x 256 + 1) x 256 = 590080
-
卷积层4-1:(3 x 3 x 256 + 1) x 512 = 1180160
-
卷积层4-2:(3 x 3 x 512 + 1) x 512 = 2359808
-
卷积层4-3:(3 x 3 x 512 + 1) x 512 = 2359808
-
卷积层5-1:(3 x 3 x 512 + 1) x 512 = 2359808
-
卷积层5-2:(3 x 3 x 512 + 1) x 512 = 2359808
-
卷积层5-3:(3 x 3 x 512 + 1) x 512 = 2359808
-
全连接层1:(7 x 7 x 512 + 1) x 4096 = 102764544
-
全连接层2:(4096 + 1) x 4096 = 16781312
-
输出层:(4096 + 1) x 1000 = 4097000
总参数个数 = 138,357,544
原文地址: https://www.cveoy.top/t/topic/b7Qb 著作权归作者所有。请勿转载和采集!