name: "res30-bm-deploy" input: "data" input_dim: 1 input_dim: 3 input_dim: 352 input_dim: 352 layer { name: "image_process" type: "Scale" bottom: "data" top: "image_process" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv1_conv" type: "Convolution" bottom: "image_process" top: "conv1_conv" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "conv1_bn" type: "BatchNorm" bottom: "conv1_conv" top: "conv1_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "conv1_sc" type: "Scale" bottom: "conv1_conv" top: "conv1_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "conv1_relu" type: "ReLU" bottom: "conv1_conv" top: "conv1_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "conv2_conv" type: "Convolution" bottom: "conv1_conv" top: "conv2_conv" convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "conv2_bn" type: "BatchNorm" bottom: "conv2_conv" top: "conv2_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "conv2_sc" type: "Scale" bottom: "conv2_conv" top: "conv2_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "conv2_relu" type: "ReLU" bottom: "conv2_conv" top: "conv2_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "conv3_conv" type: "Convolution" bottom: "conv2_conv" top: "conv3_conv" convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "conv3_bn" type: "BatchNorm" bottom: "conv3_conv" top: "conv3_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "conv3_sc" type: "Scale" bottom: "conv3_conv" top: "conv3_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "conv3_relu" type: "ReLU" bottom: "conv3_conv" top: "conv3_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res2a_branch2a_conv" type: "Convolution" bottom: "conv3_conv" top: "res2a_branch2a_conv" convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res2a_branch2a_bn" type: "BatchNorm" bottom: "res2a_branch2a_conv" top: "res2a_branch2a_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res2a_branch2a_sc" type: "Scale" bottom: "res2a_branch2a_conv" top: "res2a_branch2a_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res2a_branch2a_relu" type: "ReLU" bottom: "res2a_branch2a_conv" top: "res2a_branch2a_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res2a_branch2b_conv" type: "Convolution" bottom: "res2a_branch2a_conv" top: "res2a_branch2b_conv" convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res2a_branch2b_bn" type: "BatchNorm" bottom: "res2a_branch2b_conv" top: "res2a_branch2b_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res2a_branch2b_sc" type: "Scale" bottom: "res2a_branch2b_conv" top: "res2a_branch2b_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res2a_branch2b_relu" type: "ReLU" bottom: "res2a_branch2b_conv" top: "res2a_branch2b_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res2a_branch2c_conv" type: "Convolution" bottom: "res2a_branch2b_conv" top: "res2a_branch2c_conv" convolution_param { num_output: 128 bias_term: true pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res2a_branch2c_bn" type: "BatchNorm" bottom: "res2a_branch2c_conv" top: "res2a_branch2c_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res2a_branch2c_sc" type: "Scale" bottom: "res2a_branch2c_conv" top: "res2a_branch2c_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res2a_branch1_conv" type: "Convolution" bottom: "conv3_conv" top: "res2a_branch1_conv" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res2a_branch1_bn" type: "BatchNorm" bottom: "res2a_branch1_conv" top: "res2a_branch1_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res2a_branch1_sc" type: "Scale" bottom: "res2a_branch1_conv" top: "res2a_branch1_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res2a" type: "Eltwise" bottom: "res2a_branch1_conv" bottom: "res2a_branch2c_conv" top: "res2a" eltwise_param { operation: SUM } } layer { name: "res2a_relu" type: "ReLU" bottom: "res2a" top: "res2a" relu_param{negative_slope: 0.10000000149} } layer { name: "res2b_branch2a_conv" type: "Convolution" bottom: "res2a" top: "res2b_branch2a_conv" convolution_param { num_output: 32 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res2b_branch2a_bn" type: "BatchNorm" bottom: "res2b_branch2a_conv" top: "res2b_branch2a_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res2b_branch2a_sc" type: "Scale" bottom: "res2b_branch2a_conv" top: "res2b_branch2a_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res2b_branch2a_relu" type: "ReLU" bottom: "res2b_branch2a_conv" top: "res2b_branch2a_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res2b_branch2b_conv" type: "Convolution" bottom: "res2b_branch2a_conv" top: "res2b_branch2b_conv" convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res2b_branch2b_bn" type: "BatchNorm" bottom: "res2b_branch2b_conv" top: "res2b_branch2b_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res2b_branch2b_sc" type: "Scale" bottom: "res2b_branch2b_conv" top: "res2b_branch2b_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res2b_branch2b_relu" type: "ReLU" bottom: "res2b_branch2b_conv" top: "res2b_branch2b_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res2b_branch2c_conv" type: "Convolution" bottom: "res2b_branch2b_conv" top: "res2b_branch2c_conv" convolution_param { num_output: 128 bias_term: true pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res2b_branch2c_bn" type: "BatchNorm" bottom: "res2b_branch2c_conv" top: "res2b_branch2c_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res2b_branch2c_sc" type: "Scale" bottom: "res2b_branch2c_conv" top: "res2b_branch2c_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res2b" type: "Eltwise" bottom: "res2a" bottom: "res2b_branch2c_conv" top: "res2b" eltwise_param { operation: SUM } } layer { name: "res2b_relu" type: "ReLU" bottom: "res2b" top: "res2b" relu_param{negative_slope: 0.10000000149} } layer { name: "pool2" type: "Pooling" bottom: "res2b" top: "pool2" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "res3a_branch2a_conv" type: "Convolution" bottom: "pool2" top: "res3a_branch2a_conv" convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res3a_branch2a_bn" type: "BatchNorm" bottom: "res3a_branch2a_conv" top: "res3a_branch2a_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res3a_branch2a_sc" type: "Scale" bottom: "res3a_branch2a_conv" top: "res3a_branch2a_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res3a_branch2a_relu" type: "ReLU" bottom: "res3a_branch2a_conv" top: "res3a_branch2a_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res3a_branch2b_conv" type: "Convolution" bottom: "res3a_branch2a_conv" top: "res3a_branch2b_conv" convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res3a_branch2b_bn" type: "BatchNorm" bottom: "res3a_branch2b_conv" top: "res3a_branch2b_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res3a_branch2b_sc" type: "Scale" bottom: "res3a_branch2b_conv" top: "res3a_branch2b_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res3a_branch2b_relu" type: "ReLU" bottom: "res3a_branch2b_conv" top: "res3a_branch2b_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res3a_branch2c_conv" type: "Convolution" bottom: "res3a_branch2b_conv" top: "res3a_branch2c_conv" convolution_param { num_output: 256 bias_term: true pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res3a_branch2c_bn" type: "BatchNorm" bottom: "res3a_branch2c_conv" top: "res3a_branch2c_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res3a_branch2c_sc" type: "Scale" bottom: "res3a_branch2c_conv" top: "res3a_branch2c_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res3a_branch1_conv" type: "Convolution" bottom: "pool2" top: "res3a_branch1_conv" convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res3a_branch1_bn" type: "BatchNorm" bottom: "res3a_branch1_conv" top: "res3a_branch1_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res3a_branch1_sc" type: "Scale" bottom: "res3a_branch1_conv" top: "res3a_branch1_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res3a" type: "Eltwise" bottom: "res3a_branch1_conv" bottom: "res3a_branch2c_conv" top: "res3a" eltwise_param { operation: SUM } } layer { name: "res3a_relu" type: "ReLU" bottom: "res3a" top: "res3a" relu_param{negative_slope: 0.10000000149} } layer { name: "res3b_branch2a_conv" type: "Convolution" bottom: "res3a" top: "res3b_branch2a_conv" convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res3b_branch2a_bn" type: "BatchNorm" bottom: "res3b_branch2a_conv" top: "res3b_branch2a_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res3b_branch2a_sc" type: "Scale" bottom: "res3b_branch2a_conv" top: "res3b_branch2a_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res3b_branch2a_relu" type: "ReLU" bottom: "res3b_branch2a_conv" top: "res3b_branch2a_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res3b_branch2b_conv" type: "Convolution" bottom: "res3b_branch2a_conv" top: "res3b_branch2b_conv" convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res3b_branch2b_bn" type: "BatchNorm" bottom: "res3b_branch2b_conv" top: "res3b_branch2b_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res3b_branch2b_sc" type: "Scale" bottom: "res3b_branch2b_conv" top: "res3b_branch2b_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res3b_branch2b_relu" type: "ReLU" bottom: "res3b_branch2b_conv" top: "res3b_branch2b_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res3b_branch2c_conv" type: "Convolution" bottom: "res3b_branch2b_conv" top: "res3b_branch2c_conv" convolution_param { num_output: 256 bias_term: true pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res3b_branch2c_bn" type: "BatchNorm" bottom: "res3b_branch2c_conv" top: "res3b_branch2c_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res3b_branch2c_sc" type: "Scale" bottom: "res3b_branch2c_conv" top: "res3b_branch2c_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res3b" type: "Eltwise" bottom: "res3a" bottom: "res3b_branch2c_conv" top: "res3b" eltwise_param { operation: SUM } } layer { name: "res3b_relu" type: "ReLU" bottom: "res3b" top: "res3b" relu_param{negative_slope: 0.10000000149} } layer { name: "pool3" type: "Pooling" bottom: "res3b" top: "pool3" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "res4a_branch2a_conv" type: "Convolution" bottom: "pool3" top: "res4a_branch2a_conv" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res4a_branch2a_bn" type: "BatchNorm" bottom: "res4a_branch2a_conv" top: "res4a_branch2a_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res4a_branch2a_sc" type: "Scale" bottom: "res4a_branch2a_conv" top: "res4a_branch2a_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res4a_branch2a_relu" type: "ReLU" bottom: "res4a_branch2a_conv" top: "res4a_branch2a_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res4a_branch2b_conv" type: "Convolution" bottom: "res4a_branch2a_conv" top: "res4a_branch2b_conv" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res4a_branch2b_bn" type: "BatchNorm" bottom: "res4a_branch2b_conv" top: "res4a_branch2b_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res4a_branch2b_sc" type: "Scale" bottom: "res4a_branch2b_conv" top: "res4a_branch2b_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res4a_branch2b_relu" type: "ReLU" bottom: "res4a_branch2b_conv" top: "res4a_branch2b_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res4a_branch2c_conv" type: "Convolution" bottom: "res4a_branch2b_conv" top: "res4a_branch2c_conv" convolution_param { num_output: 512 bias_term: true pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res4a_branch2c_bn" type: "BatchNorm" bottom: "res4a_branch2c_conv" top: "res4a_branch2c_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res4a_branch2c_sc" type: "Scale" bottom: "res4a_branch2c_conv" top: "res4a_branch2c_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res4a_branch1_conv" type: "Convolution" bottom: "pool3" top: "res4a_branch1_conv" convolution_param { num_output: 512 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res4a_branch1_bn" type: "BatchNorm" bottom: "res4a_branch1_conv" top: "res4a_branch1_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res4a_branch1_sc" type: "Scale" bottom: "res4a_branch1_conv" top: "res4a_branch1_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res4a" type: "Eltwise" bottom: "res4a_branch1_conv" bottom: "res4a_branch2c_conv" top: "res4a" eltwise_param { operation: SUM } } layer { name: "res4a_relu" type: "ReLU" bottom: "res4a" top: "res4a" relu_param{negative_slope: 0.10000000149} } layer { name: "res4b_branch2a_conv" type: "Convolution" bottom: "res4a" top: "res4b_branch2a_conv" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res4b_branch2a_bn" type: "BatchNorm" bottom: "res4b_branch2a_conv" top: "res4b_branch2a_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res4b_branch2a_sc" type: "Scale" bottom: "res4b_branch2a_conv" top: "res4b_branch2a_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res4b_branch2a_relu" type: "ReLU" bottom: "res4b_branch2a_conv" top: "res4b_branch2a_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res4b_branch2b_conv" type: "Convolution" bottom: "res4b_branch2a_conv" top: "res4b_branch2b_conv" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res4b_branch2b_bn" type: "BatchNorm" bottom: "res4b_branch2b_conv" top: "res4b_branch2b_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res4b_branch2b_sc" type: "Scale" bottom: "res4b_branch2b_conv" top: "res4b_branch2b_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res4b_branch2b_relu" type: "ReLU" bottom: "res4b_branch2b_conv" top: "res4b_branch2b_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res4b_branch2c_conv" type: "Convolution" bottom: "res4b_branch2b_conv" top: "res4b_branch2c_conv" convolution_param { num_output: 512 bias_term: true pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res4b_branch2c_bn" type: "BatchNorm" bottom: "res4b_branch2c_conv" top: "res4b_branch2c_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res4b_branch2c_sc" type: "Scale" bottom: "res4b_branch2c_conv" top: "res4b_branch2c_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res4b" type: "Eltwise" bottom: "res4a" bottom: "res4b_branch2c_conv" top: "res4b" eltwise_param { operation: SUM } } layer { name: "res4b_relu" type: "ReLU" bottom: "res4b" top: "res4b" relu_param{negative_slope: 0.10000000149} } layer { name: "res4c_branch2a_conv" type: "Convolution" bottom: "res4b" top: "res4c_branch2a_conv" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res4c_branch2a_bn" type: "BatchNorm" bottom: "res4c_branch2a_conv" top: "res4c_branch2a_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res4c_branch2a_sc" type: "Scale" bottom: "res4c_branch2a_conv" top: "res4c_branch2a_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res4c_branch2a_relu" type: "ReLU" bottom: "res4c_branch2a_conv" top: "res4c_branch2a_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res4c_branch2b_conv" type: "Convolution" bottom: "res4c_branch2a_conv" top: "res4c_branch2b_conv" param { lr_mult: 10.0 decay_mult: 1.0 } convolution_param { num_output: 128 bias_term: false pad: 2 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 2 } } layer { name: "res4c_branch2b_bn" type: "BatchNorm" bottom: "res4c_branch2b_conv" top: "res4c_branch2b_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res4c_branch2b_sc" type: "Scale" bottom: "res4c_branch2b_conv" top: "res4c_branch2b_conv" param { lr_mult: 10.0 decay_mult: 1.0 } param { lr_mult: 10.0 decay_mult: 1.0 } scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res4c_branch2b_relu" type: "ReLU" bottom: "res4c_branch2b_conv" top: "res4c_branch2b_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res4c_branch2c_conv" type: "Convolution" bottom: "res4c_branch2b_conv" top: "res4c_branch2c_conv" convolution_param { num_output: 512 bias_term: true pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res4c_branch2c_bn" type: "BatchNorm" bottom: "res4c_branch2c_conv" top: "res4c_branch2c_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res4c_branch2c_sc" type: "Scale" bottom: "res4c_branch2c_conv" top: "res4c_branch2c_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res4c" type: "Eltwise" bottom: "res4b" bottom: "res4c_branch2c_conv" top: "res4c" eltwise_param { operation: SUM } } layer { name: "res4c_relu" type: "ReLU" bottom: "res4c" top: "res4c" relu_param{negative_slope: 0.10000000149} } layer { name: "pool4" type: "Pooling" bottom: "res4c" top: "pool4" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "res5a_branch2a_conv" type: "Convolution" bottom: "pool4" top: "res5a_branch2a_conv" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res5a_branch2a_bn" type: "BatchNorm" bottom: "res5a_branch2a_conv" top: "res5a_branch2a_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res5a_branch2a_sc" type: "Scale" bottom: "res5a_branch2a_conv" top: "res5a_branch2a_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res5a_branch2a_relu" type: "ReLU" bottom: "res5a_branch2a_conv" top: "res5a_branch2a_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res5a_branch2b_conv" type: "Convolution" bottom: "res5a_branch2a_conv" top: "res5a_branch2b_conv" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res5a_branch2b_bn" type: "BatchNorm" bottom: "res5a_branch2b_conv" top: "res5a_branch2b_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res5a_branch2b_sc" type: "Scale" bottom: "res5a_branch2b_conv" top: "res5a_branch2b_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res5a_branch2b_relu" type: "ReLU" bottom: "res5a_branch2b_conv" top: "res5a_branch2b_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res5a_branch2c_conv" type: "Convolution" bottom: "res5a_branch2b_conv" top: "res5a_branch2c_conv" convolution_param { num_output: 512 bias_term: true pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res5a_branch2c_bn" type: "BatchNorm" bottom: "res5a_branch2c_conv" top: "res5a_branch2c_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res5a_branch2c_sc" type: "Scale" bottom: "res5a_branch2c_conv" top: "res5a_branch2c_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res5a" type: "Eltwise" bottom: "pool4" bottom: "res5a_branch2c_conv" top: "res5a" eltwise_param { operation: SUM } } layer { name: "res5a_relu" type: "ReLU" bottom: "res5a" top: "res5a" relu_param{negative_slope: 0.10000000149} } layer { name: "res5b_branch2a_conv" type: "Convolution" bottom: "res5a" top: "res5b_branch2a_conv" convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res5b_branch2a_bn" type: "BatchNorm" bottom: "res5b_branch2a_conv" top: "res5b_branch2a_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res5b_branch2a_sc" type: "Scale" bottom: "res5b_branch2a_conv" top: "res5b_branch2a_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res5b_branch2a_relu" type: "ReLU" bottom: "res5b_branch2a_conv" top: "res5b_branch2a_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res5b_branch2b_conv" type: "Convolution" bottom: "res5b_branch2a_conv" top: "res5b_branch2b_conv" convolution_param { num_output: 256 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res5b_branch2b_bn" type: "BatchNorm" bottom: "res5b_branch2b_conv" top: "res5b_branch2b_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res5b_branch2b_sc" type: "Scale" bottom: "res5b_branch2b_conv" top: "res5b_branch2b_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res5b_branch2b_relu" type: "ReLU" bottom: "res5b_branch2b_conv" top: "res5b_branch2b_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res5b_branch2c_conv" type: "Convolution" bottom: "res5b_branch2b_conv" top: "res5b_branch2c_conv" convolution_param { num_output: 1024 bias_term: true pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res5b_branch2c_bn" type: "BatchNorm" bottom: "res5b_branch2c_conv" top: "res5b_branch2c_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res5b_branch2c_sc" type: "Scale" bottom: "res5b_branch2c_conv" top: "res5b_branch2c_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res5b_branch1_conv" type: "Convolution" bottom: "res5a" top: "res5b_branch1_conv" convolution_param { num_output: 1024 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res5b_branch1_bn" type: "BatchNorm" bottom: "res5b_branch1_conv" top: "res5b_branch1_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res5b_branch1_sc" type: "Scale" bottom: "res5b_branch1_conv" top: "res5b_branch1_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res5b" type: "Eltwise" bottom: "res5b_branch1_conv" bottom: "res5b_branch2c_conv" top: "res5b" eltwise_param { operation: SUM } } layer { name: "res5b_relu" type: "ReLU" bottom: "res5b" top: "res5b" relu_param{negative_slope: 0.10000000149} } layer { name: "res5c_branch2a_conv" type: "Convolution" bottom: "res5b" top: "res5c_branch2a_conv" convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 1 } } layer { name: "res5c_branch2a_bn" type: "BatchNorm" bottom: "res5c_branch2a_conv" top: "res5c_branch2a_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res5c_branch2a_sc" type: "Scale" bottom: "res5c_branch2a_conv" top: "res5c_branch2a_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res5c_branch2a_relu" type: "ReLU" bottom: "res5c_branch2a_conv" top: "res5c_branch2a_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res5c_branch2b_conv" type: "Convolution" bottom: "res5c_branch2a_conv" top: "res5c_branch2b_conv" param { lr_mult: 10.0 decay_mult: 1.0 } convolution_param { num_output: 256 bias_term: false pad: 2 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } dilation: 2 } } layer { name: "res5c_branch2b_bn" type: "BatchNorm" bottom: "res5c_branch2b_conv" top: "res5c_branch2b_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res5c_branch2b_sc" type: "Scale" bottom: "res5c_branch2b_conv" top: "res5c_branch2b_conv" param { lr_mult: 10.0 decay_mult: 1.0 } param { lr_mult: 10.0 decay_mult: 1.0 } scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res5c_branch2b_relu" type: "ReLU" bottom: "res5c_branch2b_conv" top: "res5c_branch2b_conv" relu_param{negative_slope: 0.10000000149} } layer { name: "res5c_branch2c_conv" type: "Convolution" bottom: "res5c_branch2b_conv" top: "res5c_branch2c_conv" convolution_param { num_output: 1024 bias_term: true pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res5c_branch2c_bn" type: "BatchNorm" bottom: "res5c_branch2c_conv" top: "res5c_branch2c_conv" param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } param { lr_mult: 0.0 decay_mult: 0.0 } } layer { name: "res5c_branch2c_sc" type: "Scale" bottom: "res5c_branch2c_conv" top: "res5c_branch2c_conv" scale_param { filler { value: 1.0 } bias_term: true bias_filler { value: 0.0 } } } layer { name: "res5c" type: "Eltwise" bottom: "res5b" bottom: "res5c_branch2c_conv" top: "res5c" eltwise_param { operation: SUM } } layer { name: "res5c_relu" type: "ReLU" bottom: "res5c" top: "res5c" relu_param{negative_slope: 0.10000000149} } layer { name: "conv_4x_conv" type: "Convolution" bottom: "res2b" top: "Convolution1" param { name: "conv_4x_conv_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv_4x_conv_b" lr_mult: 20.0 decay_mult: 0.0 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "conv_4x_bn" type: "BatchNorm" bottom: "Convolution1" top: "Convolution1" param { name: "conv_4x_bn_w" lr_mult: 0.0 } param { name: "conv_4x_bn_b" lr_mult: 0.0 } param { name: "conv_4x_bn_t" lr_mult: 0.0 } batch_norm_param { use_global_stats: true } } layer { name: "conv_4x_scale" type: "Scale" bottom: "Convolution1" top: "Convolution1" param { name: "conv_4x_scale_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv_4x_scale_b" lr_mult: 10.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "conv_8x_conv" type: "Convolution" bottom: "res3b" top: "Convolution2" param { name: "conv_8x_conv_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv_8x_conv_b" lr_mult: 20.0 decay_mult: 0.0 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "conv_8x_bn" type: "BatchNorm" bottom: "Convolution2" top: "Convolution2" param { name: "conv_8x_bn_w" lr_mult: 0.0 } param { name: "conv_8x_bn_b" lr_mult: 0.0 } param { name: "conv_8x_bn_t" lr_mult: 0.0 } batch_norm_param { use_global_stats: true } } layer { name: "conv_8x_scale" type: "Scale" bottom: "Convolution2" top: "Convolution2" param { name: "conv_8x_scale_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv_8x_scale_b" lr_mult: 10.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "conv_16x_conv" type: "Convolution" bottom: "res4c" top: "Convolution3" param { name: "conv_16x_conv_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv_16x_conv_b" lr_mult: 20.0 decay_mult: 0.0 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "conv_16x_bn" type: "BatchNorm" bottom: "Convolution3" top: "Convolution3" param { name: "conv_16x_bn_w" lr_mult: 0.0 } param { name: "conv_16x_bn_b" lr_mult: 0.0 } param { name: "conv_16x_bn_t" lr_mult: 0.0 } batch_norm_param { use_global_stats: true } } layer { name: "conv_16x_scale" type: "Scale" bottom: "Convolution3" top: "Convolution3" param { name: "conv_16x_scale_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv_16x_scale_b" lr_mult: 10.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "conv6_1x1a_conv" type: "Convolution" bottom: "res5c" top: "Convolution4" param { name: "conv6_1x1a_conv_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv6_1x1a_conv_b" lr_mult: 20.0 decay_mult: 0.0 } convolution_param { num_output: 128 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" } } } layer { name: "conv6_1x1a_bn" type: "BatchNorm" bottom: "Convolution4" top: "Convolution4" param { name: "conv6_1x1a_bn_w" lr_mult: 0.0 } param { name: "conv6_1x1a_bn_b" lr_mult: 0.0 } param { name: "conv6_1x1a_bn_t" lr_mult: 0.0 } batch_norm_param { use_global_stats: true } } layer { name: "conv6_1x1a_scale" type: "Scale" bottom: "Convolution4" top: "Convolution4" param { name: "conv6_1x1a_scale_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv6_1x1a_scale_b" lr_mult: 10.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "conv6_1x1a_relu" type: "ReLU" bottom: "Convolution4" top: "Convolution4" relu_param{negative_slope: 0.10000000149} } layer { name: "conv6_1x1b_b0_kx1_conv" type: "Convolution" bottom: "Convolution4" top: "Convolution5" param { name: "conv6_1x1b_b0_kx1_conv_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv6_1x1b_b0_kx1_conv_b" lr_mult: 20.0 decay_mult: 0.0 } convolution_param { num_output: 128 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } pad_h: 0 pad_w: 4 kernel_h: 1 kernel_w: 9 } } layer { name: "conv6_1x1b_b0_kx1_bn" type: "BatchNorm" bottom: "Convolution5" top: "Convolution5" param { name: "conv6_1x1b_b0_kx1_bn_w" lr_mult: 0.0 } param { name: "conv6_1x1b_b0_kx1_bn_b" lr_mult: 0.0 } param { name: "conv6_1x1b_b0_kx1_bn_t" lr_mult: 0.0 } batch_norm_param { use_global_stats: true } } layer { name: "conv6_1x1b_b0_kx1_scale" type: "Scale" bottom: "Convolution5" top: "Convolution5" param { name: "conv6_1x1b_b0_kx1_scale_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv6_1x1b_b0_kx1_scale_b" lr_mult: 10.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "conv6_1x1b_b1_1xk_conv" type: "Convolution" bottom: "Convolution4" top: "Convolution6" param { name: "conv6_1x1b_b1_1xk_conv_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv6_1x1b_b1_1xk_conv_b" lr_mult: 20.0 decay_mult: 0.0 } convolution_param { num_output: 128 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } pad_h: 4 pad_w: 0 kernel_h: 9 kernel_w: 1 } } layer { name: "conv6_1x1b_b1_1xk_bn" type: "BatchNorm" bottom: "Convolution6" top: "Convolution6" param { name: "conv6_1x1b_b1_1xk_bn_w" lr_mult: 0.0 } param { name: "conv6_1x1b_b1_1xk_bn_b" lr_mult: 0.0 } param { name: "conv6_1x1b_b1_1xk_bn_t" lr_mult: 0.0 } batch_norm_param { use_global_stats: true } } layer { name: "conv6_1x1b_b1_1xk_scale" type: "Scale" bottom: "Convolution6" top: "Convolution6" param { name: "conv6_1x1b_b1_1xk_scale_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv6_1x1b_b1_1xk_scale_b" lr_mult: 10.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "conv6_1x1b_gcn_eltwise" type: "Eltwise" bottom: "Convolution5" bottom: "Convolution6" top: "conv6_1x1b" eltwise_param { operation: SUM } } layer { name: "interp1" type: "Interp" bottom: "conv6_1x1b" top: "conv6_deconv" interp_param { height: 22 width: 22 } } layer { name: "conv6_eltwise" type: "Eltwise" bottom: "conv6_deconv" bottom: "Convolution3" top: "conv6_eltwise" eltwise_param { operation: SUM } } layer { name: "conv6_relu" type: "ReLU" bottom: "conv6_eltwise" top: "conv6_eltwise" relu_param{negative_slope: 0.10000000149} } layer { name: "conv7_1x1b_b0_kx1_conv" type: "Convolution" bottom: "conv6_eltwise" top: "Convolution7" param { name: "conv7_1x1b_b0_kx1_conv_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv7_1x1b_b0_kx1_conv_b" lr_mult: 20.0 decay_mult: 0.0 } convolution_param { num_output: 128 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } pad_h: 0 pad_w: 4 kernel_h: 1 kernel_w: 9 } } layer { name: "conv7_1x1b_b0_kx1_bn" type: "BatchNorm" bottom: "Convolution7" top: "Convolution7" param { name: "conv7_1x1b_b0_kx1_bn_w" lr_mult: 0.0 } param { name: "conv7_1x1b_b0_kx1_bn_b" lr_mult: 0.0 } param { name: "conv7_1x1b_b0_kx1_bn_t" lr_mult: 0.0 } batch_norm_param { use_global_stats: true } } layer { name: "conv7_1x1b_b0_kx1_scale" type: "Scale" bottom: "Convolution7" top: "Convolution7" param { name: "conv7_1x1b_b0_kx1_scale_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv7_1x1b_b0_kx1_scale_b" lr_mult: 10.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "conv7_1x1b_b1_1xk_conv" type: "Convolution" bottom: "conv6_eltwise" top: "Convolution8" param { name: "conv7_1x1b_b1_1xk_conv_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv7_1x1b_b1_1xk_conv_b" lr_mult: 20.0 decay_mult: 0.0 } convolution_param { num_output: 128 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } pad_h: 4 pad_w: 0 kernel_h: 9 kernel_w: 1 } } layer { name: "conv7_1x1b_b1_1xk_bn" type: "BatchNorm" bottom: "Convolution8" top: "Convolution8" param { name: "conv7_1x1b_b1_1xk_bn_w" lr_mult: 0.0 } param { name: "conv7_1x1b_b1_1xk_bn_b" lr_mult: 0.0 } param { name: "conv7_1x1b_b1_1xk_bn_t" lr_mult: 0.0 } batch_norm_param { use_global_stats: true } } layer { name: "conv7_1x1b_b1_1xk_scale" type: "Scale" bottom: "Convolution8" top: "Convolution8" param { name: "conv7_1x1b_b1_1xk_scale_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv7_1x1b_b1_1xk_scale_b" lr_mult: 10.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "conv7_1x1b_gcn_eltwise" type: "Eltwise" bottom: "Convolution7" bottom: "Convolution8" top: "conv7_1x1b" eltwise_param { operation: SUM } } layer { name: "interp2" type: "Interp" bottom: "conv7_1x1b" top: "conv7_deconv" interp_param { height: 44 width: 44 } } layer { name: "conv7_eltwise" type: "Eltwise" bottom: "conv7_deconv" bottom: "Convolution2" top: "conv7_eltwise" eltwise_param { operation: SUM } } layer { name: "conv7_relu" type: "ReLU" bottom: "conv7_eltwise" top: "conv7_eltwise" relu_param{negative_slope: 0.10000000149} } layer { name: "conv8_1x1b_b0_kx1_conv" type: "Convolution" bottom: "conv7_eltwise" top: "Convolution9" param { name: "conv8_1x1b_b0_kx1_conv_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv8_1x1b_b0_kx1_conv_b" lr_mult: 20.0 decay_mult: 0.0 } convolution_param { num_output: 128 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } pad_h: 0 pad_w: 4 kernel_h: 1 kernel_w: 9 } } layer { name: "conv8_1x1b_b0_kx1_bn" type: "BatchNorm" bottom: "Convolution9" top: "Convolution9" param { name: "conv8_1x1b_b0_kx1_bn_w" lr_mult: 0.0 } param { name: "conv8_1x1b_b0_kx1_bn_b" lr_mult: 0.0 } param { name: "conv8_1x1b_b0_kx1_bn_t" lr_mult: 0.0 } batch_norm_param { use_global_stats: true } } layer { name: "conv8_1x1b_b0_kx1_scale" type: "Scale" bottom: "Convolution9" top: "Convolution9" param { name: "conv8_1x1b_b0_kx1_scale_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv8_1x1b_b0_kx1_scale_b" lr_mult: 10.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "conv8_1x1b_b1_1xk_conv" type: "Convolution" bottom: "conv7_eltwise" top: "Convolution10" param { name: "conv8_1x1b_b1_1xk_conv_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv8_1x1b_b1_1xk_conv_b" lr_mult: 20.0 decay_mult: 0.0 } convolution_param { num_output: 128 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } pad_h: 4 pad_w: 0 kernel_h: 9 kernel_w: 1 } } layer { name: "conv8_1x1b_b1_1xk_bn" type: "BatchNorm" bottom: "Convolution10" top: "Convolution10" param { name: "conv8_1x1b_b1_1xk_bn_w" lr_mult: 0.0 } param { name: "conv8_1x1b_b1_1xk_bn_b" lr_mult: 0.0 } param { name: "conv8_1x1b_b1_1xk_bn_t" lr_mult: 0.0 } batch_norm_param { use_global_stats: true } } layer { name: "conv8_1x1b_b1_1xk_scale" type: "Scale" bottom: "Convolution10" top: "Convolution10" param { name: "conv8_1x1b_b1_1xk_scale_w" lr_mult: 10.0 decay_mult: 1.0 } param { name: "conv8_1x1b_b1_1xk_scale_b" lr_mult: 10.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "conv8_1x1b_gcn_eltwise" type: "Eltwise" bottom: "Convolution9" bottom: "Convolution10" top: "conv8_1x1b" eltwise_param { operation: SUM } } layer { name: "interp3" type: "Interp" bottom: "conv8_1x1b" top: "conv8_deconv" interp_param { height: 88 width: 88 } } layer { name: "conv8_eltwise" type: "Eltwise" bottom: "conv8_deconv" bottom: "Convolution1" top: "conv8_eltwise" eltwise_param { operation: SUM } } layer { name: "conv8_relu" type: "ReLU" bottom: "conv8_eltwise" top: "conv8_eltwise" relu_param{negative_slope: 0.10000000149} } ########################reduceChannels########################### layer { name: "fcn_s4_pre_conv" type: "Convolution" bottom: "conv8_eltwise" top: "fcn_s4_conv" convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "fcn_s4_pre_bn" type: "BatchNorm" bottom: "fcn_s4_conv" top: "fcn_s4_conv" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "fcn_s4_pre_sc" type: "Scale" bottom: "fcn_s4_conv" top: "fcn_s4_conv" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "fcn_s4_pre_relu" type: "ReLU" bottom: "fcn_s4_conv" top: "fcn_s4_conv" } ################################################################# layer { name: "conv10_b0_kx1_m_LeakyRelu_" type: "Convolution" bottom: "fcn_s4_conv" top: "Convolution11" param { lr_mult: 10.0 decay_mult: 1.0 } param { lr_mult: 20.0 decay_mult: 1.0 } convolution_param { num_output: 11 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" value: 0.0 } pad_h: 0 pad_w: 4 kernel_h: 1 kernel_w: 9 } } layer { name: "conv10_b0_1xk_m_LeakyRelu_" type: "Convolution" bottom: "fcn_s4_conv" top: "Convolution12" param { lr_mult: 10.0 decay_mult: 1.0 } param { lr_mult: 20.0 decay_mult: 1.0 } convolution_param { num_output: 11 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" value: 0.0 } pad_h: 4 pad_w: 0 kernel_h: 9 kernel_w: 1 } } layer { name: "conv10_lk_eltwise" type: "Eltwise" bottom: "Convolution11" bottom: "Convolution12" top: "conv10" eltwise_param { operation: SUM } } layer { name: "interp" type: "Interp" bottom: "conv10" top: "score" interp_param { height: 352 width: 352 } }