name: "RMNet_SSD" layer { name: "data" type: "Input" top: "data" input_param { shape { dim: 1 dim: 3 dim: 1024 dim: 1024 } } } ################################################### ############### Data normalization ################ ################################################### layer { name: "data_bn" type: "BatchNorm" bottom: "data" top: "data_bn" param { lr_mult: 0.0 } param { lr_mult: 0.0 } param { lr_mult: 0.0 } } layer { name: "data_scale" type: "Scale" bottom: "data_bn" top: "data_bn" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "conv0" type: "Convolution" bottom: "data_bn" top: "conv0" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 1.0 } convolution_param { num_output: 3 pad: 3 kernel_size: 7 stride: 2 weight_filler { type: "msra" variance_norm: FAN_OUT } bias_filler { type: "constant" value: 0.0 } } } layer { name: "conv0_bn" type: "BatchNorm" bottom: "conv0" top: "conv0" } layer { name: "conv0_scale" type: "Scale" bottom: "conv0" top: "conv0" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "conv0_relu" type: "ReLU" bottom: "conv0" top: "conv0" } ################################################### ##################### Backbone #################### ################################################### layer { name: "init_block1/dim_inc/conv" type: "Convolution" bottom: "conv0" top: "init_block1/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 stride: 2 weight_filler { type: "msra" } } } layer { name: "init_block1/dim_inc/bn" type: "BatchNorm" bottom: "init_block1/dim_inc/conv" top: "init_block1/dim_inc/conv" } layer { name: "init_block1/dim_inc/scale" type: "Scale" bottom: "init_block1/dim_inc/conv" top: "init_block1/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "init_block1/dim_inc/fn" type: "ReLU" bottom: "init_block1/dim_inc/conv" top: "init_block1/dim_inc/conv" } layer { name: "bottleneck1_1/dim_red/conv" type: "Convolution" bottom: "init_block1/dim_inc/conv" top: "bottleneck1_1/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 8 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck1_1/dim_red/bn" type: "BatchNorm" bottom: "bottleneck1_1/dim_red/conv" top: "bottleneck1_1/dim_red/conv" } layer { name: "bottleneck1_1/dim_red/scale" type: "Scale" bottom: "bottleneck1_1/dim_red/conv" top: "bottleneck1_1/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck1_1/dim_red/fn" type: "ELU" bottom: "bottleneck1_1/dim_red/conv" top: "bottleneck1_1/dim_red/conv" } layer { name: "bottleneck1_1/inner/dw1/conv" type: "Convolution" bottom: "bottleneck1_1/dim_red/conv" top: "bottleneck1_1/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 8 bias_term: false pad: 1 kernel_size: 3 group: 8 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck1_1/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck1_1/inner/dw1/conv" top: "bottleneck1_1/inner/dw1/conv" } layer { name: "bottleneck1_1/inner/dw1/scale" type: "Scale" bottom: "bottleneck1_1/inner/dw1/conv" top: "bottleneck1_1/inner/dw1/conv" param {lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck1_1/inner/dw1/fn" type: "ELU" bottom: "bottleneck1_1/inner/dw1/conv" top: "bottleneck1_1/inner/dw1/conv" } layer { name: "bottleneck1_1/dim_inc/conv" type: "Convolution" bottom: "bottleneck1_1/inner/dw1/conv" top: "bottleneck1_1/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck1_1/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck1_1/dim_inc/conv" top: "bottleneck1_1/dim_inc/conv" } layer { name: "bottleneck1_1/dim_inc/scale" type: "Scale" bottom: "bottleneck1_1/dim_inc/conv" top: "bottleneck1_1/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck1_1/dim_inc/dropout" type: "Dropout" bottom: "bottleneck1_1/dim_inc/conv" top: "bottleneck1_1/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck1_1/add" type: "Eltwise" bottom: "init_block1/dim_inc/conv" bottom: "bottleneck1_1/dim_inc/conv" top: "bottleneck1_1/add" eltwise_param { operation: SUM } } layer { name: "bottleneck1_1/fn" type: "ELU" bottom: "bottleneck1_1/add" top: "bottleneck1_1/add" } layer { name: "bottleneck1_2/dim_red/conv" type: "Convolution" bottom: "bottleneck1_1/add" top: "bottleneck1_2/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 8 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck1_2/dim_red/bn" type: "BatchNorm" bottom: "bottleneck1_2/dim_red/conv" top: "bottleneck1_2/dim_red/conv" } layer { name: "bottleneck1_2/dim_red/scale" type: "Scale" bottom: "bottleneck1_2/dim_red/conv" top: "bottleneck1_2/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck1_2/dim_red/fn" type: "ELU" bottom: "bottleneck1_2/dim_red/conv" top: "bottleneck1_2/dim_red/conv" } layer { name: "bottleneck1_2/inner/dw1/conv" type: "Convolution" bottom: "bottleneck1_2/dim_red/conv" top: "bottleneck1_2/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 8 bias_term: false pad: 1 kernel_size: 3 group: 8 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck1_2/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck1_2/inner/dw1/conv" top: "bottleneck1_2/inner/dw1/conv" } layer { name: "bottleneck1_2/inner/dw1/scale" type: "Scale" bottom: "bottleneck1_2/inner/dw1/conv" top: "bottleneck1_2/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck1_2/inner/dw1/fn" type: "ELU" bottom: "bottleneck1_2/inner/dw1/conv" top: "bottleneck1_2/inner/dw1/conv" } layer { name: "bottleneck1_2/dim_inc/conv" type: "Convolution" bottom: "bottleneck1_2/inner/dw1/conv" top: "bottleneck1_2/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck1_2/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck1_2/dim_inc/conv" top: "bottleneck1_2/dim_inc/conv" } layer { name: "bottleneck1_2/dim_inc/scale" type: "Scale" bottom: "bottleneck1_2/dim_inc/conv" top: "bottleneck1_2/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck1_2/dim_inc/dropout" type: "Dropout" bottom: "bottleneck1_2/dim_inc/conv" top: "bottleneck1_2/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck1_2/add" type: "Eltwise" bottom: "bottleneck1_1/add" bottom: "bottleneck1_2/dim_inc/conv" top: "bottleneck1_2/add" eltwise_param { operation: SUM } } layer { name: "bottleneck1_2/fn" type: "ELU" bottom: "bottleneck1_2/add" top: "bottleneck1_2/add" } layer { name: "bottleneck1_3/dim_red/conv" type: "Convolution" bottom: "bottleneck1_2/add" top: "bottleneck1_3/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 8 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck1_3/dim_red/bn" type: "BatchNorm" bottom: "bottleneck1_3/dim_red/conv" top: "bottleneck1_3/dim_red/conv" } layer { name: "bottleneck1_3/dim_red/scale" type: "Scale" bottom: "bottleneck1_3/dim_red/conv" top: "bottleneck1_3/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck1_3/dim_red/fn" type: "ELU" bottom: "bottleneck1_3/dim_red/conv" top: "bottleneck1_3/dim_red/conv" } layer { name: "bottleneck1_3/inner/dw1/conv" type: "Convolution" bottom: "bottleneck1_3/dim_red/conv" top: "bottleneck1_3/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 8 bias_term: false pad: 1 kernel_size: 3 group: 8 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck1_3/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck1_3/inner/dw1/conv" top: "bottleneck1_3/inner/dw1/conv" } layer { name: "bottleneck1_3/inner/dw1/scale" type: "Scale" bottom: "bottleneck1_3/inner/dw1/conv" top: "bottleneck1_3/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck1_3/inner/dw1/fn" type: "ELU" bottom: "bottleneck1_3/inner/dw1/conv" top: "bottleneck1_3/inner/dw1/conv" } layer { name: "bottleneck1_3/dim_inc/conv" type: "Convolution" bottom: "bottleneck1_3/inner/dw1/conv" top: "bottleneck1_3/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck1_3/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck1_3/dim_inc/conv" top: "bottleneck1_3/dim_inc/conv" } layer { name: "bottleneck1_3/dim_inc/scale" type: "Scale" bottom: "bottleneck1_3/dim_inc/conv" top: "bottleneck1_3/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck1_3/dim_inc/dropout" type: "Dropout" bottom: "bottleneck1_3/dim_inc/conv" top: "bottleneck1_3/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck1_3/add" type: "Eltwise" bottom: "bottleneck1_2/add" bottom: "bottleneck1_3/dim_inc/conv" top: "bottleneck1_3/add" eltwise_param { operation: SUM } } layer { name: "bottleneck1_3/fn" type: "ELU" bottom: "bottleneck1_3/add" top: "bottleneck1_3/add" } layer { name: "bottleneck1_4/dim_red/conv" type: "Convolution" bottom: "bottleneck1_3/add" top: "bottleneck1_4/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 8 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck1_4/dim_red/bn" type: "BatchNorm" bottom: "bottleneck1_4/dim_red/conv" top: "bottleneck1_4/dim_red/conv" } layer { name: "bottleneck1_4/dim_red/scale" type: "Scale" bottom: "bottleneck1_4/dim_red/conv" top: "bottleneck1_4/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck1_4/dim_red/fn" type: "ELU" bottom: "bottleneck1_4/dim_red/conv" top: "bottleneck1_4/dim_red/conv" } layer { name: "bottleneck1_4/inner/dw1/conv" type: "Convolution" bottom: "bottleneck1_4/dim_red/conv" top: "bottleneck1_4/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 8 bias_term: false pad: 1 kernel_size: 3 group: 8 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck1_4/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck1_4/inner/dw1/conv" top: "bottleneck1_4/inner/dw1/conv" } layer { name: "bottleneck1_4/inner/dw1/scale" type: "Scale" bottom: "bottleneck1_4/inner/dw1/conv" top: "bottleneck1_4/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck1_4/inner/dw1/fn" type: "ELU" bottom: "bottleneck1_4/inner/dw1/conv" top: "bottleneck1_4/inner/dw1/conv" } layer { name: "bottleneck1_4/dim_inc/conv" type: "Convolution" bottom: "bottleneck1_4/inner/dw1/conv" top: "bottleneck1_4/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck1_4/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck1_4/dim_inc/conv" top: "bottleneck1_4/dim_inc/conv" } layer { name: "bottleneck1_4/dim_inc/scale" type: "Scale" bottom: "bottleneck1_4/dim_inc/conv" top: "bottleneck1_4/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck1_4/dim_inc/dropout" type: "Dropout" bottom: "bottleneck1_4/dim_inc/conv" top: "bottleneck1_4/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck1_4/add" type: "Eltwise" bottom: "bottleneck1_3/add" bottom: "bottleneck1_4/dim_inc/conv" top: "bottleneck1_4/add" eltwise_param { operation: SUM } } layer { name: "bottleneck1_4/fn" type: "ELU" bottom: "bottleneck1_4/add" top: "bottleneck1_4/add" } layer { name: "bottleneck2_0/dim_red/conv" type: "Convolution" bottom: "bottleneck1_4/add" top: "bottleneck2_0/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_0/dim_red/bn" type: "BatchNorm" bottom: "bottleneck2_0/dim_red/conv" top: "bottleneck2_0/dim_red/conv" } layer { name: "bottleneck2_0/dim_red/scale" type: "Scale" bottom: "bottleneck2_0/dim_red/conv" top: "bottleneck2_0/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_0/dim_red/fn" type: "ELU" bottom: "bottleneck2_0/dim_red/conv" top: "bottleneck2_0/dim_red/conv" } layer { name: "bottleneck2_0/inner/dw1/conv" type: "Convolution" bottom: "bottleneck2_0/dim_red/conv" top: "bottleneck2_0/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 group: 16 stride: 2 weight_filler { type: "msra" } } } layer { name: "bottleneck2_0/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck2_0/inner/dw1/conv" top: "bottleneck2_0/inner/dw1/conv" } layer { name: "bottleneck2_0/inner/dw1/scale" type: "Scale" bottom: "bottleneck2_0/inner/dw1/conv" top: "bottleneck2_0/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_0/inner/dw1/fn" type: "ELU" bottom: "bottleneck2_0/inner/dw1/conv" top: "bottleneck2_0/inner/dw1/conv" } layer { name: "bottleneck2_0/dim_inc/conv" type: "Convolution" bottom: "bottleneck2_0/inner/dw1/conv" top: "bottleneck2_0/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_0/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck2_0/dim_inc/conv" top: "bottleneck2_0/dim_inc/conv" } layer { name: "bottleneck2_0/dim_inc/scale" type: "Scale" bottom: "bottleneck2_0/dim_inc/conv" top: "bottleneck2_0/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_0/dim_inc/dropout" type: "Dropout" bottom: "bottleneck2_0/dim_inc/conv" top: "bottleneck2_0/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck2_0/skip/pooling" type: "Pooling" bottom: "bottleneck1_4/add" top: "bottleneck2_0/skip/pooling" pooling_param { pool: MAX kernel_size: 2 stride: 2 pad: 0 } } layer { name: "bottleneck2_0/skip/conv" type: "Convolution" bottom: "bottleneck2_0/skip/pooling" top: "bottleneck2_0/skip/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_0/skip/bn" type: "BatchNorm" bottom: "bottleneck2_0/skip/conv" top: "bottleneck2_0/skip/conv" } layer { name: "bottleneck2_0/skip/scale" type: "Scale" bottom: "bottleneck2_0/skip/conv" top: "bottleneck2_0/skip/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_0/add" type: "Eltwise" bottom: "bottleneck2_0/skip/conv" bottom: "bottleneck2_0/dim_inc/conv" top: "bottleneck2_0/add" eltwise_param { operation: SUM } } layer { name: "bottleneck2_0/fn" type: "ELU" bottom: "bottleneck2_0/add" top: "bottleneck2_0/add" } layer { name: "bottleneck2_1/dim_red/conv" type: "Convolution" bottom: "bottleneck2_0/add" top: "bottleneck2_1/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_1/dim_red/bn" type: "BatchNorm" bottom: "bottleneck2_1/dim_red/conv" top: "bottleneck2_1/dim_red/conv" } layer { name: "bottleneck2_1/dim_red/scale" type: "Scale" bottom: "bottleneck2_1/dim_red/conv" top: "bottleneck2_1/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_1/dim_red/fn" type: "ELU" bottom: "bottleneck2_1/dim_red/conv" top: "bottleneck2_1/dim_red/conv" } layer { name: "bottleneck2_1/inner/dw1/conv" type: "Convolution" bottom: "bottleneck2_1/dim_red/conv" top: "bottleneck2_1/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 group: 16 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_1/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck2_1/inner/dw1/conv" top: "bottleneck2_1/inner/dw1/conv" } layer { name: "bottleneck2_1/inner/dw1/scale" type: "Scale" bottom: "bottleneck2_1/inner/dw1/conv" top: "bottleneck2_1/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_1/inner/dw1/fn" type: "ELU" bottom: "bottleneck2_1/inner/dw1/conv" top: "bottleneck2_1/inner/dw1/conv" } layer { name: "bottleneck2_1/dim_inc/conv" type: "Convolution" bottom: "bottleneck2_1/inner/dw1/conv" top: "bottleneck2_1/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_1/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck2_1/dim_inc/conv" top: "bottleneck2_1/dim_inc/conv" } layer { name: "bottleneck2_1/dim_inc/scale" type: "Scale" bottom: "bottleneck2_1/dim_inc/conv" top: "bottleneck2_1/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_1/dim_inc/dropout" type: "Dropout" bottom: "bottleneck2_1/dim_inc/conv" top: "bottleneck2_1/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck2_1/add" type: "Eltwise" bottom: "bottleneck2_0/add" bottom: "bottleneck2_1/dim_inc/conv" top: "bottleneck2_1/add" eltwise_param { operation: SUM } } layer { name: "bottleneck2_1/fn" type: "ELU" bottom: "bottleneck2_1/add" top: "bottleneck2_1/add" } layer { name: "bottleneck2_2/dim_red/conv" type: "Convolution" bottom: "bottleneck2_1/add" top: "bottleneck2_2/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_2/dim_red/bn" type: "BatchNorm" bottom: "bottleneck2_2/dim_red/conv" top: "bottleneck2_2/dim_red/conv" } layer { name: "bottleneck2_2/dim_red/scale" type: "Scale" bottom: "bottleneck2_2/dim_red/conv" top: "bottleneck2_2/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_2/dim_red/fn" type: "ELU" bottom: "bottleneck2_2/dim_red/conv" top: "bottleneck2_2/dim_red/conv" } layer { name: "bottleneck2_2/inner/dw1/conv" type: "Convolution" bottom: "bottleneck2_2/dim_red/conv" top: "bottleneck2_2/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 group: 16 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_2/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck2_2/inner/dw1/conv" top: "bottleneck2_2/inner/dw1/conv" } layer { name: "bottleneck2_2/inner/dw1/scale" type: "Scale" bottom: "bottleneck2_2/inner/dw1/conv" top: "bottleneck2_2/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_2/inner/dw1/fn" type: "ELU" bottom: "bottleneck2_2/inner/dw1/conv" top: "bottleneck2_2/inner/dw1/conv" } layer { name: "bottleneck2_2/dim_inc/conv" type: "Convolution" bottom: "bottleneck2_2/inner/dw1/conv" top: "bottleneck2_2/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_2/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck2_2/dim_inc/conv" top: "bottleneck2_2/dim_inc/conv" } layer { name: "bottleneck2_2/dim_inc/scale" type: "Scale" bottom: "bottleneck2_2/dim_inc/conv" top: "bottleneck2_2/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_2/dim_inc/dropout" type: "Dropout" bottom: "bottleneck2_2/dim_inc/conv" top: "bottleneck2_2/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck2_2/add" type: "Eltwise" bottom: "bottleneck2_1/add" bottom: "bottleneck2_2/dim_inc/conv" top: "bottleneck2_2/add" eltwise_param { operation: SUM } } layer { name: "bottleneck2_2/fn" type: "ELU" bottom: "bottleneck2_2/add" top: "bottleneck2_2/add" } layer { name: "bottleneck2_3/dim_red/conv" type: "Convolution" bottom: "bottleneck2_2/add" top: "bottleneck2_3/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_3/dim_red/bn" type: "BatchNorm" bottom: "bottleneck2_3/dim_red/conv" top: "bottleneck2_3/dim_red/conv" } layer { name: "bottleneck2_3/dim_red/scale" type: "Scale" bottom: "bottleneck2_3/dim_red/conv" top: "bottleneck2_3/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_3/dim_red/fn" type: "ELU" bottom: "bottleneck2_3/dim_red/conv" top: "bottleneck2_3/dim_red/conv" } layer { name: "bottleneck2_3/inner/dw1/conv" type: "Convolution" bottom: "bottleneck2_3/dim_red/conv" top: "bottleneck2_3/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 group: 16 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_3/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck2_3/inner/dw1/conv" top: "bottleneck2_3/inner/dw1/conv" } layer { name: "bottleneck2_3/inner/dw1/scale" type: "Scale" bottom: "bottleneck2_3/inner/dw1/conv" top: "bottleneck2_3/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_3/inner/dw1/fn" type: "ELU" bottom: "bottleneck2_3/inner/dw1/conv" top: "bottleneck2_3/inner/dw1/conv" } layer { name: "bottleneck2_3/dim_inc/conv" type: "Convolution" bottom: "bottleneck2_3/inner/dw1/conv" top: "bottleneck2_3/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_3/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck2_3/dim_inc/conv" top: "bottleneck2_3/dim_inc/conv" } layer { name: "bottleneck2_3/dim_inc/scale" type: "Scale" bottom: "bottleneck2_3/dim_inc/conv" top: "bottleneck2_3/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_3/dim_inc/dropout" type: "Dropout" bottom: "bottleneck2_3/dim_inc/conv" top: "bottleneck2_3/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck2_3/add" type: "Eltwise" bottom: "bottleneck2_2/add" bottom: "bottleneck2_3/dim_inc/conv" top: "bottleneck2_3/add" eltwise_param { operation: SUM } } layer { name: "bottleneck2_3/fn" type: "ELU" bottom: "bottleneck2_3/add" top: "bottleneck2_3/add" } layer { name: "bottleneck2_4/dim_red/conv" type: "Convolution" bottom: "bottleneck2_3/add" top: "bottleneck2_4/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_4/dim_red/bn" type: "BatchNorm" bottom: "bottleneck2_4/dim_red/conv" top: "bottleneck2_4/dim_red/conv" } layer { name: "bottleneck2_4/dim_red/scale" type: "Scale" bottom: "bottleneck2_4/dim_red/conv" top: "bottleneck2_4/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_4/dim_red/fn" type: "ELU" bottom: "bottleneck2_4/dim_red/conv" top: "bottleneck2_4/dim_red/conv" } layer { name: "bottleneck2_4/inner/dw1/conv" type: "Convolution" bottom: "bottleneck2_4/dim_red/conv" top: "bottleneck2_4/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 group: 16 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_4/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck2_4/inner/dw1/conv" top: "bottleneck2_4/inner/dw1/conv" } layer { name: "bottleneck2_4/inner/dw1/scale" type: "Scale" bottom: "bottleneck2_4/inner/dw1/conv" top: "bottleneck2_4/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_4/inner/dw1/fn" type: "ELU" bottom: "bottleneck2_4/inner/dw1/conv" top: "bottleneck2_4/inner/dw1/conv" } layer { name: "bottleneck2_4/dim_inc/conv" type: "Convolution" bottom: "bottleneck2_4/inner/dw1/conv" top: "bottleneck2_4/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_4/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck2_4/dim_inc/conv" top: "bottleneck2_4/dim_inc/conv" } layer { name: "bottleneck2_4/dim_inc/scale" type: "Scale" bottom: "bottleneck2_4/dim_inc/conv" top: "bottleneck2_4/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_4/dim_inc/dropout" type: "Dropout" bottom: "bottleneck2_4/dim_inc/conv" top: "bottleneck2_4/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck2_4/add" type: "Eltwise" bottom: "bottleneck2_3/add" bottom: "bottleneck2_4/dim_inc/conv" top: "bottleneck2_4/add" eltwise_param { operation: SUM } } layer { name: "bottleneck2_4/fn" type: "ELU" bottom: "bottleneck2_4/add" top: "bottleneck2_4/add" } layer { name: "bottleneck2_5/dim_red/conv" type: "Convolution" bottom: "bottleneck2_4/add" top: "bottleneck2_5/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_5/dim_red/bn" type: "BatchNorm" bottom: "bottleneck2_5/dim_red/conv" top: "bottleneck2_5/dim_red/conv" } layer { name: "bottleneck2_5/dim_red/scale" type: "Scale" bottom: "bottleneck2_5/dim_red/conv" top: "bottleneck2_5/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_5/dim_red/fn" type: "ELU" bottom: "bottleneck2_5/dim_red/conv" top: "bottleneck2_5/dim_red/conv" } layer { name: "bottleneck2_5/inner/dw1/conv" type: "Convolution" bottom: "bottleneck2_5/dim_red/conv" top: "bottleneck2_5/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 group: 16 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_5/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck2_5/inner/dw1/conv" top: "bottleneck2_5/inner/dw1/conv" } layer { name: "bottleneck2_5/inner/dw1/scale" type: "Scale" bottom: "bottleneck2_5/inner/dw1/conv" top: "bottleneck2_5/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_5/inner/dw1/fn" type: "ELU" bottom: "bottleneck2_5/inner/dw1/conv" top: "bottleneck2_5/inner/dw1/conv" } layer { name: "bottleneck2_5/dim_inc/conv" type: "Convolution" bottom: "bottleneck2_5/inner/dw1/conv" top: "bottleneck2_5/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_5/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck2_5/dim_inc/conv" top: "bottleneck2_5/dim_inc/conv" } layer { name: "bottleneck2_5/dim_inc/scale" type: "Scale" bottom: "bottleneck2_5/dim_inc/conv" top: "bottleneck2_5/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_5/dim_inc/dropout" type: "Dropout" bottom: "bottleneck2_5/dim_inc/conv" top: "bottleneck2_5/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck2_5/add" type: "Eltwise" bottom: "bottleneck2_4/add" bottom: "bottleneck2_5/dim_inc/conv" top: "bottleneck2_5/add" eltwise_param { operation: SUM } } layer { name: "bottleneck2_5/fn" type: "ELU" bottom: "bottleneck2_5/add" top: "bottleneck2_5/add" } layer { name: "bottleneck2_6/dim_red/conv" type: "Convolution" bottom: "bottleneck2_5/add" top: "bottleneck2_6/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_6/dim_red/bn" type: "BatchNorm" bottom: "bottleneck2_6/dim_red/conv" top: "bottleneck2_6/dim_red/conv" } layer { name: "bottleneck2_6/dim_red/scale" type: "Scale" bottom: "bottleneck2_6/dim_red/conv" top: "bottleneck2_6/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_6/dim_red/fn" type: "ELU" bottom: "bottleneck2_6/dim_red/conv" top: "bottleneck2_6/dim_red/conv" } layer { name: "bottleneck2_6/inner/dw1/conv" type: "Convolution" bottom: "bottleneck2_6/dim_red/conv" top: "bottleneck2_6/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 group: 16 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_6/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck2_6/inner/dw1/conv" top: "bottleneck2_6/inner/dw1/conv" } layer { name: "bottleneck2_6/inner/dw1/scale" type: "Scale" bottom: "bottleneck2_6/inner/dw1/conv" top: "bottleneck2_6/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_6/inner/dw1/fn" type: "ELU" bottom: "bottleneck2_6/inner/dw1/conv" top: "bottleneck2_6/inner/dw1/conv" } layer { name: "bottleneck2_6/dim_inc/conv" type: "Convolution" bottom: "bottleneck2_6/inner/dw1/conv" top: "bottleneck2_6/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_6/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck2_6/dim_inc/conv" top: "bottleneck2_6/dim_inc/conv" } layer { name: "bottleneck2_6/dim_inc/scale" type: "Scale" bottom: "bottleneck2_6/dim_inc/conv" top: "bottleneck2_6/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_6/dim_inc/dropout" type: "Dropout" bottom: "bottleneck2_6/dim_inc/conv" top: "bottleneck2_6/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck2_6/add" type: "Eltwise" bottom: "bottleneck2_5/add" bottom: "bottleneck2_6/dim_inc/conv" top: "bottleneck2_6/add" eltwise_param { operation: SUM } } layer { name: "bottleneck2_6/fn" type: "ELU" bottom: "bottleneck2_6/add" top: "bottleneck2_6/add" } layer { name: "bottleneck2_7/dim_red/conv" type: "Convolution" bottom: "bottleneck2_6/add" top: "bottleneck2_7/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_7/dim_red/bn" type: "BatchNorm" bottom: "bottleneck2_7/dim_red/conv" top: "bottleneck2_7/dim_red/conv" } layer { name: "bottleneck2_7/dim_red/scale" type: "Scale" bottom: "bottleneck2_7/dim_red/conv" top: "bottleneck2_7/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_7/dim_red/fn" type: "ELU" bottom: "bottleneck2_7/dim_red/conv" top: "bottleneck2_7/dim_red/conv" } layer { name: "bottleneck2_7/inner/dw1/conv" type: "Convolution" bottom: "bottleneck2_7/dim_red/conv" top: "bottleneck2_7/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 group: 16 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_7/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck2_7/inner/dw1/conv" top: "bottleneck2_7/inner/dw1/conv" } layer { name: "bottleneck2_7/inner/dw1/scale" type: "Scale" bottom: "bottleneck2_7/inner/dw1/conv" top: "bottleneck2_7/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_7/inner/dw1/fn" type: "ELU" bottom: "bottleneck2_7/inner/dw1/conv" top: "bottleneck2_7/inner/dw1/conv" } layer { name: "bottleneck2_7/dim_inc/conv" type: "Convolution" bottom: "bottleneck2_7/inner/dw1/conv" top: "bottleneck2_7/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_7/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck2_7/dim_inc/conv" top: "bottleneck2_7/dim_inc/conv" } layer { name: "bottleneck2_7/dim_inc/scale" type: "Scale" bottom: "bottleneck2_7/dim_inc/conv" top: "bottleneck2_7/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_7/dim_inc/dropout" type: "Dropout" bottom: "bottleneck2_7/dim_inc/conv" top: "bottleneck2_7/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck2_7/add" type: "Eltwise" bottom: "bottleneck2_6/add" bottom: "bottleneck2_7/dim_inc/conv" top: "bottleneck2_7/add" eltwise_param { operation: SUM } } layer { name: "bottleneck2_7/fn" type: "ELU" bottom: "bottleneck2_7/add" top: "bottleneck2_7/add" } layer { name: "bottleneck2_8/dim_red/conv" type: "Convolution" bottom: "bottleneck2_7/add" top: "bottleneck2_8/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_8/dim_red/bn" type: "BatchNorm" bottom: "bottleneck2_8/dim_red/conv" top: "bottleneck2_8/dim_red/conv" } layer { name: "bottleneck2_8/dim_red/scale" type: "Scale" bottom: "bottleneck2_8/dim_red/conv" top: "bottleneck2_8/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_8/dim_red/fn" type: "ELU" bottom: "bottleneck2_8/dim_red/conv" top: "bottleneck2_8/dim_red/conv" } layer { name: "bottleneck2_8/inner/dw1/conv" type: "Convolution" bottom: "bottleneck2_8/dim_red/conv" top: "bottleneck2_8/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 group: 16 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_8/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck2_8/inner/dw1/conv" top: "bottleneck2_8/inner/dw1/conv" } layer { name: "bottleneck2_8/inner/dw1/scale" type: "Scale" bottom: "bottleneck2_8/inner/dw1/conv" top: "bottleneck2_8/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_8/inner/dw1/fn" type: "ELU" bottom: "bottleneck2_8/inner/dw1/conv" top: "bottleneck2_8/inner/dw1/conv" } layer { name: "bottleneck2_8/dim_inc/conv" type: "Convolution" bottom: "bottleneck2_8/inner/dw1/conv" top: "bottleneck2_8/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck2_8/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck2_8/dim_inc/conv" top: "bottleneck2_8/dim_inc/conv" } layer { name: "bottleneck2_8/dim_inc/scale" type: "Scale" bottom: "bottleneck2_8/dim_inc/conv" top: "bottleneck2_8/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck2_8/dim_inc/dropout" type: "Dropout" bottom: "bottleneck2_8/dim_inc/conv" top: "bottleneck2_8/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck2_8/add" type: "Eltwise" bottom: "bottleneck2_7/add" bottom: "bottleneck2_8/dim_inc/conv" top: "bottleneck2_8/add" eltwise_param { operation: SUM } } layer { name: "bottleneck2_8/fn" type: "ELU" bottom: "bottleneck2_8/add" top: "bottleneck2_8/add" } layer { name: "bottleneck3_0/dim_red/conv" type: "Convolution" bottom: "bottleneck2_8/add" top: "bottleneck3_0/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_0/dim_red/bn" type: "BatchNorm" bottom: "bottleneck3_0/dim_red/conv" top: "bottleneck3_0/dim_red/conv" } layer { name: "bottleneck3_0/dim_red/scale" type: "Scale" bottom: "bottleneck3_0/dim_red/conv" top: "bottleneck3_0/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_0/dim_red/fn" type: "ELU" bottom: "bottleneck3_0/dim_red/conv" top: "bottleneck3_0/dim_red/conv" } layer { name: "bottleneck3_0/inner/dw1/conv" type: "Convolution" bottom: "bottleneck3_0/dim_red/conv" top: "bottleneck3_0/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 group: 32 stride: 2 weight_filler { type: "msra" } } } layer { name: "bottleneck3_0/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck3_0/inner/dw1/conv" top: "bottleneck3_0/inner/dw1/conv" } layer { name: "bottleneck3_0/inner/dw1/scale" type: "Scale" bottom: "bottleneck3_0/inner/dw1/conv" top: "bottleneck3_0/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_0/inner/dw1/fn" type: "ELU" bottom: "bottleneck3_0/inner/dw1/conv" top: "bottleneck3_0/inner/dw1/conv" } layer { name: "bottleneck3_0/dim_inc/conv" type: "Convolution" bottom: "bottleneck3_0/inner/dw1/conv" top: "bottleneck3_0/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_0/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck3_0/dim_inc/conv" top: "bottleneck3_0/dim_inc/conv" } layer { name: "bottleneck3_0/dim_inc/scale" type: "Scale" bottom: "bottleneck3_0/dim_inc/conv" top: "bottleneck3_0/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_0/dim_inc/dropout" type: "Dropout" bottom: "bottleneck3_0/dim_inc/conv" top: "bottleneck3_0/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck3_0/skip/pooling" type: "Pooling" bottom: "bottleneck2_8/add" top: "bottleneck3_0/skip/pooling" pooling_param { pool: MAX kernel_size: 2 stride: 2 pad: 0 } } layer { name: "bottleneck3_0/skip/conv" type: "Convolution" bottom: "bottleneck3_0/skip/pooling" top: "bottleneck3_0/skip/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_0/skip/bn" type: "BatchNorm" bottom: "bottleneck3_0/skip/conv" top: "bottleneck3_0/skip/conv" } layer { name: "bottleneck3_0/skip/scale" type: "Scale" bottom: "bottleneck3_0/skip/conv" top: "bottleneck3_0/skip/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_0/add" type: "Eltwise" bottom: "bottleneck3_0/skip/conv" bottom: "bottleneck3_0/dim_inc/conv" top: "bottleneck3_0/add" eltwise_param { operation: SUM } } layer { name: "bottleneck3_0/fn" type: "ELU" bottom: "bottleneck3_0/add" top: "bottleneck3_0/add" } layer { name: "bottleneck3_1/dim_red/conv" type: "Convolution" bottom: "bottleneck3_0/add" top: "bottleneck3_1/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_1/dim_red/bn" type: "BatchNorm" bottom: "bottleneck3_1/dim_red/conv" top: "bottleneck3_1/dim_red/conv" } layer { name: "bottleneck3_1/dim_red/scale" type: "Scale" bottom: "bottleneck3_1/dim_red/conv" top: "bottleneck3_1/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_1/dim_red/fn" type: "ELU" bottom: "bottleneck3_1/dim_red/conv" top: "bottleneck3_1/dim_red/conv" } layer { name: "bottleneck3_1/inner/dw1/conv" type: "Convolution" bottom: "bottleneck3_1/dim_red/conv" top: "bottleneck3_1/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 group: 32 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_1/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck3_1/inner/dw1/conv" top: "bottleneck3_1/inner/dw1/conv" } layer { name: "bottleneck3_1/inner/dw1/scale" type: "Scale" bottom: "bottleneck3_1/inner/dw1/conv" top: "bottleneck3_1/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_1/inner/dw1/fn" type: "ELU" bottom: "bottleneck3_1/inner/dw1/conv" top: "bottleneck3_1/inner/dw1/conv" } layer { name: "bottleneck3_1/dim_inc/conv" type: "Convolution" bottom: "bottleneck3_1/inner/dw1/conv" top: "bottleneck3_1/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_1/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck3_1/dim_inc/conv" top: "bottleneck3_1/dim_inc/conv" } layer { name: "bottleneck3_1/dim_inc/scale" type: "Scale" bottom: "bottleneck3_1/dim_inc/conv" top: "bottleneck3_1/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_1/dim_inc/dropout" type: "Dropout" bottom: "bottleneck3_1/dim_inc/conv" top: "bottleneck3_1/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck3_1/add" type: "Eltwise" bottom: "bottleneck3_0/add" bottom: "bottleneck3_1/dim_inc/conv" top: "bottleneck3_1/add" eltwise_param { operation: SUM } } layer { name: "bottleneck3_1/fn" type: "ELU" bottom: "bottleneck3_1/add" top: "bottleneck3_1/add" } layer { name: "bottleneck3_2/dim_red/conv" type: "Convolution" bottom: "bottleneck3_1/add" top: "bottleneck3_2/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_2/dim_red/bn" type: "BatchNorm" bottom: "bottleneck3_2/dim_red/conv" top: "bottleneck3_2/dim_red/conv" } layer { name: "bottleneck3_2/dim_red/scale" type: "Scale" bottom: "bottleneck3_2/dim_red/conv" top: "bottleneck3_2/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_2/dim_red/fn" type: "ELU" bottom: "bottleneck3_2/dim_red/conv" top: "bottleneck3_2/dim_red/conv" } layer { name: "bottleneck3_2/inner/dw1/conv" type: "Convolution" bottom: "bottleneck3_2/dim_red/conv" top: "bottleneck3_2/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 group: 32 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_2/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck3_2/inner/dw1/conv" top: "bottleneck3_2/inner/dw1/conv" } layer { name: "bottleneck3_2/inner/dw1/scale" type: "Scale" bottom: "bottleneck3_2/inner/dw1/conv" top: "bottleneck3_2/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_2/inner/dw1/fn" type: "ELU" bottom: "bottleneck3_2/inner/dw1/conv" top: "bottleneck3_2/inner/dw1/conv" } layer { name: "bottleneck3_2/dim_inc/conv" type: "Convolution" bottom: "bottleneck3_2/inner/dw1/conv" top: "bottleneck3_2/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_2/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck3_2/dim_inc/conv" top: "bottleneck3_2/dim_inc/conv" } layer { name: "bottleneck3_2/dim_inc/scale" type: "Scale" bottom: "bottleneck3_2/dim_inc/conv" top: "bottleneck3_2/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_2/dim_inc/dropout" type: "Dropout" bottom: "bottleneck3_2/dim_inc/conv" top: "bottleneck3_2/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck3_2/add" type: "Eltwise" bottom: "bottleneck3_1/add" bottom: "bottleneck3_2/dim_inc/conv" top: "bottleneck3_2/add" eltwise_param { operation: SUM } } layer { name: "bottleneck3_2/fn" type: "ELU" bottom: "bottleneck3_2/add" top: "bottleneck3_2/add" } layer { name: "bottleneck3_3/dim_red/conv" type: "Convolution" bottom: "bottleneck3_2/add" top: "bottleneck3_3/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_3/dim_red/bn" type: "BatchNorm" bottom: "bottleneck3_3/dim_red/conv" top: "bottleneck3_3/dim_red/conv" } layer { name: "bottleneck3_3/dim_red/scale" type: "Scale" bottom: "bottleneck3_3/dim_red/conv" top: "bottleneck3_3/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_3/dim_red/fn" type: "ELU" bottom: "bottleneck3_3/dim_red/conv" top: "bottleneck3_3/dim_red/conv" } layer { name: "bottleneck3_3/inner/dw1/conv" type: "Convolution" bottom: "bottleneck3_3/dim_red/conv" top: "bottleneck3_3/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 group: 32 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_3/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck3_3/inner/dw1/conv" top: "bottleneck3_3/inner/dw1/conv" } layer { name: "bottleneck3_3/inner/dw1/scale" type: "Scale" bottom: "bottleneck3_3/inner/dw1/conv" top: "bottleneck3_3/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_3/inner/dw1/fn" type: "ELU" bottom: "bottleneck3_3/inner/dw1/conv" top: "bottleneck3_3/inner/dw1/conv" } layer { name: "bottleneck3_3/dim_inc/conv" type: "Convolution" bottom: "bottleneck3_3/inner/dw1/conv" top: "bottleneck3_3/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_3/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck3_3/dim_inc/conv" top: "bottleneck3_3/dim_inc/conv" } layer { name: "bottleneck3_3/dim_inc/scale" type: "Scale" bottom: "bottleneck3_3/dim_inc/conv" top: "bottleneck3_3/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_3/dim_inc/dropout" type: "Dropout" bottom: "bottleneck3_3/dim_inc/conv" top: "bottleneck3_3/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck3_3/add" type: "Eltwise" bottom: "bottleneck3_2/add" bottom: "bottleneck3_3/dim_inc/conv" top: "bottleneck3_3/add" eltwise_param { operation: SUM } } layer { name: "bottleneck3_3/fn" type: "ELU" bottom: "bottleneck3_3/add" top: "bottleneck3_3/add" } layer { name: "bottleneck3_4/dim_red/conv" type: "Convolution" bottom: "bottleneck3_3/add" top: "bottleneck3_4/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_4/dim_red/bn" type: "BatchNorm" bottom: "bottleneck3_4/dim_red/conv" top: "bottleneck3_4/dim_red/conv" } layer { name: "bottleneck3_4/dim_red/scale" type: "Scale" bottom: "bottleneck3_4/dim_red/conv" top: "bottleneck3_4/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_4/dim_red/fn" type: "ELU" bottom: "bottleneck3_4/dim_red/conv" top: "bottleneck3_4/dim_red/conv" } layer { name: "bottleneck3_4/inner/dw1/conv" type: "Convolution" bottom: "bottleneck3_4/dim_red/conv" top: "bottleneck3_4/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 group: 32 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_4/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck3_4/inner/dw1/conv" top: "bottleneck3_4/inner/dw1/conv" } layer { name: "bottleneck3_4/inner/dw1/scale" type: "Scale" bottom: "bottleneck3_4/inner/dw1/conv" top: "bottleneck3_4/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_4/inner/dw1/fn" type: "ELU" bottom: "bottleneck3_4/inner/dw1/conv" top: "bottleneck3_4/inner/dw1/conv" } layer { name: "bottleneck3_4/dim_inc/conv" type: "Convolution" bottom: "bottleneck3_4/inner/dw1/conv" top: "bottleneck3_4/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_4/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck3_4/dim_inc/conv" top: "bottleneck3_4/dim_inc/conv" } layer { name: "bottleneck3_4/dim_inc/scale" type: "Scale" bottom: "bottleneck3_4/dim_inc/conv" top: "bottleneck3_4/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_4/dim_inc/dropout" type: "Dropout" bottom: "bottleneck3_4/dim_inc/conv" top: "bottleneck3_4/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck3_4/add" type: "Eltwise" bottom: "bottleneck3_3/add" bottom: "bottleneck3_4/dim_inc/conv" top: "bottleneck3_4/add" eltwise_param { operation: SUM } } layer { name: "bottleneck3_4/fn" type: "ELU" bottom: "bottleneck3_4/add" top: "bottleneck3_4/add" } layer { name: "bottleneck3_5/dim_red/conv" type: "Convolution" bottom: "bottleneck3_4/add" top: "bottleneck3_5/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_5/dim_red/bn" type: "BatchNorm" bottom: "bottleneck3_5/dim_red/conv" top: "bottleneck3_5/dim_red/conv" } layer { name: "bottleneck3_5/dim_red/scale" type: "Scale" bottom: "bottleneck3_5/dim_red/conv" top: "bottleneck3_5/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_5/dim_red/fn" type: "ELU" bottom: "bottleneck3_5/dim_red/conv" top: "bottleneck3_5/dim_red/conv" } layer { name: "bottleneck3_5/inner/dw1/conv" type: "Convolution" bottom: "bottleneck3_5/dim_red/conv" top: "bottleneck3_5/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 group: 32 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_5/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck3_5/inner/dw1/conv" top: "bottleneck3_5/inner/dw1/conv" } layer { name: "bottleneck3_5/inner/dw1/scale" type: "Scale" bottom: "bottleneck3_5/inner/dw1/conv" top: "bottleneck3_5/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_5/inner/dw1/fn" type: "ELU" bottom: "bottleneck3_5/inner/dw1/conv" top: "bottleneck3_5/inner/dw1/conv" } layer { name: "bottleneck3_5/dim_inc/conv" type: "Convolution" bottom: "bottleneck3_5/inner/dw1/conv" top: "bottleneck3_5/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_5/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck3_5/dim_inc/conv" top: "bottleneck3_5/dim_inc/conv" } layer { name: "bottleneck3_5/dim_inc/scale" type: "Scale" bottom: "bottleneck3_5/dim_inc/conv" top: "bottleneck3_5/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_5/dim_inc/dropout" type: "Dropout" bottom: "bottleneck3_5/dim_inc/conv" top: "bottleneck3_5/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck3_5/add" type: "Eltwise" bottom: "bottleneck3_4/add" bottom: "bottleneck3_5/dim_inc/conv" top: "bottleneck3_5/add" eltwise_param { operation: SUM } } layer { name: "bottleneck3_5/fn" type: "ELU" bottom: "bottleneck3_5/add" top: "bottleneck3_5/add" } layer { name: "bottleneck3_6/dim_red/conv" type: "Convolution" bottom: "bottleneck3_5/add" top: "bottleneck3_6/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_6/dim_red/bn" type: "BatchNorm" bottom: "bottleneck3_6/dim_red/conv" top: "bottleneck3_6/dim_red/conv" } layer { name: "bottleneck3_6/dim_red/scale" type: "Scale" bottom: "bottleneck3_6/dim_red/conv" top: "bottleneck3_6/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_6/dim_red/fn" type: "ELU" bottom: "bottleneck3_6/dim_red/conv" top: "bottleneck3_6/dim_red/conv" } layer { name: "bottleneck3_6/inner/dw1/conv" type: "Convolution" bottom: "bottleneck3_6/dim_red/conv" top: "bottleneck3_6/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 group: 32 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_6/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck3_6/inner/dw1/conv" top: "bottleneck3_6/inner/dw1/conv" } layer { name: "bottleneck3_6/inner/dw1/scale" type: "Scale" bottom: "bottleneck3_6/inner/dw1/conv" top: "bottleneck3_6/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_6/inner/dw1/fn" type: "ELU" bottom: "bottleneck3_6/inner/dw1/conv" top: "bottleneck3_6/inner/dw1/conv" } layer { name: "bottleneck3_6/dim_inc/conv" type: "Convolution" bottom: "bottleneck3_6/inner/dw1/conv" top: "bottleneck3_6/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_6/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck3_6/dim_inc/conv" top: "bottleneck3_6/dim_inc/conv" } layer { name: "bottleneck3_6/dim_inc/scale" type: "Scale" bottom: "bottleneck3_6/dim_inc/conv" top: "bottleneck3_6/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_6/dim_inc/dropout" type: "Dropout" bottom: "bottleneck3_6/dim_inc/conv" top: "bottleneck3_6/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck3_6/add" type: "Eltwise" bottom: "bottleneck3_5/add" bottom: "bottleneck3_6/dim_inc/conv" top: "bottleneck3_6/add" eltwise_param { operation: SUM } } layer { name: "bottleneck3_6/fn" type: "ELU" bottom: "bottleneck3_6/add" top: "bottleneck3_6/add" } layer { name: "bottleneck3_7/dim_red/conv" type: "Convolution" bottom: "bottleneck3_6/add" top: "bottleneck3_7/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_7/dim_red/bn" type: "BatchNorm" bottom: "bottleneck3_7/dim_red/conv" top: "bottleneck3_7/dim_red/conv" } layer { name: "bottleneck3_7/dim_red/scale" type: "Scale" bottom: "bottleneck3_7/dim_red/conv" top: "bottleneck3_7/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_7/dim_red/fn" type: "ELU" bottom: "bottleneck3_7/dim_red/conv" top: "bottleneck3_7/dim_red/conv" } layer { name: "bottleneck3_7/inner/dw1/conv" type: "Convolution" bottom: "bottleneck3_7/dim_red/conv" top: "bottleneck3_7/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 group: 32 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_7/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck3_7/inner/dw1/conv" top: "bottleneck3_7/inner/dw1/conv" } layer { name: "bottleneck3_7/inner/dw1/scale" type: "Scale" bottom: "bottleneck3_7/inner/dw1/conv" top: "bottleneck3_7/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_7/inner/dw1/fn" type: "ELU" bottom: "bottleneck3_7/inner/dw1/conv" top: "bottleneck3_7/inner/dw1/conv" } layer { name: "bottleneck3_7/dim_inc/conv" type: "Convolution" bottom: "bottleneck3_7/inner/dw1/conv" top: "bottleneck3_7/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_7/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck3_7/dim_inc/conv" top: "bottleneck3_7/dim_inc/conv" } layer { name: "bottleneck3_7/dim_inc/scale" type: "Scale" bottom: "bottleneck3_7/dim_inc/conv" top: "bottleneck3_7/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_7/dim_inc/dropout" type: "Dropout" bottom: "bottleneck3_7/dim_inc/conv" top: "bottleneck3_7/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck3_7/add" type: "Eltwise" bottom: "bottleneck3_6/add" bottom: "bottleneck3_7/dim_inc/conv" top: "bottleneck3_7/add" eltwise_param { operation: SUM } } layer { name: "bottleneck3_7/fn" type: "ELU" bottom: "bottleneck3_7/add" top: "bottleneck3_7/add" } layer { name: "bottleneck3_8/dim_red/conv" type: "Convolution" bottom: "bottleneck3_7/add" top: "bottleneck3_8/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_8/dim_red/bn" type: "BatchNorm" bottom: "bottleneck3_8/dim_red/conv" top: "bottleneck3_8/dim_red/conv" } layer { name: "bottleneck3_8/dim_red/scale" type: "Scale" bottom: "bottleneck3_8/dim_red/conv" top: "bottleneck3_8/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_8/dim_red/fn" type: "ELU" bottom: "bottleneck3_8/dim_red/conv" top: "bottleneck3_8/dim_red/conv" } layer { name: "bottleneck3_8/inner/dw1/conv" type: "Convolution" bottom: "bottleneck3_8/dim_red/conv" top: "bottleneck3_8/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 group: 32 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_8/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck3_8/inner/dw1/conv" top: "bottleneck3_8/inner/dw1/conv" } layer { name: "bottleneck3_8/inner/dw1/scale" type: "Scale" bottom: "bottleneck3_8/inner/dw1/conv" top: "bottleneck3_8/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_8/inner/dw1/fn" type: "ELU" bottom: "bottleneck3_8/inner/dw1/conv" top: "bottleneck3_8/inner/dw1/conv" } layer { name: "bottleneck3_8/dim_inc/conv" type: "Convolution" bottom: "bottleneck3_8/inner/dw1/conv" top: "bottleneck3_8/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_8/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck3_8/dim_inc/conv" top: "bottleneck3_8/dim_inc/conv" } layer { name: "bottleneck3_8/dim_inc/scale" type: "Scale" bottom: "bottleneck3_8/dim_inc/conv" top: "bottleneck3_8/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_8/dim_inc/dropout" type: "Dropout" bottom: "bottleneck3_8/dim_inc/conv" top: "bottleneck3_8/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck3_8/add" type: "Eltwise" bottom: "bottleneck3_7/add" bottom: "bottleneck3_8/dim_inc/conv" top: "bottleneck3_8/add" eltwise_param { operation: SUM } } layer { name: "bottleneck3_8/fn" type: "ELU" bottom: "bottleneck3_8/add" top: "bottleneck3_8/add" } layer { name: "bottleneck3_9/dim_red/conv" type: "Convolution" bottom: "bottleneck3_8/add" top: "bottleneck3_9/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_9/dim_red/bn" type: "BatchNorm" bottom: "bottleneck3_9/dim_red/conv" top: "bottleneck3_9/dim_red/conv" } layer { name: "bottleneck3_9/dim_red/scale" type: "Scale" bottom: "bottleneck3_9/dim_red/conv" top: "bottleneck3_9/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_9/dim_red/fn" type: "ELU" bottom: "bottleneck3_9/dim_red/conv" top: "bottleneck3_9/dim_red/conv" } layer { name: "bottleneck3_9/inner/dw1/conv" type: "Convolution" bottom: "bottleneck3_9/dim_red/conv" top: "bottleneck3_9/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 group: 32 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_9/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck3_9/inner/dw1/conv" top: "bottleneck3_9/inner/dw1/conv" } layer { name: "bottleneck3_9/inner/dw1/scale" type: "Scale" bottom: "bottleneck3_9/inner/dw1/conv" top: "bottleneck3_9/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_9/inner/dw1/fn" type: "ELU" bottom: "bottleneck3_9/inner/dw1/conv" top: "bottleneck3_9/inner/dw1/conv" } layer { name: "bottleneck3_9/dim_inc/conv" type: "Convolution" bottom: "bottleneck3_9/inner/dw1/conv" top: "bottleneck3_9/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_9/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck3_9/dim_inc/conv" top: "bottleneck3_9/dim_inc/conv" } layer { name: "bottleneck3_9/dim_inc/scale" type: "Scale" bottom: "bottleneck3_9/dim_inc/conv" top: "bottleneck3_9/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_9/dim_inc/dropout" type: "Dropout" bottom: "bottleneck3_9/dim_inc/conv" top: "bottleneck3_9/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck3_9/add" type: "Eltwise" bottom: "bottleneck3_8/add" bottom: "bottleneck3_9/dim_inc/conv" top: "bottleneck3_9/add" eltwise_param { operation: SUM } } layer { name: "bottleneck3_9/fn" type: "ELU" bottom: "bottleneck3_9/add" top: "bottleneck3_9/add" } layer { name: "bottleneck3_10/dim_red/conv" type: "Convolution" bottom: "bottleneck3_9/add" top: "bottleneck3_10/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_10/dim_red/bn" type: "BatchNorm" bottom: "bottleneck3_10/dim_red/conv" top: "bottleneck3_10/dim_red/conv" } layer { name: "bottleneck3_10/dim_red/scale" type: "Scale" bottom: "bottleneck3_10/dim_red/conv" top: "bottleneck3_10/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_10/dim_red/fn" type: "ELU" bottom: "bottleneck3_10/dim_red/conv" top: "bottleneck3_10/dim_red/conv" } layer { name: "bottleneck3_10/inner/dw1/conv" type: "Convolution" bottom: "bottleneck3_10/dim_red/conv" top: "bottleneck3_10/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 group: 32 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_10/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck3_10/inner/dw1/conv" top: "bottleneck3_10/inner/dw1/conv" } layer { name: "bottleneck3_10/inner/dw1/scale" type: "Scale" bottom: "bottleneck3_10/inner/dw1/conv" top: "bottleneck3_10/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_10/inner/dw1/fn" type: "ELU" bottom: "bottleneck3_10/inner/dw1/conv" top: "bottleneck3_10/inner/dw1/conv" } layer { name: "bottleneck3_10/dim_inc/conv" type: "Convolution" bottom: "bottleneck3_10/inner/dw1/conv" top: "bottleneck3_10/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck3_10/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck3_10/dim_inc/conv" top: "bottleneck3_10/dim_inc/conv" } layer { name: "bottleneck3_10/dim_inc/scale" type: "Scale" bottom: "bottleneck3_10/dim_inc/conv" top: "bottleneck3_10/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck3_10/dim_inc/dropout" type: "Dropout" bottom: "bottleneck3_10/dim_inc/conv" top: "bottleneck3_10/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck3_10/add" type: "Eltwise" bottom: "bottleneck3_9/add" bottom: "bottleneck3_10/dim_inc/conv" top: "bottleneck3_10/add" eltwise_param { operation: SUM } } layer { name: "bottleneck3_10/fn" type: "ELU" bottom: "bottleneck3_10/add" top: "bottleneck3_10/add" } layer { name: "bottleneck4_0/dim_red/conv" type: "Convolution" bottom: "bottleneck3_10/add" top: "bottleneck4_0/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_0/dim_red/bn" type: "BatchNorm" bottom: "bottleneck4_0/dim_red/conv" top: "bottleneck4_0/dim_red/conv" } layer { name: "bottleneck4_0/dim_red/scale" type: "Scale" bottom: "bottleneck4_0/dim_red/conv" top: "bottleneck4_0/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_0/dim_red/fn" type: "ELU" bottom: "bottleneck4_0/dim_red/conv" top: "bottleneck4_0/dim_red/conv" } layer { name: "bottleneck4_0/inner/dw1/conv" type: "Convolution" bottom: "bottleneck4_0/dim_red/conv" top: "bottleneck4_0/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 64 stride: 2 weight_filler { type: "msra" } } } layer { name: "bottleneck4_0/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck4_0/inner/dw1/conv" top: "bottleneck4_0/inner/dw1/conv" } layer { name: "bottleneck4_0/inner/dw1/scale" type: "Scale" bottom: "bottleneck4_0/inner/dw1/conv" top: "bottleneck4_0/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_0/inner/dw1/fn" type: "ELU" bottom: "bottleneck4_0/inner/dw1/conv" top: "bottleneck4_0/inner/dw1/conv" } layer { name: "bottleneck4_0/dim_inc/conv" type: "Convolution" bottom: "bottleneck4_0/inner/dw1/conv" top: "bottleneck4_0/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_0/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck4_0/dim_inc/conv" top: "bottleneck4_0/dim_inc/conv" } layer { name: "bottleneck4_0/dim_inc/scale" type: "Scale" bottom: "bottleneck4_0/dim_inc/conv" top: "bottleneck4_0/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_0/dim_inc/dropout" type: "Dropout" bottom: "bottleneck4_0/dim_inc/conv" top: "bottleneck4_0/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck4_0/skip/pooling" type: "Pooling" bottom: "bottleneck3_10/add" top: "bottleneck4_0/skip/pooling" pooling_param { pool: MAX kernel_size: 2 stride: 2 pad: 0 } } layer { name: "bottleneck4_0/skip/conv" type: "Convolution" bottom: "bottleneck4_0/skip/pooling" top: "bottleneck4_0/skip/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_0/skip/bn" type: "BatchNorm" bottom: "bottleneck4_0/skip/conv" top: "bottleneck4_0/skip/conv" } layer { name: "bottleneck4_0/skip/scale" type: "Scale" bottom: "bottleneck4_0/skip/conv" top: "bottleneck4_0/skip/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_0/add" type: "Eltwise" bottom: "bottleneck4_0/skip/conv" bottom: "bottleneck4_0/dim_inc/conv" top: "bottleneck4_0/add" eltwise_param { operation: SUM } } layer { name: "bottleneck4_0/fn" type: "ELU" bottom: "bottleneck4_0/add" top: "bottleneck4_0/add" } layer { name: "bottleneck4_1/dim_red/conv" type: "Convolution" bottom: "bottleneck4_0/add" top: "bottleneck4_1/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_1/dim_red/bn" type: "BatchNorm" bottom: "bottleneck4_1/dim_red/conv" top: "bottleneck4_1/dim_red/conv" } layer { name: "bottleneck4_1/dim_red/scale" type: "Scale" bottom: "bottleneck4_1/dim_red/conv" top: "bottleneck4_1/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_1/dim_red/fn" type: "ELU" bottom: "bottleneck4_1/dim_red/conv" top: "bottleneck4_1/dim_red/conv" } layer { name: "bottleneck4_1/inner/dw1/conv" type: "Convolution" bottom: "bottleneck4_1/dim_red/conv" top: "bottleneck4_1/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 64 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_1/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck4_1/inner/dw1/conv" top: "bottleneck4_1/inner/dw1/conv" } layer { name: "bottleneck4_1/inner/dw1/scale" type: "Scale" bottom: "bottleneck4_1/inner/dw1/conv" top: "bottleneck4_1/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_1/inner/dw1/fn" type: "ELU" bottom: "bottleneck4_1/inner/dw1/conv" top: "bottleneck4_1/inner/dw1/conv" } layer { name: "bottleneck4_1/dim_inc/conv" type: "Convolution" bottom: "bottleneck4_1/inner/dw1/conv" top: "bottleneck4_1/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_1/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck4_1/dim_inc/conv" top: "bottleneck4_1/dim_inc/conv" } layer { name: "bottleneck4_1/dim_inc/scale" type: "Scale" bottom: "bottleneck4_1/dim_inc/conv" top: "bottleneck4_1/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_1/dim_inc/dropout" type: "Dropout" bottom: "bottleneck4_1/dim_inc/conv" top: "bottleneck4_1/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck4_1/add" type: "Eltwise" bottom: "bottleneck4_0/add" bottom: "bottleneck4_1/dim_inc/conv" top: "bottleneck4_1/add" eltwise_param { operation: SUM } } layer { name: "bottleneck4_1/fn" type: "ELU" bottom: "bottleneck4_1/add" top: "bottleneck4_1/add" } layer { name: "extra_pool" type: "Pooling" bottom: "bottleneck4_1/add" top: "extra_pool" pooling_param { pool: AVE kernel_size: 2 stride: 2 pad: 0 } } layer { name: "bottleneck4_2/dim_red/conv" type: "Convolution" bottom: "extra_pool" top: "bottleneck4_2/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_2/dim_red/bn" type: "BatchNorm" bottom: "bottleneck4_2/dim_red/conv" top: "bottleneck4_2/dim_red/conv" } layer { name: "bottleneck4_2/dim_red/scale" type: "Scale" bottom: "bottleneck4_2/dim_red/conv" top: "bottleneck4_2/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_2/dim_red/fn" type: "ELU" bottom: "bottleneck4_2/dim_red/conv" top: "bottleneck4_2/dim_red/conv" } layer { name: "bottleneck4_2/inner/dw1/conv" type: "Convolution" bottom: "bottleneck4_2/dim_red/conv" top: "bottleneck4_2/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 64 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_2/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck4_2/inner/dw1/conv" top: "bottleneck4_2/inner/dw1/conv" } layer { name: "bottleneck4_2/inner/dw1/scale" type: "Scale" bottom: "bottleneck4_2/inner/dw1/conv" top: "bottleneck4_2/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_2/inner/dw1/fn" type: "ELU" bottom: "bottleneck4_2/inner/dw1/conv" top: "bottleneck4_2/inner/dw1/conv" } layer { name: "bottleneck4_2/dim_inc/conv" type: "Convolution" bottom: "bottleneck4_2/inner/dw1/conv" top: "bottleneck4_2/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_2/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck4_2/dim_inc/conv" top: "bottleneck4_2/dim_inc/conv" } layer { name: "bottleneck4_2/dim_inc/scale" type: "Scale" bottom: "bottleneck4_2/dim_inc/conv" top: "bottleneck4_2/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_2/dim_inc/dropout" type: "Dropout" bottom: "bottleneck4_2/dim_inc/conv" top: "bottleneck4_2/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck4_2/add" type: "Eltwise" bottom: "extra_pool" bottom: "bottleneck4_2/dim_inc/conv" top: "bottleneck4_2/add" eltwise_param { operation: SUM } } layer { name: "bottleneck4_2/fn" type: "ELU" bottom: "bottleneck4_2/add" top: "bottleneck4_2/add" } layer { name: "bottleneck4_3/dim_red/conv" type: "Convolution" bottom: "bottleneck4_2/add" top: "bottleneck4_3/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_3/dim_red/bn" type: "BatchNorm" bottom: "bottleneck4_3/dim_red/conv" top: "bottleneck4_3/dim_red/conv" } layer { name: "bottleneck4_3/dim_red/scale" type: "Scale" bottom: "bottleneck4_3/dim_red/conv" top: "bottleneck4_3/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_3/dim_red/fn" type: "ELU" bottom: "bottleneck4_3/dim_red/conv" top: "bottleneck4_3/dim_red/conv" } layer { name: "bottleneck4_3/inner/dw1/conv" type: "Convolution" bottom: "bottleneck4_3/dim_red/conv" top: "bottleneck4_3/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 64 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_3/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck4_3/inner/dw1/conv" top: "bottleneck4_3/inner/dw1/conv" } layer { name: "bottleneck4_3/inner/dw1/scale" type: "Scale" bottom: "bottleneck4_3/inner/dw1/conv" top: "bottleneck4_3/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_3/inner/dw1/fn" type: "ELU" bottom: "bottleneck4_3/inner/dw1/conv" top: "bottleneck4_3/inner/dw1/conv" } layer { name: "bottleneck4_3/dim_inc/conv" type: "Convolution" bottom: "bottleneck4_3/inner/dw1/conv" top: "bottleneck4_3/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_3/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck4_3/dim_inc/conv" top: "bottleneck4_3/dim_inc/conv" } layer { name: "bottleneck4_3/dim_inc/scale" type: "Scale" bottom: "bottleneck4_3/dim_inc/conv" top: "bottleneck4_3/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_3/dim_inc/dropout" type: "Dropout" bottom: "bottleneck4_3/dim_inc/conv" top: "bottleneck4_3/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck4_3/add" type: "Eltwise" bottom: "bottleneck4_2/add" bottom: "bottleneck4_3/dim_inc/conv" top: "bottleneck4_3/add" eltwise_param { operation: SUM } } layer { name: "bottleneck4_3/fn" type: "ELU" bottom: "bottleneck4_3/add" top: "bottleneck4_3/add" } layer { name: "bottleneck4_4/dim_red/conv" type: "Convolution" bottom: "bottleneck4_3/add" top: "bottleneck4_4/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_4/dim_red/bn" type: "BatchNorm" bottom: "bottleneck4_4/dim_red/conv" top: "bottleneck4_4/dim_red/conv" } layer { name: "bottleneck4_4/dim_red/scale" type: "Scale" bottom: "bottleneck4_4/dim_red/conv" top: "bottleneck4_4/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_4/dim_red/fn" type: "ELU" bottom: "bottleneck4_4/dim_red/conv" top: "bottleneck4_4/dim_red/conv" } layer { name: "bottleneck4_4/inner/dw1/conv" type: "Convolution" bottom: "bottleneck4_4/dim_red/conv" top: "bottleneck4_4/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 64 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_4/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck4_4/inner/dw1/conv" top: "bottleneck4_4/inner/dw1/conv" } layer { name: "bottleneck4_4/inner/dw1/scale" type: "Scale" bottom: "bottleneck4_4/inner/dw1/conv" top: "bottleneck4_4/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_4/inner/dw1/fn" type: "ELU" bottom: "bottleneck4_4/inner/dw1/conv" top: "bottleneck4_4/inner/dw1/conv" } layer { name: "bottleneck4_4/dim_inc/conv" type: "Convolution" bottom: "bottleneck4_4/inner/dw1/conv" top: "bottleneck4_4/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_4/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck4_4/dim_inc/conv" top: "bottleneck4_4/dim_inc/conv" } layer { name: "bottleneck4_4/dim_inc/scale" type: "Scale" bottom: "bottleneck4_4/dim_inc/conv" top: "bottleneck4_4/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_4/dim_inc/dropout" type: "Dropout" bottom: "bottleneck4_4/dim_inc/conv" top: "bottleneck4_4/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck4_4/add" type: "Eltwise" bottom: "bottleneck4_3/add" bottom: "bottleneck4_4/dim_inc/conv" top: "bottleneck4_4/add" eltwise_param { operation: SUM } } layer { name: "bottleneck4_4/fn" type: "ELU" bottom: "bottleneck4_4/add" top: "bottleneck4_4/add" } layer { name: "bottleneck4_5/dim_red/conv" type: "Convolution" bottom: "bottleneck4_4/add" top: "bottleneck4_5/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_5/dim_red/bn" type: "BatchNorm" bottom: "bottleneck4_5/dim_red/conv" top: "bottleneck4_5/dim_red/conv" } layer { name: "bottleneck4_5/dim_red/scale" type: "Scale" bottom: "bottleneck4_5/dim_red/conv" top: "bottleneck4_5/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_5/dim_red/fn" type: "ELU" bottom: "bottleneck4_5/dim_red/conv" top: "bottleneck4_5/dim_red/conv" } layer { name: "bottleneck4_5/inner/dw1/conv" type: "Convolution" bottom: "bottleneck4_5/dim_red/conv" top: "bottleneck4_5/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 64 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_5/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck4_5/inner/dw1/conv" top: "bottleneck4_5/inner/dw1/conv" } layer { name: "bottleneck4_5/inner/dw1/scale" type: "Scale" bottom: "bottleneck4_5/inner/dw1/conv" top: "bottleneck4_5/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_5/inner/dw1/fn" type: "ELU" bottom: "bottleneck4_5/inner/dw1/conv" top: "bottleneck4_5/inner/dw1/conv" } layer { name: "bottleneck4_5/dim_inc/conv" type: "Convolution" bottom: "bottleneck4_5/inner/dw1/conv" top: "bottleneck4_5/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_5/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck4_5/dim_inc/conv" top: "bottleneck4_5/dim_inc/conv" } layer { name: "bottleneck4_5/dim_inc/scale" type: "Scale" bottom: "bottleneck4_5/dim_inc/conv" top: "bottleneck4_5/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_5/dim_inc/dropout" type: "Dropout" bottom: "bottleneck4_5/dim_inc/conv" top: "bottleneck4_5/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck4_5/add" type: "Eltwise" bottom: "bottleneck4_4/add" bottom: "bottleneck4_5/dim_inc/conv" top: "bottleneck4_5/add" eltwise_param { operation: SUM } } layer { name: "bottleneck4_5/fn" type: "ELU" bottom: "bottleneck4_5/add" top: "bottleneck4_5/add" } layer { name: "bottleneck4_6/dim_red/conv" type: "Convolution" bottom: "bottleneck4_5/add" top: "bottleneck4_6/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_6/dim_red/bn" type: "BatchNorm" bottom: "bottleneck4_6/dim_red/conv" top: "bottleneck4_6/dim_red/conv" } layer { name: "bottleneck4_6/dim_red/scale" type: "Scale" bottom: "bottleneck4_6/dim_red/conv" top: "bottleneck4_6/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_6/dim_red/fn" type: "ELU" bottom: "bottleneck4_6/dim_red/conv" top: "bottleneck4_6/dim_red/conv" } layer { name: "bottleneck4_6/inner/dw1/conv" type: "Convolution" bottom: "bottleneck4_6/dim_red/conv" top: "bottleneck4_6/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 64 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_6/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck4_6/inner/dw1/conv" top: "bottleneck4_6/inner/dw1/conv" } layer { name: "bottleneck4_6/inner/dw1/scale" type: "Scale" bottom: "bottleneck4_6/inner/dw1/conv" top: "bottleneck4_6/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_6/inner/dw1/fn" type: "ELU" bottom: "bottleneck4_6/inner/dw1/conv" top: "bottleneck4_6/inner/dw1/conv" } layer { name: "bottleneck4_6/dim_inc/conv" type: "Convolution" bottom: "bottleneck4_6/inner/dw1/conv" top: "bottleneck4_6/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_6/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck4_6/dim_inc/conv" top: "bottleneck4_6/dim_inc/conv" } layer { name: "bottleneck4_6/dim_inc/scale" type: "Scale" bottom: "bottleneck4_6/dim_inc/conv" top: "bottleneck4_6/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_6/dim_inc/dropout" type: "Dropout" bottom: "bottleneck4_6/dim_inc/conv" top: "bottleneck4_6/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck4_6/add" type: "Eltwise" bottom: "bottleneck4_5/add" bottom: "bottleneck4_6/dim_inc/conv" top: "bottleneck4_6/add" eltwise_param { operation: SUM } } layer { name: "bottleneck4_6/fn" type: "ELU" bottom: "bottleneck4_6/add" top: "bottleneck4_6/add" } layer { name: "bottleneck4_7/dim_red/conv" type: "Convolution" bottom: "bottleneck4_6/add" top: "bottleneck4_7/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_7/dim_red/bn" type: "BatchNorm" bottom: "bottleneck4_7/dim_red/conv" top: "bottleneck4_7/dim_red/conv" } layer { name: "bottleneck4_7/dim_red/scale" type: "Scale" bottom: "bottleneck4_7/dim_red/conv" top: "bottleneck4_7/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_7/dim_red/fn" type: "ELU" bottom: "bottleneck4_7/dim_red/conv" top: "bottleneck4_7/dim_red/conv" } layer { name: "bottleneck4_7/inner/dw1/conv" type: "Convolution" bottom: "bottleneck4_7/dim_red/conv" top: "bottleneck4_7/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 64 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_7/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck4_7/inner/dw1/conv" top: "bottleneck4_7/inner/dw1/conv" } layer { name: "bottleneck4_7/inner/dw1/scale" type: "Scale" bottom: "bottleneck4_7/inner/dw1/conv" top: "bottleneck4_7/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_7/inner/dw1/fn" type: "ELU" bottom: "bottleneck4_7/inner/dw1/conv" top: "bottleneck4_7/inner/dw1/conv" } layer { name: "bottleneck4_7/dim_inc/conv" type: "Convolution" bottom: "bottleneck4_7/inner/dw1/conv" top: "bottleneck4_7/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_7/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck4_7/dim_inc/conv" top: "bottleneck4_7/dim_inc/conv" } layer { name: "bottleneck4_7/dim_inc/scale" type: "Scale" bottom: "bottleneck4_7/dim_inc/conv" top: "bottleneck4_7/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_7/dim_inc/dropout" type: "Dropout" bottom: "bottleneck4_7/dim_inc/conv" top: "bottleneck4_7/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck4_7/add" type: "Eltwise" bottom: "bottleneck4_6/add" bottom: "bottleneck4_7/dim_inc/conv" top: "bottleneck4_7/add" eltwise_param { operation: SUM } } layer { name: "bottleneck4_7/fn" type: "ELU" bottom: "bottleneck4_7/add" top: "bottleneck4_7/add" } layer { name: "bottleneck4_8/dim_red/conv" type: "Convolution" bottom: "bottleneck4_7/add" top: "bottleneck4_8/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_8/dim_red/bn" type: "BatchNorm" bottom: "bottleneck4_8/dim_red/conv" top: "bottleneck4_8/dim_red/conv" } layer { name: "bottleneck4_8/dim_red/scale" type: "Scale" bottom: "bottleneck4_8/dim_red/conv" top: "bottleneck4_8/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_8/dim_red/fn" type: "ELU" bottom: "bottleneck4_8/dim_red/conv" top: "bottleneck4_8/dim_red/conv" } layer { name: "bottleneck4_8/inner/dw1/conv" type: "Convolution" bottom: "bottleneck4_8/dim_red/conv" top: "bottleneck4_8/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 64 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_8/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck4_8/inner/dw1/conv" top: "bottleneck4_8/inner/dw1/conv" } layer { name: "bottleneck4_8/inner/dw1/scale" type: "Scale" bottom: "bottleneck4_8/inner/dw1/conv" top: "bottleneck4_8/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_8/inner/dw1/fn" type: "ELU" bottom: "bottleneck4_8/inner/dw1/conv" top: "bottleneck4_8/inner/dw1/conv" } layer { name: "bottleneck4_8/dim_inc/conv" type: "Convolution" bottom: "bottleneck4_8/inner/dw1/conv" top: "bottleneck4_8/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_8/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck4_8/dim_inc/conv" top: "bottleneck4_8/dim_inc/conv" } layer { name: "bottleneck4_8/dim_inc/scale" type: "Scale" bottom: "bottleneck4_8/dim_inc/conv" top: "bottleneck4_8/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_8/dim_inc/dropout" type: "Dropout" bottom: "bottleneck4_8/dim_inc/conv" top: "bottleneck4_8/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck4_8/add" type: "Eltwise" bottom: "bottleneck4_7/add" bottom: "bottleneck4_8/dim_inc/conv" top: "bottleneck4_8/add" eltwise_param { operation: SUM } } layer { name: "bottleneck4_8/fn" type: "ELU" bottom: "bottleneck4_8/add" top: "bottleneck4_8/add" } layer { name: "bottleneck4_9/dim_red/conv" type: "Convolution" bottom: "bottleneck4_8/add" top: "bottleneck4_9/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_9/dim_red/bn" type: "BatchNorm" bottom: "bottleneck4_9/dim_red/conv" top: "bottleneck4_9/dim_red/conv" } layer { name: "bottleneck4_9/dim_red/scale" type: "Scale" bottom: "bottleneck4_9/dim_red/conv" top: "bottleneck4_9/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_9/dim_red/fn" type: "ELU" bottom: "bottleneck4_9/dim_red/conv" top: "bottleneck4_9/dim_red/conv" } layer { name: "bottleneck4_9/inner/dw1/conv" type: "Convolution" bottom: "bottleneck4_9/dim_red/conv" top: "bottleneck4_9/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 64 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_9/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck4_9/inner/dw1/conv" top: "bottleneck4_9/inner/dw1/conv" } layer { name: "bottleneck4_9/inner/dw1/scale" type: "Scale" bottom: "bottleneck4_9/inner/dw1/conv" top: "bottleneck4_9/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_9/inner/dw1/fn" type: "ELU" bottom: "bottleneck4_9/inner/dw1/conv" top: "bottleneck4_9/inner/dw1/conv" } layer { name: "bottleneck4_9/dim_inc/conv" type: "Convolution" bottom: "bottleneck4_9/inner/dw1/conv" top: "bottleneck4_9/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_9/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck4_9/dim_inc/conv" top: "bottleneck4_9/dim_inc/conv" } layer { name: "bottleneck4_9/dim_inc/scale" type: "Scale" bottom: "bottleneck4_9/dim_inc/conv" top: "bottleneck4_9/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_9/dim_inc/dropout" type: "Dropout" bottom: "bottleneck4_9/dim_inc/conv" top: "bottleneck4_9/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck4_9/add" type: "Eltwise" bottom: "bottleneck4_8/add" bottom: "bottleneck4_9/dim_inc/conv" top: "bottleneck4_9/add" eltwise_param { operation: SUM } } layer { name: "bottleneck4_9/fn" type: "ELU" bottom: "bottleneck4_9/add" top: "bottleneck4_9/add" } layer { name: "bottleneck4_10/dim_red/conv" type: "Convolution" bottom: "bottleneck4_9/add" top: "bottleneck4_10/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_10/dim_red/bn" type: "BatchNorm" bottom: "bottleneck4_10/dim_red/conv" top: "bottleneck4_10/dim_red/conv" } layer { name: "bottleneck4_10/dim_red/scale" type: "Scale" bottom: "bottleneck4_10/dim_red/conv" top: "bottleneck4_10/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_10/dim_red/fn" type: "ELU" bottom: "bottleneck4_10/dim_red/conv" top: "bottleneck4_10/dim_red/conv" } layer { name: "bottleneck4_10/inner/dw1/conv" type: "Convolution" bottom: "bottleneck4_10/dim_red/conv" top: "bottleneck4_10/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 64 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_10/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck4_10/inner/dw1/conv" top: "bottleneck4_10/inner/dw1/conv" } layer { name: "bottleneck4_10/inner/dw1/scale" type: "Scale" bottom: "bottleneck4_10/inner/dw1/conv" top: "bottleneck4_10/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_10/inner/dw1/fn" type: "ELU" bottom: "bottleneck4_10/inner/dw1/conv" top: "bottleneck4_10/inner/dw1/conv" } layer { name: "bottleneck4_10/dim_inc/conv" type: "Convolution" bottom: "bottleneck4_10/inner/dw1/conv" top: "bottleneck4_10/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_10/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck4_10/dim_inc/conv" top: "bottleneck4_10/dim_inc/conv" } layer { name: "bottleneck4_10/dim_inc/scale" type: "Scale" bottom: "bottleneck4_10/dim_inc/conv" top: "bottleneck4_10/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_10/dim_inc/dropout" type: "Dropout" bottom: "bottleneck4_10/dim_inc/conv" top: "bottleneck4_10/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck4_10/add" type: "Eltwise" bottom: "bottleneck4_9/add" bottom: "bottleneck4_10/dim_inc/conv" top: "bottleneck4_10/add" eltwise_param { operation: SUM } } layer { name: "bottleneck4_10/fn" type: "ELU" bottom: "bottleneck4_10/add" top: "bottleneck4_10/add" } layer { name: "bottleneck4_11/dim_red/conv" type: "Convolution" bottom: "bottleneck4_10/add" top: "bottleneck4_11/dim_red/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_11/dim_red/bn" type: "BatchNorm" bottom: "bottleneck4_11/dim_red/conv" top: "bottleneck4_11/dim_red/conv" } layer { name: "bottleneck4_11/dim_red/scale" type: "Scale" bottom: "bottleneck4_11/dim_red/conv" top: "bottleneck4_11/dim_red/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_11/dim_red/fn" type: "ELU" bottom: "bottleneck4_11/dim_red/conv" top: "bottleneck4_11/dim_red/conv" } layer { name: "bottleneck4_11/inner/dw1/conv" type: "Convolution" bottom: "bottleneck4_11/dim_red/conv" top: "bottleneck4_11/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 64 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_11/inner/dw1/bn" type: "BatchNorm" bottom: "bottleneck4_11/inner/dw1/conv" top: "bottleneck4_11/inner/dw1/conv" } layer { name: "bottleneck4_11/inner/dw1/scale" type: "Scale" bottom: "bottleneck4_11/inner/dw1/conv" top: "bottleneck4_11/inner/dw1/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_11/inner/dw1/fn" type: "ELU" bottom: "bottleneck4_11/inner/dw1/conv" top: "bottleneck4_11/inner/dw1/conv" } layer { name: "bottleneck4_11/dim_inc/conv" type: "Convolution" bottom: "bottleneck4_11/inner/dw1/conv" top: "bottleneck4_11/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "bottleneck4_11/dim_inc/bn" type: "BatchNorm" bottom: "bottleneck4_11/dim_inc/conv" top: "bottleneck4_11/dim_inc/conv" } layer { name: "bottleneck4_11/dim_inc/scale" type: "Scale" bottom: "bottleneck4_11/dim_inc/conv" top: "bottleneck4_11/dim_inc/conv" param { lr_mult: 1.0 decay_mult: 0.0 } param { lr_mult: 2.0 decay_mult: 0.0 } scale_param { axis: 1 filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "bottleneck4_11/dim_inc/dropout" type: "Dropout" bottom: "bottleneck4_11/dim_inc/conv" top: "bottleneck4_11/dim_inc/conv" dropout_param { dropout_ratio: 0.10000000149 } } layer { name: "bottleneck4_11/add" type: "Eltwise" bottom: "bottleneck4_10/add" bottom: "bottleneck4_11/dim_inc/conv" top: "bottleneck4_11/add" eltwise_param { operation: SUM } } layer { name: "bottleneck4_11/fn" type: "ELU" bottom: "bottleneck4_11/add" top: "x16_out" } ################################################### ################# Extra downscale ################# ################################################### layer { name: "x32_out" type: "Convolution" bottom: "x16_out" top: "x32_out" param { lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" value: 0.0 } } } layer { name: "x32_out_bn" type: "BatchNorm" bottom: "x32_out" top: "x32_out" param { lr_mult: 0.0 } param { lr_mult: 0.0 } param { lr_mult: 0.0 } } layer { name: "x32_out_scale" type: "Scale" bottom: "x32_out" top: "x32_out" param { lr_mult: 1.0 decay_mult: 1.0 } param { lr_mult: 2.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "x32_out_relu" type: "ReLU" bottom: "x32_out" top: "x32_out" } ################################################ ########### Detection heads ############# ################################################ layer { name: "x08_out" type: "Convolution" bottom: "bottleneck3_10/add" top: "x08_out" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0 } } } layer { name: "x08_loc_dss" type: "Convolution" bottom: "x08_out" top: "x08_loc" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 44 # 4 * num_priors pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0 } } } layer { name: "x08_loc_perm" type: "Permute" bottom: "x08_loc" top: "x08_loc_perm" permute_param { order: 0 order: 2 order: 3 order: 1 } } layer { name: "x08_loc_flat" type: "Flatten" bottom: "x08_loc_perm" top: "x08_loc_flat" flatten_param { axis: 1 } } layer { name: "x08_conf_dss" type: "Convolution" bottom: "x08_out" top: "x08_conf" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 44 # num_classes * num_priors pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0 } } } layer { name: "x08_conf_perm" type: "Permute" bottom: "x08_conf" top: "x08_conf_perm" permute_param { order: 0 order: 2 order: 3 order: 1 } } layer { name: "x08_conf_flat" type: "Flatten" bottom: "x08_conf_perm" top: "x08_conf_flat" flatten_param { axis: 1 } } layer { name: "x08_priorbox" type: "PriorBoxClustered" bottom: "x08_out" bottom: "data" top: "x08_priorbox" prior_box_param { width: 15.012000 height: 33.376000 width: 13.170000 height: 55.350000 width: 19.670000 height: 80.400000 width: 37.734000 height: 47.070000 width: 25.056000 height: 110.014000 width: 70.572000 height: 51.754000 width: 53.248000 height: 80.216000 width: 33.790000 height: 145.092000 width: 104.738000 height: 74.204000 width: 76.564000 height: 114.042000 width: 47.124000 height: 193.894000 flip: false clip: false variance: 0.1 variance: 0.1 variance: 0.2 variance: 0.2 step: 16 offset: 0.5 } } layer { name: "x16_out_128" type: "Convolution" bottom: "x16_out" top: "x16_out_128" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0 } } } layer { name: "x16_loc_dss" type: "Convolution" bottom: "x16_out_128" top: "x16_loc" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 44 # 4 * num_priors pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0 } } } layer { name: "x16_loc_perm" type: "Permute" bottom: "x16_loc" top: "x16_loc_perm" permute_param { order: 0 order: 2 order: 3 order: 1 } } layer { name: "x16_loc_flat" type: "Flatten" bottom: "x16_loc_perm" top: "x16_loc_flat" flatten_param { axis: 1 } } layer { name: "x16_conf_dss" type: "Convolution" bottom: "x16_out_128" top: "x16_conf" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 44 # num_classes * num_priors pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0 } } } layer { name: "x16_conf_perm" type: "Permute" bottom: "x16_conf" top: "x16_conf_perm" permute_param { order: 0 order: 2 order: 3 order: 1 } } layer { name: "x16_conf_flat" type: "Flatten" bottom: "x16_conf_perm" top: "x16_conf_flat" flatten_param { axis: 1 } } layer { name: "x16_priorbox" type: "PriorBoxClustered" bottom: "x16_out_128" bottom: "data" top: "x16_priorbox" prior_box_param { width: 149.542000 height: 99.006000 width: 95.642000 height: 157.426000 width: 67.098000 height: 271.322000 width: 146.058000 height: 154.164000 width: 118.698000 height: 211.738000 width: 77.356000 height: 373.560000 width: 225.868000 height: 157.608000 width: 148.356000 height: 284.990000 width: 200.298000 height: 241.484000 width: 187.102000 height: 368.220000 width: 142.320000 height: 496.012000 flip: false clip: false variance: 0.1 variance: 0.1 variance: 0.2 variance: 0.2 step: 64 offset: 0.5 } } layer { name: "x32_loc_dss" type: "Convolution" bottom: "x32_out" top: "x32_loc" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 32 # 4 * num_priors pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0 } } } layer { name: "x32_loc_perm" type: "Permute" bottom: "x32_loc" top: "x32_loc_perm" permute_param { order: 0 order: 2 order: 3 order: 1 } } layer { name: "x32_loc_flat" type: "Flatten" bottom: "x32_loc_perm" top: "x32_loc_flat" flatten_param { axis: 1 } } layer { name: "x32_conf_dss" type: "Convolution" bottom: "x32_out" top: "x32_conf" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 32 # num_classes * num_priors pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0 } } } layer { name: "x32_conf_perm" type: "Permute" bottom: "x32_conf" top: "x32_conf_perm" permute_param { order: 0 order: 2 order: 3 order: 1 } } layer { name: "x32_conf_flat" type: "Flatten" bottom: "x32_conf_perm" top: "x32_conf_flat" flatten_param { axis: 1 } } layer { name: "x32_priorbox" type: "PriorBoxClustered" bottom: "x32_out" bottom: "data" top: "x32_priorbox" prior_box_param { width: 298.036000 height: 249.180000 width: 436.808000 height: 233.772000 width: 291.566000 height: 408.430000 width: 186.380000 height: 673.460000 width: 328.214000 height: 581.616000 width: 971.906000 height: 259.818000 width: 357.798000 height: 818.590000 width: 683.384000 height: 518.610000 flip: false clip: false variance: 0.1 variance: 0.1 variance: 0.2 variance: 0.2 step: 128 offset: 0.5 } } layer { name: "mbox_loc" type: "Concat" bottom: "x08_loc_flat" bottom: "x16_loc_flat" bottom: "x32_loc_flat" top: "mbox_loc" concat_param { axis: 1 } } layer { name: "mbox_conf" type: "Concat" bottom: "x08_conf_flat" bottom: "x16_conf_flat" bottom: "x32_conf_flat" top: "mbox_conf" concat_param { axis: 1 } } layer { name: "mbox_priorbox" type: "Concat" bottom: "x08_priorbox" bottom: "x16_priorbox" bottom: "x32_priorbox" top: "mbox_priorbox" concat_param { axis: 2 } } ################################################### ################ Detection Output ################# ################################################### layer { name: "mbox_conf_reshape" type: "Reshape" bottom: "mbox_conf" top: "mbox_conf_reshape" reshape_param { shape { dim: 0 dim: -1 dim: 4 } } } layer { name: "mbox_conf_softmax" type: "Softmax" bottom: "mbox_conf_reshape" top: "mbox_conf_softmax" softmax_param { axis: 2 } } layer { name: "mbox_conf_flatten" type: "Flatten" bottom: "mbox_conf_softmax" top: "mbox_conf_flatten" flatten_param { axis: 1 } } layer { name: "detection_out" type: "DetectionOutput" bottom: "mbox_loc" bottom: "mbox_conf_flatten" bottom: "mbox_priorbox" top: "detection_out" detection_output_param { num_classes: 4 share_location: true background_label_id: 0 nms_param { nms_threshold: 0.45 top_k: 400 } code_type: CENTER_SIZE keep_top_k: 200 confidence_threshold: 0.05 } } #layer { # name: "detection_out" # type: "Reshape" # bottom: "detection_out_raw" # top: "detection_out" # reshape_param { # shape { # dim: -1 # dim: 7 # } # } #}