目录
一、模型结构
1.1 Conv1阶段DFD
输入图像:227*227*3
Conv1:卷积核大小11*11*3,卷积核数量96,卷积步长4,不填充
经过卷积:55*55*96【(227-11)/4+1=55】
Relu1:激活层 55*55*96
Pool1:池化层 27*27*96
Norm1:归一化
输出: 27*27*96
Tips:
第一卷积层运算结束后形成的像素层的规模为27*27*96。分别对应96个卷积核所运算形成。这96层像素层分为2组,每组48个像素层,每组在一个独立的GPU上进行运算。
反向传播时,每个卷积核对应一个偏差值。即第一层的96个卷积核对应上层输入的96个偏差值
1.2 Conv2阶段DFD
输入图像:27*27*96
Conv2:27*27*96的像素数据分成27*27*48的两组像素数据,卷积核大小5*5*48,数量为256,分为两组,填充2
经过卷积:两组27*27*128个卷积后的像素层【(27-5+2*2)/1+1=27】
Relu2:激活层 两组27*27*128的像素层
Pool2:池化层 两组13*13*128的像素层
Norm2:归一化运算的尺度为5*5
输出:第二卷积层运算结束后形成的像素层的规模为2组13*13*128的像素层
1.3 Conv3阶段DFD
1.4 Conv4阶段DFD
1.5 Conv5阶段DFD
输入数据:2组13*13*192的像素层
Conv5:每个GPU中共13*13*128个卷积核,两个GPU中共13*13*256个卷积后的像素层
经过卷积:两组13*13*128的像素层【(13-3+1*2)/1+1=13】
Relu5:激活层,两组13*13*128像素层,共13*13*256个像素层。
Pool:两组6*6*128的像素层数据
1.6 Fc6阶段DFD
输入数据:6*6*256
滤波器:6*6*256尺寸,数量4096
经过卷积:4096个运算结果
Relu6:4096
Drop:4096
Tips:
由于第六层的运算过程中,采用的滤波器的尺寸与输入数据(待处理的feature map)的尺寸相同,即滤波器中的每个系数只与feature map中的一个像素值相乘,而其它卷积层中,每个滤波器的系数都会与多个feature map中像素值相乘
因此,将第六层称为全连接层
第五层输出的6*6*256规模的像素层数据与第六层的4096个神经元进行全连接,然后经由relu6进行处理后生成4096个数据,再经过dropout6处理后输出4096个数据。
1.7 Fc7阶段DFD
第六层输出的4096个数据与第七层的4096个神经元进行全连接,然后经由relu7进行处理后生成4096个数据,再经过dropout7处理后输出4096个数据。
1.8 Fc8阶段DFD
第七层输出的4096个数据与第八层的1000个神经元进行全连接,经过训练后输出被训练的数值。
二、模型理解
2.1 为什么使用卷积神经网络
2.1.1 什么是神经元
神经网络由大量的神经元相互连接而成。每个神经元接受线性组合的输入后,最开始只是简单的线性加权,后来给每个神经元加上了非线性的激活函数,从而进行非线性变换后输出。每两个神经元之间的连接代表加权值,称之为权重(weight)。不同的权重和激活函数,则会导致神经网络不同的输出。
神经网络的每个神经元如下,可以看做是一个对数据处理的过程——对数据进行线性加权、非线性激活的过程。
2.1.2 什么是神经网络
将下图的这种单个神经元