深度學習caffe數據結構(六)—— layer數據結構描述

        在caffe中,layer數據結構是在caffe根目錄下的src/caffe/proto/caffe.proto文件中描述的,這個文件是對caffe的數據結構進行描述的文件。在文件中,message LayerParameter是對layer進行描述的。在caffe網絡中,包含若干個層,每個層對應一個layer描述結構。下面我們對message LayerParameter中的內容進行解讀。

message LayerParameter {
  optional string name = 1;

//layer的名字,比如在手寫字體實例中,用來訓練的網絡,第一層的名字爲mnist,第二層的名字爲conv1,更詳細的內容可以參考手寫體字體的文章《深度學習caffe--手寫字體識別例程(六)》

  optional string type = 2;

// layer的類型,比如在手寫字體實例中,用來訓練的網絡,第一層的類型爲Data,第二層的類型爲Convolution。

  repeated string bottom = 3;

//輸入Blob的名稱,比如在手寫字體實例中,用來訓練的網絡,第一層沒有輸入Blob,第二層的輸入Blob爲data。

  repeated string top = 4;

//輸出Blob的名稱,比如在手寫字體實例中,用來訓練的網絡,第一層輸出Blob爲data和label,第二層的輸出Blob爲conv1。

  optional Phase phase = 10;

 //當前階段,爲TRAIN或者TEST

  repeated float loss_weight = 5;

//每個輸出Blob的損失權重,每個層會有默認值,爲0或者1,表示不參與目標函數計算或參與算是函數計算。

  repeated ParamSpec param = 6;

//描述訓練參數(例如相對全局學習常數的縮放因子,以及用於權值共享的名稱或其他設置)

  repeated BlobProto blobs = 7;

//該layer包含的所有Blob。

  repeated bool propagate_down = 11;

//定義是否對每一個輸入Blob進行反向傳播計算。

  repeated NetStateRule include = 8;

  repeated NetStateRule exclude = 9;

//控制某個層在某個時刻是否包含在網絡中。基於 NetState,可以爲include或exclude指定非零值。如果不指定,那麼該層一直包含在網絡中。

  optional TransformationParameter transform_param = 100;

數據預處理參數

  optional LossParameter loss_param = 101;

//所有損失層共享的參數

//下面的參數爲特定類型層的參數,需要注意的是,一些層在實現時可能有多餘一種的計算引擎,這些層包括一個引擎類型和引擎參數來選擇實現。默認引擎是在編譯階段由引擎開關設置的。
  optional AccuracyParameter accuracy_param = 102;
  optional ArgMaxParameter argmax_param = 103;
  optional BatchNormParameter batch_norm_param = 139;
  optional BiasParameter bias_param = 141;
  optional ClipParameter clip_param = 148;
  optional ConcatParameter concat_param = 104;
  optional ContrastiveLossParameter contrastive_loss_param = 105;
  optional ConvolutionParameter convolution_param = 106;
  optional CropParameter crop_param = 144;
  optional DataParameter data_param = 107;
  optional DropoutParameter dropout_param = 108;
  optional DummyDataParameter dummy_data_param = 109;
  optional EltwiseParameter eltwise_param = 110;
  optional ELUParameter elu_param = 140;
  optional EmbedParameter embed_param = 137;
  optional ExpParameter exp_param = 111;
  optional FlattenParameter flatten_param = 135;
  optional HDF5DataParameter hdf5_data_param = 112;
  optional HDF5OutputParameter hdf5_output_param = 113;
  optional HingeLossParameter hinge_loss_param = 114;
  optional ImageDataParameter image_data_param = 115;
  optional InfogainLossParameter infogain_loss_param = 116;
  optional InnerProductParameter inner_product_param = 117;
  optional InputParameter input_param = 143;
  optional LogParameter log_param = 134;
  optional LRNParameter lrn_param = 118;
  optional MemoryDataParameter memory_data_param = 119;
  optional MVNParameter mvn_param = 120;
  optional ParameterParameter parameter_param = 145;
  optional PoolingParameter pooling_param = 121;
  optional PowerParameter power_param = 122;
  optional PReLUParameter prelu_param = 131;
  optional PythonParameter python_param = 130;
  optional RecurrentParameter recurrent_param = 146;
  optional ReductionParameter reduction_param = 136;
  optional ReLUParameter relu_param = 123;
  optional ReshapeParameter reshape_param = 133;
  optional ScaleParameter scale_param = 142;
  optional SigmoidParameter sigmoid_param = 124;
  optional SoftmaxParameter softmax_param = 125;
  optional SPPParameter spp_param = 132;
  optional SliceParameter slice_param = 126;
  optional SwishParameter swish_param = 147;
  optional TanHParameter tanh_param = 127;
  optional ThresholdParameter threshold_param = 128;
  optional TileParameter tile_param = 138;
  optional WindowDataParameter window_data_param = 129;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章