sanghoon / pva-faster-rcnn

Demo code for PVANet
https://arxiv.org/abs/1611.08588
Other
651 stars 241 forks source link

train error:Maybe the train file has a bug #46

Open panyiming opened 7 years ago

panyiming commented 7 years ago

I0102 17:09:50.620123 24353 net.cpp:150] Setting up conv4_1/incep/poolproj/relu I0102 17:09:50.620136 24353 net.cpp:157] Top shape: 1 128 37 62 (293632) I0102 17:09:50.620141 24353 net.cpp:165] Memory required for data: 824862108 I0102 17:09:50.620146 24353 layer_factory.hpp:77] Creating layer conv4_1/incep I0102 17:09:50.620153 24353 net.cpp:100] Creating Layer conv4_1/incep I0102 17:09:50.620158 24353 net.cpp:434] conv4_1/incep <- conv4_1/incep/0 I0102 17:09:50.620164 24353 net.cpp:434] conv4_1/incep <- conv4_1/incep/1_0 I0102 17:09:50.620174 24353 net.cpp:434] conv4_1/incep <- conv4_1/incep/2_1 I0102 17:09:50.620179 24353 net.cpp:434] conv4_1/incep <- conv4_1/incep/poolproj I0102 17:09:50.620185 24353 net.cpp:408] conv4_1/incep -> conv4_1/incep F0102 17:09:50.620199 24353 concat_layer.cpp:42] Check failed: top_shape[j] == bottom[i]->shape(j) (38 vs. 37) All inputs must have the same shape, except at concat_axis. Check failure stack trace: Aborted (core dumped)

the training file is like this:

name: "PVANET"

################################################################################

Input

################################################################################

layer { name: 'input-data' type: 'Python' top: 'data' top: 'im_info' top: 'gt_boxes' include { phase: TRAIN } python_param { module: 'roi_data_layer.layer' layer: 'RoIDataLayer' param_str: "'num_classes': 21" } }

layer { name: "input-data" type: "DummyData" top: "data" top: "im_info" include { phase: TEST } dummy_data_param { shape { dim: 1 dim: 3 dim: 224 dim: 224 } shape { dim: 1 dim: 3 } } }

################################################################################

Convolution

################################################################################

