层(layer)是网络(Net)组成的基本单位,表示对此层输入数据(上层的输出)的运算,比如Convolution、Pooling、Softmax等运算。
Layer层会对输入数据(上一层的输出数据)进行对应(layer type指定运算类型)运算,然后输出结果到下一层。至少包括一个输入层(Bottom layer)或一个输出层(Top layer),部分带有参数,比如权值(Weight)和偏置(Bias),有2个运算方向:前向传播(Forward)和反向传播(Backward)。
src/caffe/proto/caffe.proto
主要是各个layer的属性和配置,比如名称、(运算)类型、(运算)参数等
message LayerParameter {
optional string name = 1; // layer名称
optional string type = 2; // 运算类型
repeated string bottom = 3; // bottom层名称
repeated string top = 4; // top层名称
// The train / test phase for computation.
optional Phase phase = 10; //当前阶段训练或者测试
// The amount of weight to assign each top blob in the objective.
// Each layer assigns a default value, usually of either 0 or 1,