Blob
a. BLOB是一个四维存储单元,分别是num,channels,height,width
b. 但对于全连接网络,使用2D blobs (shape (N, D)),然后调用InnerProductLayer
c. 维度根据该层的类型和配置来确定。
layer
a. Setup:Layer的初始化
b. Forward:正向传导计算,根据bottom计算top,调用了Forward_cpu或Forward_gpu来实现
c. Backward:反向传导计算,根据top计算bottom的梯度,其他同上
net
a. Init中,通过创建blob和layer搭建了整个网络框架,以及调用各层的SetUp函数。
b.blobs_ 存放这每一层产生的blobls的中间结果,bottom_vecs_存放每一层的bottom blobs,top_vecs_存放每一层的top blobs
axis
axis指出在预测blob中,哪一维是label轴
反向传导-----BP算法
先获得权重的增量,这个根据BP的原理,等于输入值和残差的乘积加和然后获得偏置bias的增量,这个根据BP的原理,直接等于输出的残差最后是更新输入的残差,这样才能逐层反向传递
Bp算法的基本思想:
BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可接受的程度,或进行到预先设定的学习次数为止。
对Cifar10的测试结果分析
总识别率达到0.7752损失率loss = 0.667168
Cifar10我迭代了四万次发现结果经常把猫认作狗、把狗认作是马,对于汽车,卡车、飞机、鸟、船的识别率正确率都比较高。