layer { name: "conv1_1/conv" type: "Convolution" bottom: "data" top: "conv1_1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false weight_filler { type: "xavier" } pad_h: 3 pad_w: 3 kernel_h: 7 kernel_w: 7 stride_h: 2 stride_w: 2 } } layer { name: "conv1_1/bn" type: "BatchNorm" bottom: "conv1_1/conv" top: "conv1_1/conv" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv1_1/neg" type: "Power" bottom: "conv1_1/conv" top: "conv1_1/neg" power_param { power: 1 scale: -1.0 shift: 0 } } layer { name: "conv1_1/concat" type: "Concat" bottom: "conv1_1/conv" bottom: "conv1_1/neg" top: "conv1_1" } layer { name: "conv1_1/scale" type: "Scale" bottom: "conv1_1" top: "conv1_1" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 2.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv1_1/relu" type: "ReLU" bottom: "conv1_1" top: "conv1_1" } layer { name: "pool1" type: "Pooling" bottom: "conv1_1" top: "pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 pad: 0 } } layer { name: "conv2_1/1/conv" type: "Convolution" bottom: "pool1" top: "conv2_1/1" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 24 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv2_1/2/bn" type: "BatchNorm" bottom: "conv2_1/1" top: "conv2_1/2/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv2_1/2/bn_scale" type: "Scale" bottom: "conv2_1/2/pre" top: "conv2_1/2/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv2_1/2/relu" type: "ReLU" bottom: "conv2_1/2/pre" top: "conv2_1/2/pre" } layer { name: "conv2_1/2/conv" type: "Convolution" bottom: "conv2_1/2/pre" top: "conv2_1/2" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 24 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv2_1/3/bn" type: "BatchNorm" bottom: "conv2_1/2" top: "conv2_1/3/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv2_1/3/neg" type: "Power" bottom: "conv2_1/3/pre" top: "conv2_1/3/neg" power_param { power: 1 scale: -1.0 shift: 0 } } layer { name: "conv2_1/3/concat" type: "Concat" bottom: "conv2_1/3/pre" bottom: "conv2_1/3/neg" top: "conv2_1/3/preAct" } layer { name: "conv2_1/3/scale" type: "Scale" bottom: "conv2_1/3/preAct" top: "conv2_1/3/preAct" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 2.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv2_1/3/relu" type: "ReLU" bottom: "conv2_1/3/preAct" top: "conv2_1/3/preAct" } layer { name: "conv2_1/3/conv" type: "Convolution" bottom: "conv2_1/3/preAct" top: "conv2_1/3" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 64 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv2_1/proj" type: "Convolution" bottom: "pool1" top: "conv2_1/proj" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 64 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv2_1" type: "Eltwise" bottom: "conv2_1/3" bottom: "conv2_1/proj" top: "conv2_1" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv2_2/1/bn" type: "BatchNorm" bottom: "conv2_1" top: "conv2_2/1/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv2_2/1/bn_scale" type: "Scale" bottom: "conv2_2/1/pre" top: "conv2_2/1/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv2_2/1/relu" type: "ReLU" bottom: "conv2_2/1/pre" top: "conv2_2/1/pre" } layer { name: "conv2_2/1/conv" type: "Convolution" bottom: "conv2_2/1/pre" top: "conv2_2/1" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 24 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv2_2/2/bn" type: "BatchNorm" bottom: "conv2_2/1" top: "conv2_2/2/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv2_2/2/bn_scale" type: "Scale" bottom: "conv2_2/2/pre" top: "conv2_2/2/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv2_2/2/relu" type: "ReLU" bottom: "conv2_2/2/pre" top: "conv2_2/2/pre" } layer { name: "conv2_2/2/conv" type: "Convolution" bottom: "conv2_2/2/pre" top: "conv2_2/2" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 24 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv2_2/3/bn" type: "BatchNorm" bottom: "conv2_2/2" top: "conv2_2/3/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv2_2/3/neg" type: "Power" bottom: "conv2_2/3/pre" top: "conv2_2/3/neg" power_param { power: 1 scale: -1.0 shift: 0 } } layer { name: "conv2_2/3/concat" type: "Concat" bottom: "conv2_2/3/pre" bottom: "conv2_2/3/neg" top: "conv2_2/3/preAct" } layer { name: "conv2_2/3/scale" type: "Scale" bottom: "conv2_2/3/preAct" top: "conv2_2/3/preAct" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 2.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv2_2/3/relu" type: "ReLU" bottom: "conv2_2/3/preAct" top: "conv2_2/3/preAct" } layer { name: "conv2_2/3/conv" type: "Convolution" bottom: "conv2_2/3/preAct" top: "conv2_2/3" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 64 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv2_2/input" type: "Power" bottom: "conv2_1" top: "conv2_2/input" power_param { power: 1 scale: 1 shift: 0 } } layer { name: "conv2_2" type: "Eltwise" bottom: "conv2_2/3" bottom: "conv2_2/input" top: "conv2_2" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv2_3/1/bn" type: "BatchNorm" bottom: "conv2_2" top: "conv2_3/1/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv2_3/1/bn_scale" type: "Scale" bottom: "conv2_3/1/pre" top: "conv2_3/1/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv2_3/1/relu" type: "ReLU" bottom: "conv2_3/1/pre" top: "conv2_3/1/pre" } layer { name: "conv2_3/1/conv" type: "Convolution" bottom: "conv2_3/1/pre" top: "conv2_3/1" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 24 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv2_3/2/bn" type: "BatchNorm" bottom: "conv2_3/1" top: "conv2_3/2/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv2_3/2/bn_scale" type: "Scale" bottom: "conv2_3/2/pre" top: "conv2_3/2/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv2_3/2/relu" type: "ReLU" bottom: "conv2_3/2/pre" top: "conv2_3/2/pre" } layer { name: "conv2_3/2/conv" type: "Convolution" bottom: "conv2_3/2/pre" top: "conv2_3/2" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 24 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv2_3/3/bn" type: "BatchNorm" bottom: "conv2_3/2" top: "conv2_3/3/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv2_3/3/neg" type: "Power" bottom: "conv2_3/3/pre" top: "conv2_3/3/neg" power_param { power: 1 scale: -1.0 shift: 0 } } layer { name: "conv2_3/3/concat" type: "Concat" bottom: "conv2_3/3/pre" bottom: "conv2_3/3/neg" top: "conv2_3/3/preAct" } layer { name: "conv2_3/3/scale" type: "Scale" bottom: "conv2_3/3/preAct" top: "conv2_3/3/preAct" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 2.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv2_3/3/relu" type: "ReLU" bottom: "conv2_3/3/preAct" top: "conv2_3/3/preAct" } layer { name: "conv2_3/3/conv" type: "Convolution" bottom: "conv2_3/3/preAct" top: "conv2_3/3" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 64 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv2_3/input" type: "Power" bottom: "conv2_2" top: "conv2_3/input" power_param { power: 1 scale: 1 shift: 0 } } layer { name: "conv2_3" type: "Eltwise" bottom: "conv2_3/3" bottom: "conv2_3/input" top: "conv2_3" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv3_1/1/bn" type: "BatchNorm" bottom: "conv2_3" top: "conv3_1/1/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv3_1/1/bn_scale" type: "Scale" bottom: "conv3_1/1/pre" top: "conv3_1/1/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv3_1/1/relu" type: "ReLU" bottom: "conv3_1/1/pre" top: "conv3_1/1/pre" } layer { name: "conv3_1/1/conv" type: "Convolution" bottom: "conv3_1/1/pre" top: "conv3_1/1" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 48 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 2 stride_w: 2 } } layer { name: "conv3_1/2/bn" type: "BatchNorm" bottom: "conv3_1/1" top: "conv3_1/2/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv3_1/2/bn_scale" type: "Scale" bottom: "conv3_1/2/pre" top: "conv3_1/2/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv3_1/2/relu" type: "ReLU" bottom: "conv3_1/2/pre" top: "conv3_1/2/pre" } layer { name: "conv3_1/2/conv" type: "Convolution" bottom: "conv3_1/2/pre" top: "conv3_1/2" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 48 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv3_1/3/bn" type: "BatchNorm" bottom: "conv3_1/2" top: "conv3_1/3/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv3_1/3/neg" type: "Power" bottom: "conv3_1/3/pre" top: "conv3_1/3/neg" power_param { power: 1 scale: -1.0 shift: 0 } } layer { name: "conv3_1/3/concat" type: "Concat" bottom: "conv3_1/3/pre" bottom: "conv3_1/3/neg" top: "conv3_1/3/preAct" } layer { name: "conv3_1/3/scale" type: "Scale" bottom: "conv3_1/3/preAct" top: "conv3_1/3/preAct" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 2.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv3_1/3/relu" type: "ReLU" bottom: "conv3_1/3/preAct" top: "conv3_1/3/preAct" } layer { name: "conv3_1/3/conv" type: "Convolution" bottom: "conv3_1/3/preAct" top: "conv3_1/3" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 128 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv3_1/proj" type: "Convolution" bottom: "conv3_1/1/pre" top: "conv3_1/proj" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 128 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 2 stride_w: 2 } } layer { name: "conv3_1" type: "Eltwise" bottom: "conv3_1/3" bottom: "conv3_1/proj" top: "conv3_1" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv3_2/1/bn" type: "BatchNorm" bottom: "conv3_1" top: "conv3_2/1/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv3_2/1/bn_scale" type: "Scale" bottom: "conv3_2/1/pre" top: "conv3_2/1/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv3_2/1/relu" type: "ReLU" bottom: "conv3_2/1/pre" top: "conv3_2/1/pre" } layer { name: "conv3_2/1/conv" type: "Convolution" bottom: "conv3_2/1/pre" top: "conv3_2/1" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 48 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv3_2/2/bn" type: "BatchNorm" bottom: "conv3_2/1" top: "conv3_2/2/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv3_2/2/bn_scale" type: "Scale" bottom: "conv3_2/2/pre" top: "conv3_2/2/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv3_2/2/relu" type: "ReLU" bottom: "conv3_2/2/pre" top: "conv3_2/2/pre" } layer { name: "conv3_2/2/conv" type: "Convolution" bottom: "conv3_2/2/pre" top: "conv3_2/2" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 48 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv3_2/3/bn" type: "BatchNorm" bottom: "conv3_2/2" top: "conv3_2/3/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv3_2/3/neg" type: "Power" bottom: "conv3_2/3/pre" top: "conv3_2/3/neg" power_param { power: 1 scale: -1.0 shift: 0 } } layer { name: "conv3_2/3/concat" type: "Concat" bottom: "conv3_2/3/pre" bottom: "conv3_2/3/neg" top: "conv3_2/3/preAct" } layer { name: "conv3_2/3/scale" type: "Scale" bottom: "conv3_2/3/preAct" top: "conv3_2/3/preAct" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 2.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv3_2/3/relu" type: "ReLU" bottom: "conv3_2/3/preAct" top: "conv3_2/3/preAct" } layer { name: "conv3_2/3/conv" type: "Convolution" bottom: "conv3_2/3/preAct" top: "conv3_2/3" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 128 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv3_2/input" type: "Power" bottom: "conv3_1" top: "conv3_2/input" power_param { power: 1 scale: 1 shift: 0 } } layer { name: "conv3_2" type: "Eltwise" bottom: "conv3_2/3" bottom: "conv3_2/input" top: "conv3_2" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv3_3/1/bn" type: "BatchNorm" bottom: "conv3_2" top: "conv3_3/1/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv3_3/1/bn_scale" type: "Scale" bottom: "conv3_3/1/pre" top: "conv3_3/1/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv3_3/1/relu" type: "ReLU" bottom: "conv3_3/1/pre" top: "conv3_3/1/pre" } layer { name: "conv3_3/1/conv" type: "Convolution" bottom: "conv3_3/1/pre" top: "conv3_3/1" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 48 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv3_3/2/bn" type: "BatchNorm" bottom: "conv3_3/1" top: "conv3_3/2/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv3_3/2/bn_scale" type: "Scale" bottom: "conv3_3/2/pre" top: "conv3_3/2/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv3_3/2/relu" type: "ReLU" bottom: "conv3_3/2/pre" top: "conv3_3/2/pre" } layer { name: "conv3_3/2/conv" type: "Convolution" bottom: "conv3_3/2/pre" top: "conv3_3/2" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 48 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv3_3/3/bn" type: "BatchNorm" bottom: "conv3_3/2" top: "conv3_3/3/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv3_3/3/neg" type: "Power" bottom: "conv3_3/3/pre" top: "conv3_3/3/neg" power_param { power: 1 scale: -1.0 shift: 0 } } layer { name: "conv3_3/3/concat" type: "Concat" bottom: "conv3_3/3/pre" bottom: "conv3_3/3/neg" top: "conv3_3/3/preAct" } layer { name: "conv3_3/3/scale" type: "Scale" bottom: "conv3_3/3/preAct" top: "conv3_3/3/preAct" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 2.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv3_3/3/relu" type: "ReLU" bottom: "conv3_3/3/preAct" top: "conv3_3/3/preAct" } layer { name: "conv3_3/3/conv" type: "Convolution" bottom: "conv3_3/3/preAct" top: "conv3_3/3" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 128 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv3_3/input" type: "Power" bottom: "conv3_2" top: "conv3_3/input" power_param { power: 1 scale: 1 shift: 0 } } layer { name: "conv3_3" type: "Eltwise" bottom: "conv3_3/3" bottom: "conv3_3/input" top: "conv3_3" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv3_4/1/bn" type: "BatchNorm" bottom: "conv3_3" top: "conv3_4/1/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv3_4/1/bn_scale" type: "Scale" bottom: "conv3_4/1/pre" top: "conv3_4/1/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv3_4/1/relu" type: "ReLU" bottom: "conv3_4/1/pre" top: "conv3_4/1/pre" } layer { name: "conv3_4/1/conv" type: "Convolution" bottom: "conv3_4/1/pre" top: "conv3_4/1" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 48 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv3_4/2/bn" type: "BatchNorm" bottom: "conv3_4/1" top: "conv3_4/2/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv3_4/2/bn_scale" type: "Scale" bottom: "conv3_4/2/pre" top: "conv3_4/2/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv3_4/2/relu" type: "ReLU" bottom: "conv3_4/2/pre" top: "conv3_4/2/pre" } layer { name: "conv3_4/2/conv" type: "Convolution" bottom: "conv3_4/2/pre" top: "conv3_4/2" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 48 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv3_4/3/bn" type: "BatchNorm" bottom: "conv3_4/2" top: "conv3_4/3/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv3_4/3/neg" type: "Power" bottom: "conv3_4/3/pre" top: "conv3_4/3/neg" power_param { power: 1 scale: -1.0 shift: 0 } } layer { name: "conv3_4/3/concat" type: "Concat" bottom: "conv3_4/3/pre" bottom: "conv3_4/3/neg" top: "conv3_4/3/preAct" } layer { name: "conv3_4/3/scale" type: "Scale" bottom: "conv3_4/3/preAct" top: "conv3_4/3/preAct" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 2.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv3_4/3/relu" type: "ReLU" bottom: "conv3_4/3/preAct" top: "conv3_4/3/preAct" } layer { name: "conv3_4/3/conv" type: "Convolution" bottom: "conv3_4/3/preAct" top: "conv3_4/3" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 128 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv3_4/input" type: "Power" bottom: "conv3_3" top: "conv3_4/input" power_param { power: 1 scale: 1 shift: 0 } } layer { name: "conv3_4" type: "Eltwise" bottom: "conv3_4/3" bottom: "conv3_4/input" top: "conv3_4" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv4_1/incep/bn" type: "BatchNorm" bottom: "conv3_4" top: "conv4_1/incep/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_1/incep/bn_scale" type: "Scale" bottom: "conv4_1/incep/pre" top: "conv4_1/incep/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_1/incep/relu" type: "ReLU" bottom: "conv4_1/incep/pre" top: "conv4_1/incep/pre" } layer { name: "conv4_1/incep/0/conv" type: "Convolution" bottom: "conv4_1/incep/pre" top: "conv4_1/incep/0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 2 stride_w: 2 } } layer { name: "conv4_1/incep/0/bn" type: "BatchNorm" bottom: "conv4_1/incep/0" top: "conv4_1/incep/0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_1/incep/0/bn_scale" type: "Scale" bottom: "conv4_1/incep/0" top: "conv4_1/incep/0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_1/incep/0/relu" type: "ReLU" bottom: "conv4_1/incep/0" top: "conv4_1/incep/0" } layer { name: "conv4_1/incep/1_reduce/conv" type: "Convolution" bottom: "conv4_1/incep/pre" top: "conv4_1/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 48 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 2 stride_w: 2 } } layer { name: "conv4_1/incep/1_reduce/bn" type: "BatchNorm" bottom: "conv4_1/incep/1_reduce" top: "conv4_1/incep/1_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_1/incep/1_reduce/bn_scale" type: "Scale" bottom: "conv4_1/incep/1_reduce" top: "conv4_1/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_1/incep/1_reduce/relu" type: "ReLU" bottom: "conv4_1/incep/1_reduce" top: "conv4_1/incep/1_reduce" } layer { name: "conv4_1/incep/1_0/conv" type: "Convolution" bottom: "conv4_1/incep/1_reduce" top: "conv4_1/incep/1_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv4_1/incep/1_0/bn" type: "BatchNorm" bottom: "conv4_1/incep/1_0" top: "conv4_1/incep/1_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_1/incep/1_0/bn_scale" type: "Scale" bottom: "conv4_1/incep/1_0" top: "conv4_1/incep/1_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_1/incep/1_0/relu" type: "ReLU" bottom: "conv4_1/incep/1_0" top: "conv4_1/incep/1_0" } layer { name: "conv4_1/incep/2_reduce/conv" type: "Convolution" bottom: "conv4_1/incep/pre" top: "conv4_1/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 24 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 2 stride_w: 2 } } layer { name: "conv4_1/incep/2_reduce/bn" type: "BatchNorm" bottom: "conv4_1/incep/2_reduce" top: "conv4_1/incep/2_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_1/incep/2_reduce/bn_scale" type: "Scale" bottom: "conv4_1/incep/2_reduce" top: "conv4_1/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_1/incep/2_reduce/relu" type: "ReLU" bottom: "conv4_1/incep/2_reduce" top: "conv4_1/incep/2_reduce" } layer { name: "conv4_1/incep/2_0/conv" type: "Convolution" bottom: "conv4_1/incep/2_reduce" top: "conv4_1/incep/2_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 48 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv4_1/incep/2_0/bn" type: "BatchNorm" bottom: "conv4_1/incep/2_0" top: "conv4_1/incep/2_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_1/incep/2_0/bn_scale" type: "Scale" bottom: "conv4_1/incep/2_0" top: "conv4_1/incep/2_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_1/incep/2_0/relu" type: "ReLU" bottom: "conv4_1/incep/2_0" top: "conv4_1/incep/2_0" } layer { name: "conv4_1/incep/2_1/conv" type: "Convolution" bottom: "conv4_1/incep/2_0" top: "conv4_1/incep/2_1" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 48 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv4_1/incep/2_1/bn" type: "BatchNorm" bottom: "conv4_1/incep/2_1" top: "conv4_1/incep/2_1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_1/incep/2_1/bn_scale" type: "Scale" bottom: "conv4_1/incep/2_1" top: "conv4_1/incep/2_1" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_1/incep/2_1/relu" type: "ReLU" bottom: "conv4_1/incep/2_1" top: "conv4_1/incep/2_1" } layer { name: "conv4_1/incep/pool" type: "Pooling" bottom: "conv4_1/incep/pre" top: "conv4_1/incep/pool" pooling_param { pool: MAX kernel_size: 3 stride: 2 pad: 0 } } layer { name: "conv4_1/incep/poolproj/conv" type: "Convolution" bottom: "conv4_1/incep/pool" top: "conv4_1/incep/poolproj" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_1/incep/poolproj/bn" type: "BatchNorm" bottom: "conv4_1/incep/poolproj" top: "conv4_1/incep/poolproj" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_1/incep/poolproj/bn_scale" type: "Scale" bottom: "conv4_1/incep/poolproj" top: "conv4_1/incep/poolproj" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_1/incep/poolproj/relu" type: "ReLU" bottom: "conv4_1/incep/poolproj" top: "conv4_1/incep/poolproj" } layer { name: "conv4_1/incep" type: "Concat" bottom: "conv4_1/incep/0" bottom: "conv4_1/incep/1_0" bottom: "conv4_1/incep/2_1" bottom: "conv4_1/incep/poolproj" top: "conv4_1/incep" } layer { name: "conv4_1/out/conv" type: "Convolution" bottom: "conv4_1/incep" top: "conv4_1/out" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 256 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_1/proj" type: "Convolution" bottom: "conv3_4" top: "conv4_1/proj" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 256 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 2 stride_w: 2 } } layer { name: "conv4_1" type: "Eltwise" bottom: "conv4_1/out" bottom: "conv4_1/proj" top: "conv4_1" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv4_2/incep/bn" type: "BatchNorm" bottom: "conv4_1" top: "conv4_2/incep/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_2/incep/bn_scale" type: "Scale" bottom: "conv4_2/incep/pre" top: "conv4_2/incep/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_2/incep/relu" type: "ReLU" bottom: "conv4_2/incep/pre" top: "conv4_2/incep/pre" } layer { name: "conv4_2/incep/0/conv" type: "Convolution" bottom: "conv4_2/incep/pre" top: "conv4_2/incep/0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_2/incep/0/bn" type: "BatchNorm" bottom: "conv4_2/incep/0" top: "conv4_2/incep/0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_2/incep/0/bn_scale" type: "Scale" bottom: "conv4_2/incep/0" top: "conv4_2/incep/0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_2/incep/0/relu" type: "ReLU" bottom: "conv4_2/incep/0" top: "conv4_2/incep/0" } layer { name: "conv4_2/incep/1_reduce/conv" type: "Convolution" bottom: "conv4_2/incep/pre" top: "conv4_2/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_2/incep/1_reduce/bn" type: "BatchNorm" bottom: "conv4_2/incep/1_reduce" top: "conv4_2/incep/1_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_2/incep/1_reduce/bn_scale" type: "Scale" bottom: "conv4_2/incep/1_reduce" top: "conv4_2/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_2/incep/1_reduce/relu" type: "ReLU" bottom: "conv4_2/incep/1_reduce" top: "conv4_2/incep/1_reduce" } layer { name: "conv4_2/incep/1_0/conv" type: "Convolution" bottom: "conv4_2/incep/1_reduce" top: "conv4_2/incep/1_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv4_2/incep/1_0/bn" type: "BatchNorm" bottom: "conv4_2/incep/1_0" top: "conv4_2/incep/1_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_2/incep/1_0/bn_scale" type: "Scale" bottom: "conv4_2/incep/1_0" top: "conv4_2/incep/1_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_2/incep/1_0/relu" type: "ReLU" bottom: "conv4_2/incep/1_0" top: "conv4_2/incep/1_0" } layer { name: "conv4_2/incep/2_reduce/conv" type: "Convolution" bottom: "conv4_2/incep/pre" top: "conv4_2/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 24 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_2/incep/2_reduce/bn" type: "BatchNorm" bottom: "conv4_2/incep/2_reduce" top: "conv4_2/incep/2_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_2/incep/2_reduce/bn_scale" type: "Scale" bottom: "conv4_2/incep/2_reduce" top: "conv4_2/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_2/incep/2_reduce/relu" type: "ReLU" bottom: "conv4_2/incep/2_reduce" top: "conv4_2/incep/2_reduce" } layer { name: "conv4_2/incep/2_0/conv" type: "Convolution" bottom: "conv4_2/incep/2_reduce" top: "conv4_2/incep/2_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 48 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv4_2/incep/2_0/bn" type: "BatchNorm" bottom: "conv4_2/incep/2_0" top: "conv4_2/incep/2_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_2/incep/2_0/bn_scale" type: "Scale" bottom: "conv4_2/incep/2_0" top: "conv4_2/incep/2_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_2/incep/2_0/relu" type: "ReLU" bottom: "conv4_2/incep/2_0" top: "conv4_2/incep/2_0" } layer { name: "conv4_2/incep/2_1/conv" type: "Convolution" bottom: "conv4_2/incep/2_0" top: "conv4_2/incep/2_1" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 48 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv4_2/incep/2_1/bn" type: "BatchNorm" bottom: "conv4_2/incep/2_1" top: "conv4_2/incep/2_1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_2/incep/2_1/bn_scale" type: "Scale" bottom: "conv4_2/incep/2_1" top: "conv4_2/incep/2_1" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_2/incep/2_1/relu" type: "ReLU" bottom: "conv4_2/incep/2_1" top: "conv4_2/incep/2_1" } layer { name: "conv4_2/incep" type: "Concat" bottom: "conv4_2/incep/0" bottom: "conv4_2/incep/1_0" bottom: "conv4_2/incep/2_1" top: "conv4_2/incep" } layer { name: "conv4_2/out/conv" type: "Convolution" bottom: "conv4_2/incep" top: "conv4_2/out" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 256 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_2/input" type: "Power" bottom: "conv4_1" top: "conv4_2/input" power_param { power: 1 scale: 1 shift: 0 } } layer { name: "conv4_2" type: "Eltwise" bottom: "conv4_2/out" bottom: "conv4_2/input" top: "conv4_2" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv4_3/incep/bn" type: "BatchNorm" bottom: "conv4_2" top: "conv4_3/incep/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_3/incep/bn_scale" type: "Scale" bottom: "conv4_3/incep/pre" top: "conv4_3/incep/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_3/incep/relu" type: "ReLU" bottom: "conv4_3/incep/pre" top: "conv4_3/incep/pre" } layer { name: "conv4_3/incep/0/conv" type: "Convolution" bottom: "conv4_3/incep/pre" top: "conv4_3/incep/0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_3/incep/0/bn" type: "BatchNorm" bottom: "conv4_3/incep/0" top: "conv4_3/incep/0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_3/incep/0/bn_scale" type: "Scale" bottom: "conv4_3/incep/0" top: "conv4_3/incep/0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_3/incep/0/relu" type: "ReLU" bottom: "conv4_3/incep/0" top: "conv4_3/incep/0" } layer { name: "conv4_3/incep/1_reduce/conv" type: "Convolution" bottom: "conv4_3/incep/pre" top: "conv4_3/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_3/incep/1_reduce/bn" type: "BatchNorm" bottom: "conv4_3/incep/1_reduce" top: "conv4_3/incep/1_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_3/incep/1_reduce/bn_scale" type: "Scale" bottom: "conv4_3/incep/1_reduce" top: "conv4_3/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_3/incep/1_reduce/relu" type: "ReLU" bottom: "conv4_3/incep/1_reduce" top: "conv4_3/incep/1_reduce" } layer { name: "conv4_3/incep/1_0/conv" type: "Convolution" bottom: "conv4_3/incep/1_reduce" top: "conv4_3/incep/1_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv4_3/incep/1_0/bn" type: "BatchNorm" bottom: "conv4_3/incep/1_0" top: "conv4_3/incep/1_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_3/incep/1_0/bn_scale" type: "Scale" bottom: "conv4_3/incep/1_0" top: "conv4_3/incep/1_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_3/incep/1_0/relu" type: "ReLU" bottom: "conv4_3/incep/1_0" top: "conv4_3/incep/1_0" } layer { name: "conv4_3/incep/2_reduce/conv" type: "Convolution" bottom: "conv4_3/incep/pre" top: "conv4_3/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 24 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_3/incep/2_reduce/bn" type: "BatchNorm" bottom: "conv4_3/incep/2_reduce" top: "conv4_3/incep/2_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_3/incep/2_reduce/bn_scale" type: "Scale" bottom: "conv4_3/incep/2_reduce" top: "conv4_3/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_3/incep/2_reduce/relu" type: "ReLU" bottom: "conv4_3/incep/2_reduce" top: "conv4_3/incep/2_reduce" } layer { name: "conv4_3/incep/2_0/conv" type: "Convolution" bottom: "conv4_3/incep/2_reduce" top: "conv4_3/incep/2_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 48 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv4_3/incep/2_0/bn" type: "BatchNorm" bottom: "conv4_3/incep/2_0" top: "conv4_3/incep/2_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_3/incep/2_0/bn_scale" type: "Scale" bottom: "conv4_3/incep/2_0" top: "conv4_3/incep/2_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_3/incep/2_0/relu" type: "ReLU" bottom: "conv4_3/incep/2_0" top: "conv4_3/incep/2_0" } layer { name: "conv4_3/incep/2_1/conv" type: "Convolution" bottom: "conv4_3/incep/2_0" top: "conv4_3/incep/2_1" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 48 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv4_3/incep/2_1/bn" type: "BatchNorm" bottom: "conv4_3/incep/2_1" top: "conv4_3/incep/2_1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_3/incep/2_1/bn_scale" type: "Scale" bottom: "conv4_3/incep/2_1" top: "conv4_3/incep/2_1" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_3/incep/2_1/relu" type: "ReLU" bottom: "conv4_3/incep/2_1" top: "conv4_3/incep/2_1" } layer { name: "conv4_3/incep" type: "Concat" bottom: "conv4_3/incep/0" bottom: "conv4_3/incep/1_0" bottom: "conv4_3/incep/2_1" top: "conv4_3/incep" } layer { name: "conv4_3/out/conv" type: "Convolution" bottom: "conv4_3/incep" top: "conv4_3/out" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 256 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_3/input" type: "Power" bottom: "conv4_2" top: "conv4_3/input" power_param { power: 1 scale: 1 shift: 0 } } layer { name: "conv4_3" type: "Eltwise" bottom: "conv4_3/out" bottom: "conv4_3/input" top: "conv4_3" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv4_4/incep/bn" type: "BatchNorm" bottom: "conv4_3" top: "conv4_4/incep/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_4/incep/bn_scale" type: "Scale" bottom: "conv4_4/incep/pre" top: "conv4_4/incep/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_4/incep/relu" type: "ReLU" bottom: "conv4_4/incep/pre" top: "conv4_4/incep/pre" } layer { name: "conv4_4/incep/0/conv" type: "Convolution" bottom: "conv4_4/incep/pre" top: "conv4_4/incep/0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_4/incep/0/bn" type: "BatchNorm" bottom: "conv4_4/incep/0" top: "conv4_4/incep/0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_4/incep/0/bn_scale" type: "Scale" bottom: "conv4_4/incep/0" top: "conv4_4/incep/0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_4/incep/0/relu" type: "ReLU" bottom: "conv4_4/incep/0" top: "conv4_4/incep/0" } layer { name: "conv4_4/incep/1_reduce/conv" type: "Convolution" bottom: "conv4_4/incep/pre" top: "conv4_4/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_4/incep/1_reduce/bn" type: "BatchNorm" bottom: "conv4_4/incep/1_reduce" top: "conv4_4/incep/1_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_4/incep/1_reduce/bn_scale" type: "Scale" bottom: "conv4_4/incep/1_reduce" top: "conv4_4/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_4/incep/1_reduce/relu" type: "ReLU" bottom: "conv4_4/incep/1_reduce" top: "conv4_4/incep/1_reduce" } layer { name: "conv4_4/incep/1_0/conv" type: "Convolution" bottom: "conv4_4/incep/1_reduce" top: "conv4_4/incep/1_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv4_4/incep/1_0/bn" type: "BatchNorm" bottom: "conv4_4/incep/1_0" top: "conv4_4/incep/1_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_4/incep/1_0/bn_scale" type: "Scale" bottom: "conv4_4/incep/1_0" top: "conv4_4/incep/1_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_4/incep/1_0/relu" type: "ReLU" bottom: "conv4_4/incep/1_0" top: "conv4_4/incep/1_0" } layer { name: "conv4_4/incep/2_reduce/conv" type: "Convolution" bottom: "conv4_4/incep/pre" top: "conv4_4/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 24 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_4/incep/2_reduce/bn" type: "BatchNorm" bottom: "conv4_4/incep/2_reduce" top: "conv4_4/incep/2_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_4/incep/2_reduce/bn_scale" type: "Scale" bottom: "conv4_4/incep/2_reduce" top: "conv4_4/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_4/incep/2_reduce/relu" type: "ReLU" bottom: "conv4_4/incep/2_reduce" top: "conv4_4/incep/2_reduce" } layer { name: "conv4_4/incep/2_0/conv" type: "Convolution" bottom: "conv4_4/incep/2_reduce" top: "conv4_4/incep/2_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 48 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv4_4/incep/2_0/bn" type: "BatchNorm" bottom: "conv4_4/incep/2_0" top: "conv4_4/incep/2_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_4/incep/2_0/bn_scale" type: "Scale" bottom: "conv4_4/incep/2_0" top: "conv4_4/incep/2_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_4/incep/2_0/relu" type: "ReLU" bottom: "conv4_4/incep/2_0" top: "conv4_4/incep/2_0" } layer { name: "conv4_4/incep/2_1/conv" type: "Convolution" bottom: "conv4_4/incep/2_0" top: "conv4_4/incep/2_1" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 48 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv4_4/incep/2_1/bn" type: "BatchNorm" bottom: "conv4_4/incep/2_1" top: "conv4_4/incep/2_1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv4_4/incep/2_1/bn_scale" type: "Scale" bottom: "conv4_4/incep/2_1" top: "conv4_4/incep/2_1" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv4_4/incep/2_1/relu" type: "ReLU" bottom: "conv4_4/incep/2_1" top: "conv4_4/incep/2_1" } layer { name: "conv4_4/incep" type: "Concat" bottom: "conv4_4/incep/0" bottom: "conv4_4/incep/1_0" bottom: "conv4_4/incep/2_1" top: "conv4_4/incep" } layer { name: "conv4_4/out/conv" type: "Convolution" bottom: "conv4_4/incep" top: "conv4_4/out" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 256 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv4_4/input" type: "Power" bottom: "conv4_3" top: "conv4_4/input" power_param { power: 1 scale: 1 shift: 0 } } layer { name: "conv4_4" type: "Eltwise" bottom: "conv4_4/out" bottom: "conv4_4/input" top: "conv4_4" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv5_1/incep/bn" type: "BatchNorm" bottom: "conv4_4" top: "conv5_1/incep/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_1/incep/bn_scale" type: "Scale" bottom: "conv5_1/incep/pre" top: "conv5_1/incep/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_1/incep/relu" type: "ReLU" bottom: "conv5_1/incep/pre" top: "conv5_1/incep/pre" } layer { name: "conv5_1/incep/0/conv" type: "Convolution" bottom: "conv5_1/incep/pre" top: "conv5_1/incep/0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 2 stride_w: 2 } } layer { name: "conv5_1/incep/0/bn" type: "BatchNorm" bottom: "conv5_1/incep/0" top: "conv5_1/incep/0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_1/incep/0/bn_scale" type: "Scale" bottom: "conv5_1/incep/0" top: "conv5_1/incep/0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_1/incep/0/relu" type: "ReLU" bottom: "conv5_1/incep/0" top: "conv5_1/incep/0" } layer { name: "conv5_1/incep/1_reduce/conv" type: "Convolution" bottom: "conv5_1/incep/pre" top: "conv5_1/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 96 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 2 stride_w: 2 } } layer { name: "conv5_1/incep/1_reduce/bn" type: "BatchNorm" bottom: "conv5_1/incep/1_reduce" top: "conv5_1/incep/1_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_1/incep/1_reduce/bn_scale" type: "Scale" bottom: "conv5_1/incep/1_reduce" top: "conv5_1/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_1/incep/1_reduce/relu" type: "ReLU" bottom: "conv5_1/incep/1_reduce" top: "conv5_1/incep/1_reduce" } layer { name: "conv5_1/incep/1_0/conv" type: "Convolution" bottom: "conv5_1/incep/1_reduce" top: "conv5_1/incep/1_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 192 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv5_1/incep/1_0/bn" type: "BatchNorm" bottom: "conv5_1/incep/1_0" top: "conv5_1/incep/1_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_1/incep/1_0/bn_scale" type: "Scale" bottom: "conv5_1/incep/1_0" top: "conv5_1/incep/1_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_1/incep/1_0/relu" type: "ReLU" bottom: "conv5_1/incep/1_0" top: "conv5_1/incep/1_0" } layer { name: "conv5_1/incep/2_reduce/conv" type: "Convolution" bottom: "conv5_1/incep/pre" top: "conv5_1/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 2 stride_w: 2 } } layer { name: "conv5_1/incep/2_reduce/bn" type: "BatchNorm" bottom: "conv5_1/incep/2_reduce" top: "conv5_1/incep/2_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_1/incep/2_reduce/bn_scale" type: "Scale" bottom: "conv5_1/incep/2_reduce" top: "conv5_1/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_1/incep/2_reduce/relu" type: "ReLU" bottom: "conv5_1/incep/2_reduce" top: "conv5_1/incep/2_reduce" } layer { name: "conv5_1/incep/2_0/conv" type: "Convolution" bottom: "conv5_1/incep/2_reduce" top: "conv5_1/incep/2_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv5_1/incep/2_0/bn" type: "BatchNorm" bottom: "conv5_1/incep/2_0" top: "conv5_1/incep/2_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_1/incep/2_0/bn_scale" type: "Scale" bottom: "conv5_1/incep/2_0" top: "conv5_1/incep/2_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_1/incep/2_0/relu" type: "ReLU" bottom: "conv5_1/incep/2_0" top: "conv5_1/incep/2_0" } layer { name: "conv5_1/incep/2_1/conv" type: "Convolution" bottom: "conv5_1/incep/2_0" top: "conv5_1/incep/2_1" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv5_1/incep/2_1/bn" type: "BatchNorm" bottom: "conv5_1/incep/2_1" top: "conv5_1/incep/2_1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_1/incep/2_1/bn_scale" type: "Scale" bottom: "conv5_1/incep/2_1" top: "conv5_1/incep/2_1" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_1/incep/2_1/relu" type: "ReLU" bottom: "conv5_1/incep/2_1" top: "conv5_1/incep/2_1" } layer { name: "conv5_1/incep/pool" type: "Pooling" bottom: "conv5_1/incep/pre" top: "conv5_1/incep/pool" pooling_param { pool: MAX kernel_size: 3 stride: 2 pad: 0 } } layer { name: "conv5_1/incep/poolproj/conv" type: "Convolution" bottom: "conv5_1/incep/pool" top: "conv5_1/incep/poolproj" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_1/incep/poolproj/bn" type: "BatchNorm" bottom: "conv5_1/incep/poolproj" top: "conv5_1/incep/poolproj" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_1/incep/poolproj/bn_scale" type: "Scale" bottom: "conv5_1/incep/poolproj" top: "conv5_1/incep/poolproj" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_1/incep/poolproj/relu" type: "ReLU" bottom: "conv5_1/incep/poolproj" top: "conv5_1/incep/poolproj" } layer { name: "conv5_1/incep" type: "Concat" bottom: "conv5_1/incep/0" bottom: "conv5_1/incep/1_0" bottom: "conv5_1/incep/2_1" bottom: "conv5_1/incep/poolproj" top: "conv5_1/incep" } layer { name: "conv5_1/out/conv" type: "Convolution" bottom: "conv5_1/incep" top: "conv5_1/out" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 384 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_1/proj" type: "Convolution" bottom: "conv4_4" top: "conv5_1/proj" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 384 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 2 stride_w: 2 } } layer { name: "conv5_1" type: "Eltwise" bottom: "conv5_1/out" bottom: "conv5_1/proj" top: "conv5_1" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv5_2/incep/bn" type: "BatchNorm" bottom: "conv5_1" top: "conv5_2/incep/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_2/incep/bn_scale" type: "Scale" bottom: "conv5_2/incep/pre" top: "conv5_2/incep/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_2/incep/relu" type: "ReLU" bottom: "conv5_2/incep/pre" top: "conv5_2/incep/pre" } layer { name: "conv5_2/incep/0/conv" type: "Convolution" bottom: "conv5_2/incep/pre" top: "conv5_2/incep/0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_2/incep/0/bn" type: "BatchNorm" bottom: "conv5_2/incep/0" top: "conv5_2/incep/0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_2/incep/0/bn_scale" type: "Scale" bottom: "conv5_2/incep/0" top: "conv5_2/incep/0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_2/incep/0/relu" type: "ReLU" bottom: "conv5_2/incep/0" top: "conv5_2/incep/0" } layer { name: "conv5_2/incep/1_reduce/conv" type: "Convolution" bottom: "conv5_2/incep/pre" top: "conv5_2/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 96 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_2/incep/1_reduce/bn" type: "BatchNorm" bottom: "conv5_2/incep/1_reduce" top: "conv5_2/incep/1_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_2/incep/1_reduce/bn_scale" type: "Scale" bottom: "conv5_2/incep/1_reduce" top: "conv5_2/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_2/incep/1_reduce/relu" type: "ReLU" bottom: "conv5_2/incep/1_reduce" top: "conv5_2/incep/1_reduce" } layer { name: "conv5_2/incep/1_0/conv" type: "Convolution" bottom: "conv5_2/incep/1_reduce" top: "conv5_2/incep/1_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 192 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv5_2/incep/1_0/bn" type: "BatchNorm" bottom: "conv5_2/incep/1_0" top: "conv5_2/incep/1_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_2/incep/1_0/bn_scale" type: "Scale" bottom: "conv5_2/incep/1_0" top: "conv5_2/incep/1_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_2/incep/1_0/relu" type: "ReLU" bottom: "conv5_2/incep/1_0" top: "conv5_2/incep/1_0" } layer { name: "conv5_2/incep/2_reduce/conv" type: "Convolution" bottom: "conv5_2/incep/pre" top: "conv5_2/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_2/incep/2_reduce/bn" type: "BatchNorm" bottom: "conv5_2/incep/2_reduce" top: "conv5_2/incep/2_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_2/incep/2_reduce/bn_scale" type: "Scale" bottom: "conv5_2/incep/2_reduce" top: "conv5_2/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_2/incep/2_reduce/relu" type: "ReLU" bottom: "conv5_2/incep/2_reduce" top: "conv5_2/incep/2_reduce" } layer { name: "conv5_2/incep/2_0/conv" type: "Convolution" bottom: "conv5_2/incep/2_reduce" top: "conv5_2/incep/2_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv5_2/incep/2_0/bn" type: "BatchNorm" bottom: "conv5_2/incep/2_0" top: "conv5_2/incep/2_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_2/incep/2_0/bn_scale" type: "Scale" bottom: "conv5_2/incep/2_0" top: "conv5_2/incep/2_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_2/incep/2_0/relu" type: "ReLU" bottom: "conv5_2/incep/2_0" top: "conv5_2/incep/2_0" } layer { name: "conv5_2/incep/2_1/conv" type: "Convolution" bottom: "conv5_2/incep/2_0" top: "conv5_2/incep/2_1" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv5_2/incep/2_1/bn" type: "BatchNorm" bottom: "conv5_2/incep/2_1" top: "conv5_2/incep/2_1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_2/incep/2_1/bn_scale" type: "Scale" bottom: "conv5_2/incep/2_1" top: "conv5_2/incep/2_1" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_2/incep/2_1/relu" type: "ReLU" bottom: "conv5_2/incep/2_1" top: "conv5_2/incep/2_1" } layer { name: "conv5_2/incep" type: "Concat" bottom: "conv5_2/incep/0" bottom: "conv5_2/incep/1_0" bottom: "conv5_2/incep/2_1" top: "conv5_2/incep" } layer { name: "conv5_2/out/conv" type: "Convolution" bottom: "conv5_2/incep" top: "conv5_2/out" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 384 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_2/input" type: "Power" bottom: "conv5_1" top: "conv5_2/input" power_param { power: 1 scale: 1 shift: 0 } } layer { name: "conv5_2" type: "Eltwise" bottom: "conv5_2/out" bottom: "conv5_2/input" top: "conv5_2" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv5_3/incep/bn" type: "BatchNorm" bottom: "conv5_2" top: "conv5_3/incep/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_3/incep/bn_scale" type: "Scale" bottom: "conv5_3/incep/pre" top: "conv5_3/incep/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_3/incep/relu" type: "ReLU" bottom: "conv5_3/incep/pre" top: "conv5_3/incep/pre" } layer { name: "conv5_3/incep/0/conv" type: "Convolution" bottom: "conv5_3/incep/pre" top: "conv5_3/incep/0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_3/incep/0/bn" type: "BatchNorm" bottom: "conv5_3/incep/0" top: "conv5_3/incep/0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_3/incep/0/bn_scale" type: "Scale" bottom: "conv5_3/incep/0" top: "conv5_3/incep/0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_3/incep/0/relu" type: "ReLU" bottom: "conv5_3/incep/0" top: "conv5_3/incep/0" } layer { name: "conv5_3/incep/1_reduce/conv" type: "Convolution" bottom: "conv5_3/incep/pre" top: "conv5_3/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 96 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_3/incep/1_reduce/bn" type: "BatchNorm" bottom: "conv5_3/incep/1_reduce" top: "conv5_3/incep/1_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_3/incep/1_reduce/bn_scale" type: "Scale" bottom: "conv5_3/incep/1_reduce" top: "conv5_3/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_3/incep/1_reduce/relu" type: "ReLU" bottom: "conv5_3/incep/1_reduce" top: "conv5_3/incep/1_reduce" } layer { name: "conv5_3/incep/1_0/conv" type: "Convolution" bottom: "conv5_3/incep/1_reduce" top: "conv5_3/incep/1_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 192 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv5_3/incep/1_0/bn" type: "BatchNorm" bottom: "conv5_3/incep/1_0" top: "conv5_3/incep/1_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_3/incep/1_0/bn_scale" type: "Scale" bottom: "conv5_3/incep/1_0" top: "conv5_3/incep/1_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_3/incep/1_0/relu" type: "ReLU" bottom: "conv5_3/incep/1_0" top: "conv5_3/incep/1_0" } layer { name: "conv5_3/incep/2_reduce/conv" type: "Convolution" bottom: "conv5_3/incep/pre" top: "conv5_3/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_3/incep/2_reduce/bn" type: "BatchNorm" bottom: "conv5_3/incep/2_reduce" top: "conv5_3/incep/2_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_3/incep/2_reduce/bn_scale" type: "Scale" bottom: "conv5_3/incep/2_reduce" top: "conv5_3/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_3/incep/2_reduce/relu" type: "ReLU" bottom: "conv5_3/incep/2_reduce" top: "conv5_3/incep/2_reduce" } layer { name: "conv5_3/incep/2_0/conv" type: "Convolution" bottom: "conv5_3/incep/2_reduce" top: "conv5_3/incep/2_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv5_3/incep/2_0/bn" type: "BatchNorm" bottom: "conv5_3/incep/2_0" top: "conv5_3/incep/2_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_3/incep/2_0/bn_scale" type: "Scale" bottom: "conv5_3/incep/2_0" top: "conv5_3/incep/2_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_3/incep/2_0/relu" type: "ReLU" bottom: "conv5_3/incep/2_0" top: "conv5_3/incep/2_0" } layer { name: "conv5_3/incep/2_1/conv" type: "Convolution" bottom: "conv5_3/incep/2_0" top: "conv5_3/incep/2_1" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv5_3/incep/2_1/bn" type: "BatchNorm" bottom: "conv5_3/incep/2_1" top: "conv5_3/incep/2_1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_3/incep/2_1/bn_scale" type: "Scale" bottom: "conv5_3/incep/2_1" top: "conv5_3/incep/2_1" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_3/incep/2_1/relu" type: "ReLU" bottom: "conv5_3/incep/2_1" top: "conv5_3/incep/2_1" } layer { name: "conv5_3/incep" type: "Concat" bottom: "conv5_3/incep/0" bottom: "conv5_3/incep/1_0" bottom: "conv5_3/incep/2_1" top: "conv5_3/incep" } layer { name: "conv5_3/out/conv" type: "Convolution" bottom: "conv5_3/incep" top: "conv5_3/out" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } convolution_param { num_output: 384 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_3/input" type: "Power" bottom: "conv5_2" top: "conv5_3/input" power_param { power: 1 scale: 1 shift: 0 } } layer { name: "conv5_3" type: "Eltwise" bottom: "conv5_3/out" bottom: "conv5_3/input" top: "conv5_3" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv5_4/incep/bn" type: "BatchNorm" bottom: "conv5_3" top: "conv5_4/incep/pre" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_4/incep/bn_scale" type: "Scale" bottom: "conv5_4/incep/pre" top: "conv5_4/incep/pre" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_4/incep/relu" type: "ReLU" bottom: "conv5_4/incep/pre" top: "conv5_4/incep/pre" } layer { name: "conv5_4/incep/0/conv" type: "Convolution" bottom: "conv5_4/incep/pre" top: "conv5_4/incep/0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_4/incep/0/bn" type: "BatchNorm" bottom: "conv5_4/incep/0" top: "conv5_4/incep/0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_4/incep/0/bn_scale" type: "Scale" bottom: "conv5_4/incep/0" top: "conv5_4/incep/0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_4/incep/0/relu" type: "ReLU" bottom: "conv5_4/incep/0" top: "conv5_4/incep/0" } layer { name: "conv5_4/incep/1_reduce/conv" type: "Convolution" bottom: "conv5_4/incep/pre" top: "conv5_4/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 96 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_4/incep/1_reduce/bn" type: "BatchNorm" bottom: "conv5_4/incep/1_reduce" top: "conv5_4/incep/1_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_4/incep/1_reduce/bn_scale" type: "Scale" bottom: "conv5_4/incep/1_reduce" top: "conv5_4/incep/1_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_4/incep/1_reduce/relu" type: "ReLU" bottom: "conv5_4/incep/1_reduce" top: "conv5_4/incep/1_reduce" } layer { name: "conv5_4/incep/1_0/conv" type: "Convolution" bottom: "conv5_4/incep/1_reduce" top: "conv5_4/incep/1_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 192 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv5_4/incep/1_0/bn" type: "BatchNorm" bottom: "conv5_4/incep/1_0" top: "conv5_4/incep/1_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_4/incep/1_0/bn_scale" type: "Scale" bottom: "conv5_4/incep/1_0" top: "conv5_4/incep/1_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_4/incep/1_0/relu" type: "ReLU" bottom: "conv5_4/incep/1_0" top: "conv5_4/incep/1_0" } layer { name: "conv5_4/incep/2_reduce/conv" type: "Convolution" bottom: "conv5_4/incep/pre" top: "conv5_4/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_4/incep/2_reduce/bn" type: "BatchNorm" bottom: "conv5_4/incep/2_reduce" top: "conv5_4/incep/2_reduce" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_4/incep/2_reduce/bn_scale" type: "Scale" bottom: "conv5_4/incep/2_reduce" top: "conv5_4/incep/2_reduce" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_4/incep/2_reduce/relu" type: "ReLU" bottom: "conv5_4/incep/2_reduce" top: "conv5_4/incep/2_reduce" } layer { name: "conv5_4/incep/2_0/conv" type: "Convolution" bottom: "conv5_4/incep/2_reduce" top: "conv5_4/incep/2_0" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv5_4/incep/2_0/bn" type: "BatchNorm" bottom: "conv5_4/incep/2_0" top: "conv5_4/incep/2_0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_4/incep/2_0/bn_scale" type: "Scale" bottom: "conv5_4/incep/2_0" top: "conv5_4/incep/2_0" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_4/incep/2_0/relu" type: "ReLU" bottom: "conv5_4/incep/2_0" top: "conv5_4/incep/2_0" } layer { name: "conv5_4/incep/2_1/conv" type: "Convolution" bottom: "conv5_4/incep/2_0" top: "conv5_4/incep/2_1" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false weight_filler { type: "xavier" } pad_h: 1 pad_w: 1 kernel_h: 3 kernel_w: 3 stride_h: 1 stride_w: 1 } } layer { name: "conv5_4/incep/2_1/bn" type: "BatchNorm" bottom: "conv5_4/incep/2_1" top: "conv5_4/incep/2_1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_4/incep/2_1/bn_scale" type: "Scale" bottom: "conv5_4/incep/2_1" top: "conv5_4/incep/2_1" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_4/incep/2_1/relu" type: "ReLU" bottom: "conv5_4/incep/2_1" top: "conv5_4/incep/2_1" } layer { name: "conv5_4/incep" type: "Concat" bottom: "conv5_4/incep/0" bottom: "conv5_4/incep/1_0" bottom: "conv5_4/incep/2_1" top: "conv5_4/incep" } layer { name: "conv5_4/out/conv" type: "Convolution" bottom: "conv5_4/incep" top: "conv5_4/out" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 384 bias_term: false weight_filler { type: "xavier" } pad_h: 0 pad_w: 0 kernel_h: 1 kernel_w: 1 stride_h: 1 stride_w: 1 } } layer { name: "conv5_4/out/bn" type: "BatchNorm" bottom: "conv5_4/out" top: "conv5_4/out" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_4/out/bn_scale" type: "Scale" bottom: "conv5_4/out" top: "conv5_4/out" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_4/input" type: "Power" bottom: "conv5_3" top: "conv5_4/input" power_param { power: 1 scale: 1 shift: 0 } } layer { name: "conv5_4" type: "Eltwise" bottom: "conv5_4/out" bottom: "conv5_4/input" top: "conv5_4" eltwise_param { operation: SUM coeff: 1 coeff: 1 } } layer { name: "conv5_4/last_bn" type: "BatchNorm" bottom: "conv5_4" top: "conv5_4" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "conv5_4/last_bn_scale" type: "Scale" bottom: "conv5_4" top: "conv5_4" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "conv5_4/last_relu" type: "ReLU" bottom: "conv5_4" top: "conv5_4" }

