Caffe模块包含4个部分:
Blob:Caffe中数据的封装,用于layer上流动
Layer:输入层,输出层,神经网络层的抽象
Net:神经网络结构,将layer层叠关联起来
Solver:定义神经网络训练和测试参数
Blob
为四维连续数组(n,k,w,h)是基础的数据结构(minibatch,channnel,wide,height)
可表示输入输出数据,也可表示参数数据
Layer:网络基本单元,每一层类型定义了三种计算
。。初始化网络参数
。。前向传播
。。后向传播
Net为无回路有向图
初始化函数中,1. 创建blobs和layers 2.调用layers的setup函数来初始化layers
Forward和Backward
Solver
…创建训练网络和测试网络
周期性的测试网络
调用前向和反向函数进行的迭代优化和参数更新
solver每轮迭代都会通过前向函数计算输出和损失,还用反向传播来计算梯度
caffe model
…caffemodel后缀
。solverstate后缀