Caffeでネットワーク定義する際に、どういったレイヤーが用意されているのかを知っておく必要がある。
(無ければ作る必要があるし)
ということで、一覧表を作ってみる。
レイヤーパラメータ
まずはじめに、直接は関係ありませんが、各レイヤー共通のパラメータは以下の通り。
| 変数名 | 意味 |
|---|---|
| name | レイヤー名 |
| type | レイヤー種類(下表の「type」を指定) |
| bottom | 下層のブロブの名前 |
| top | 上層のブロブの名前 |
| loss_weight | 目的の中の各トップブロブを割り当てるためのウェイトの量 各レイヤーは、各トップブロブにデフォルト値(通常0または1のいずれか)を割り当てます |
| param | トレーニングパラメータ(グローバル学習定数の乗数、およびウェイト共有に使用される名前やその他の設定) |
| blobs | レイヤの数値パラメータを含むブロブ |
| include | 現在のNetStateに基づいて、ネットワークにレイヤーが含まれているかどうかを制御するルール 0以外の数を指定できますが、include/exclude両方に設定することはできません ルールが指定されていない場合、レイヤーは常に含まれます 現在のNetStateが指定されたルールのANY(すなわち、1つまたは複数)を満たす場合、そのレイヤーは包含されます |
| exclude | 現在のNetStateに基づいて、ネットワークにレイヤーが含まれているかどうかを制御するルール 0以外の数を指定できますが、include/exclude両方に設定することはできません ルールが指定されていない場合、レイヤーは常に含まれます 現在のNetStateが指定されたルールのANY(すなわち、1つまたは複数)を満たす場合、そのレイヤーは除外されます |
| phase | 計算のためのトレーニング/テストフェーズ |
| propagate_down | サイズは、0または底部の数と同じでなければなりません |
| ※データはbottomからtopに流れていくので要注意 |
レイヤー種類
レイヤーの種類とパラメータは以下の通り。
| レイヤー名 | type | パラメータ名 | 変数名 |
|---|---|---|---|
| AbsValLayer | AbsVal | ||
| AccuracyLayer | Accuracy | AccuracyParameter | top_k axis ignore_label |
| ArgMaxLayer | ArgMax | ArgMaxParameter | out_max_val top_k axis |
| BaseConvolutionLayer | × | ||
| BaseDataLayer | × | ||
| BasePrefetchingDataLayer | × | ||
| BatchNormLayer | BatchNorm | BatchNormParameter | use_global_stats moving_average_fraction eps |
| BatchReindexLayer | BatchReindex | ||
| BiasLayer | Bias | BiasParameter | axis num_axes filler |
| BNLLLayer | BNLL | ||
| ConcatLayer | Concat | ConcatParameter | concat_dim axis |
| ContrastiveLossLayer | ContrastiveLoss | ContrastiveLossParameter | margin legacy_version |
| ConvolutionLayer | Convolution | ConvolutionParameter | num_output bias_term pad kernel_size group stride weight_filler bias_filler pad_h pad_w kernel_h kernel_w stride_h stride_w engine axis force_nd_im2col |
| CropLayer | Crop | CropParameter | axis offset |
| CuDNNConvolutionLayer | × | ||
| CuDNNLCNLayer | × | ||
| CuDNNLRNLayer | × | ||
| CuDNNPoolingLayer | × | ||
| CuDNNReLULayer | × | ||
| CuDNNSigmoidLayer | × | ||
| CuDNNSoftmaxLayer | × | ||
| CuDNNTanHLayer | × | ||
| DataLayer | Data | DataParameter | source scale mean_file batch_size crop_size mirror rand_skip backend force_encoded_color prefetch |
| DeconvolutionLayer | Deconvolution | ||
| DropoutLayer | Dropout | DropoutParameter | dropout_ratio |
| DummyDataLayer | DummyData | DummyDataParameter | data_filler num channels height width shape |
| EltwiseLayer | Eltwise | EltwiseParameter | operation coeff stable_prod_grad |
| ELULayer | ELU | ELUParameter | alpha |
| EmbedLayer | Embed | EmbedParameter | num_output input_dim bias_term weight_filler bias_filler |
| EuclideanLossLayer | EuclideanLoss | ||
| ExpLayer | Exp | ExpParameter | base scale shift |
| FilterLayer | Filter | ||
| FlattenLayer | Flatten | FlattenParameter | axis end_axis |
| HDF5DataLayer | HDF5Data | HDF5DataParameter | source batch_size shuffle |
| HDF5OutputLayer | HDF5Output | HDF5OutputParameter | file_name |
| HingeLossLayer | HingeLoss | HingeLossParameter | norm |
| Im2colLayer | Im2col | ||
| ImageDataLayer | ImageData | ImageDataParameter | source scale mean_file batch_size crop_size mirror rand_skip shuffle new_height new_width is_color root_folder |
| InfogainLossLayer | InfogainLoss | InfogainLossParameter | source |
| InnerProductLayer | InnerProduct | InnerProductParameter | num_output bias_term weight_filler bias_filler axis transpose |
| InputLayer | Input | InputParameter | shape |
| LogLayer | Log | LogParameter | base scale shift |
| LossLayer | × | ||
| LRNLayer | LRN | LRNParameter | local_size alpha beta norm_region k engine |
| LSTMLayer | LSTM | ||
| LSTMUnitLayer | LSTMUnit | ||
| MemoryDataLayer | MemoryData | MemoryDataParameter | batch_size channels height width |
| MultinomialLogisticLossLayer | MultinomialLogisticLoss | ||
| MVNLayer | MVN | MVNParameter | normalize_variance across_channels eps |
| NeuronLayer | × | ||
| ParameterLayer | Parameter | ParameterParameter | shape |
| PoolingLayer | Pooling | PoolingParameter | pool kernel_size stride pad kernel_h kernel_w stride_h stride_w pad_h pad_w engine global_pooling |
| PowerLayer | Power | PowerParameter | power scale shift |
| PReLULayer | PReLU | ||
| PythonLayer | Python | PythonParameter | module layer param_str share_in_parallel |
| RecurrentLayer | Recurrent | RecurrentParameter | num_output weight_filler bias_filler debug_info expose_hidden |
| ReductionLayer | Reduction | ReductionParameter | operation axis coeff |
| ReLULayer | ReLU | ReLUParameter | negative_slope engine |
| ReshapeLayer | Reshape | ReshapeParameter | shape axis num_axes |
| RNNLayer | RNN | ||
| ScaleLayer | Scale | ScaleParameter | axis num_axes filler bias_term bias_filler |
| SigmoidLayer | Sigmoid | SigmoidParameter | engine |
| SigmoidCrossEntropyLossLayer | SigmoidCrossEntropyLoss | ||
| SilenceLayer | Silence | ||
| SliceLayer | Slice | SliceParameter | slice_dim slice_point axis |
| SoftmaxLayer | Softmax | SoftmaxParameter | engine axis |
| SoftmaxWithLossLayer | SoftmaxWithLoss | ||
| SplitLayer | Split | ||
| SPPLayer | SPP | ||
| TanHLayer | TanH | TanHParameter | engine |
| ThresholdLayer | Threshold | ThresholdParameter | threshold |
| TileLayer | Tile | TileParameter | axis tiles |
| WindowDataLayer | WindowData | WindowDataParameter | source scale mean_file batch_size crop_size mirror fg_threshold bg_threshold fg_fraction context_pad crop_mode cache_images root_folder |
| ×:prototxtで指定できないレイヤー(親クラスだったり、派生だったり) |