hyper feature

layer { name: "downsample" type: "Pooling" bottom: "conv3_4" top: "downsample" pooling_param { kernel_size: 3 stride: 2 pad: 0 pool: MAX } } layer { name: "upsample" type: "Deconvolution" bottom: "conv5_4" top: "upsample" param { lr_mult: 0 decay_mult: 0} convolution_param { num_output: 384 kernel_size: 4 pad: 1 stride: 2 group: 384 weight_filler: {type: "bilinear" } bias_term: false }
} layer { name: "concat" bottom: "downsample" bottom: "conv4_4" bottom: "upsample" top: "concat" type: "Concat" concat_param { axis: 1 } }

layer { name: "convf_rpn" type: "Convolution" bottom: "concat" top: "convf_rpn" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 128 kernel_size: 1 pad: 0 stride: 1 weight_filler { type: "xavier" std: 0.1 } bias_filler { type: "constant" value: 0.1 } } } layer { name: "reluf_rpn" type: "ReLU" bottom: "convf_rpn" top: "convf_rpn" }

layer { name: "convf_2" type: "Convolution" bottom: "concat" top: "convf_2" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 384 kernel_size: 1 pad: 0 stride: 1 weight_filler { type: "xavier" std: 0.1 } bias_filler { type: "constant" value: 0.1 } } } layer { name: "reluf_2" type: "ReLU" bottom: "convf_2" top: "convf_2" }

layer { name: "concat_convf" bottom: "convf_rpn" bottom: "convf_2" top: "convf" type: "Concat" concat_param { axis: 1 } }

################################################################################

RPN

################################################################################

RPN conv

layer { name: "rpn_conv1" type: "Convolution" bottom: "convf_rpn" top: "rpn_conv1" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 384 kernel_size: 3 pad: 1 stride: 1 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" value: 0 } } } layer { name: "rpn_relu1" type: "ReLU" bottom: "rpn_conv1" top: "rpn_conv1" } layer { name: "rpn_cls_score" type: "Convolution" bottom: "rpn_conv1" top: "rpn_cls_score" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 84 # 2(bg/fg) 42(anchors) kernel_size: 1 pad: 0 stride: 1 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" value: 0 } } } layer { name: "rpn_bbox_pred" type: "Convolution" bottom: "rpn_conv1" top: "rpn_bbox_pred" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0 } convolution_param { num_output: 168 # 4 42(anchors) kernel_size: 1 pad: 0 stride: 1 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" value: 0 } } } layer { bottom: "rpn_cls_score" top: "rpn_cls_score_reshape" name: "rpn_cls_score_reshape" type: "Reshape" reshape_param { shape { dim: 0 dim: 2 dim: -1 dim: 0 } } } layer { name: 'rpn-data' type: 'Python' bottom: 'rpn_cls_score' bottom: 'gt_boxes' bottom: 'im_info' bottom: 'data' top: 'rpn_labels' top: 'rpn_bbox_targets' top: 'rpn_bbox_inside_weights' top: 'rpn_bbox_outside_weights' include { phase: TRAIN } python_param { module: 'rpn.anchor_target_layer' layer: 'AnchorTargetLayer' param_str: "{'feat_stride': 16, 'ratios': [0.333, 0.5, 0.667, 1, 1.5, 2, 3], 'scales': [2, 3, 5, 9, 16, 32]}" } } layer { name: "rpn_loss_cls" type: "SoftmaxWithLoss" bottom: "rpn_cls_score_reshape" bottom: "rpn_labels" propagate_down: 1 propagate_down: 0 top: "rpn_loss_cls" include { phase: TRAIN } loss_weight: 1 loss_param { ignore_label: -1 normalize: true } } layer { name: "rpn_loss_bbox" type: "SmoothL1Loss" bottom: "rpn_bbox_pred" bottom: "rpn_bbox_targets" bottom: "rpn_bbox_inside_weights" bottom: "rpn_bbox_outside_weights" top: "rpn_loss_bbox" include { phase: TRAIN } loss_weight: 1 smooth_l1_loss_param { sigma: 3.0 } }

################################################################################

Proposal

################################################################################ layer { name: "rpn_cls_prob" type: "Softmax" bottom: "rpn_cls_score_reshape" top: "rpn_cls_prob" } layer { name: 'rpn_cls_prob_reshape' type: 'Reshape' bottom: 'rpn_cls_prob' top: 'rpn_cls_prob_reshape' reshape_param { shape { dim: 0 dim: 84 dim: -1 dim: 0 } } } layer { name: 'proposal' type: 'Python' bottom: 'rpn_cls_prob_reshape' bottom: 'rpn_bbox_pred' bottom: 'im_info' bottom: 'gt_boxes' top: 'rois' top: 'labels' top: 'bbox_targets' top: 'bbox_inside_weights' top: 'bbox_outside_weights' include { phase: TRAIN } python_param { module: 'rpn.proposal_layer' layer: 'ProposalLayer2' param_str: "{'feat_stride': 16, 'num_classes': 21, 'ratios': [0.333, 0.5, 0.667, 1, 1.5, 2, 3], 'scales': [2, 3, 5, 9, 16, 32]}" } } layer { name: 'proposal' type: 'Python' bottom: 'rpn_cls_prob_reshape' bottom: 'rpn_bbox_pred' bottom: 'im_info' top: 'rois' top: 'scores' include { phase: TEST } python_param { module: 'rpn.proposal_layer' layer: 'ProposalLayer' param_str: "{'feat_stride': 16, 'ratios': [0.333, 0.5, 0.667, 1, 1.5, 2, 3], 'scales': [2, 3, 5, 9, 16, 32]}" } }

################################################################################

RCNN

################################################################################ layer { name: "roi_pool_conv5" type: "ROIPooling" bottom: "convf" bottom: "rois" top: "roi_pool_conv5" roi_pooling_param { pooled_w: 6 pooled_h: 6 spatial_scale: 0.0625 # 1/16 } } layer { name: "fc6" type: "InnerProduct" bottom: "roi_pool_conv5" top: "fc6" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } inner_product_param { num_output: 4096 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } } } layer { name: "fc6/bn" type: "BatchNorm" bottom: "fc6" top: "fc6" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "fc6/scale" type: "Scale" bottom: "fc6" top: "fc6" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "fc6/dropout" type: "Dropout" bottom: "fc6" top: "fc6" dropout_param { dropout_ratio: 0.25 } } layer { name: "fc6/relu" type: "ReLU" bottom: "fc6" top: "fc6" } layer { name: "fc7" type: "InnerProduct" bottom: "fc6" top: "fc7" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 0.0 } inner_product_param { num_output: 4096 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.1 } } } layer { name: "fc7/bn" type: "BatchNorm" bottom: "fc7" top: "fc7" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { use_global_stats: true } } layer { name: "fc7/scale" type: "Scale" bottom: "fc7" top: "fc7" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { bias_term: true } } layer { name: "fc7/dropout" type: "Dropout" bottom: "fc7" top: "fc7" dropout_param { dropout_ratio: 0.25 } } layer { name: "fc7/relu" type: "ReLU" bottom: "fc7" top: "fc7" } layer { name: "cls_score" type: "InnerProduct" bottom: "fc7" top: "cls_score" param { lr_mult: 1.0 } param { lr_mult: 2.0 } inner_product_param { num_output: 21 weight_filler { type: "gaussian" std: 0.01 } bias_filler { type: "constant" value: 0 } } } layer { name: "bbox_pred" type: "InnerProduct" bottom: "fc7" top: "bbox_pred" param { lr_mult: 1.0 } param { lr_mult: 2.0 } inner_product_param { num_output: 84 weight_filler { type: "gaussian" std: 0.001 } bias_filler { type: "constant" value: 0 } } } layer { name: "loss_cls" type: "SoftmaxWithLoss" bottom: "cls_score" bottom: "labels" propagate_down: 1 propagate_down: 0 top: "loss_cls" include { phase: TRAIN } loss_weight: 1 loss_param { ignore_label: -1 normalize: true } } layer { name: "loss_bbox" type: "SmoothL1Loss" bottom: "bbox_pred" bottom: "bbox_targets" bottom: "bbox_inside_weights" bottom: "bbox_outside_weights" top: "loss_bbox" include { phase: TRAIN } loss_weight: 1 } layer { name: "cls_prob" type: "Softmax" bottom: "cls_score" top: "cls_prob" include { phase: TEST } loss_param { ignore_label: -1 normalize: true } }