name: "2012_ATLANTA_10class_20190614_v4.1" 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" } } } layer { name: "conv1_bn" type: "BatchNorm" bottom: "conv1_conv" top: "conv1_conv" } 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" } } } layer { name: "conv2_bn" type: "BatchNorm" bottom: "conv2_conv" top: "conv2_conv" } 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" } } } layer { name: "conv3_bn" type: "BatchNorm" bottom: "conv3_conv" top: "conv3_conv" } 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" } } } layer { name: "res2a_branch2a_bn" type: "BatchNorm" bottom: "res2a_branch2a_conv" top: "res2a_branch2a_conv" } 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" } } } layer { name: "res2a_branch2b_bn" type: "BatchNorm" bottom: "res2a_branch2b_conv" top: "res2a_branch2b_conv" } 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" } 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" } 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" } } } layer { name: "res2b_branch2a_bn" type: "BatchNorm" bottom: "res2b_branch2a_conv" top: "res2b_branch2a_conv" } 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" } } } layer { name: "res2b_branch2b_bn" type: "BatchNorm" bottom: "res2b_branch2b_conv" top: "res2b_branch2b_conv" } 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" } 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" } } } layer { name: "res3a_branch2a_bn" type: "BatchNorm" bottom: "res3a_branch2a_conv" top: "res3a_branch2a_conv" } 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" } } } layer { name: "res3a_branch2b_bn" type: "BatchNorm" bottom: "res3a_branch2b_conv" top: "res3a_branch2b_conv" } 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" } 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" } 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" } } } layer { name: "res3b_branch2a_bn" type: "BatchNorm" bottom: "res3b_branch2a_conv" top: "res3b_branch2a_conv" } 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" } } } layer { name: "res3b_branch2b_bn" type: "BatchNorm" bottom: "res3b_branch2b_conv" top: "res3b_branch2b_conv" } 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" } 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" } } } layer { name: "res4a_branch2a_bn" type: "BatchNorm" bottom: "res4a_branch2a_conv" top: "res4a_branch2a_conv" } 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" } } } layer { name: "res4a_branch2b_bn" type: "BatchNorm" bottom: "res4a_branch2b_conv" top: "res4a_branch2b_conv" } 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" } 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" } 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" } } } layer { name: "res4b_branch2a_bn" type: "BatchNorm" bottom: "res4b_branch2a_conv" top: "res4b_branch2a_conv" } 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" } } } layer { name: "res4b_branch2b_bn" type: "BatchNorm" bottom: "res4b_branch2b_conv" top: "res4b_branch2b_conv" } 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" } 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" } } } layer { name: "res4c_branch2a_bn" type: "BatchNorm" bottom: "res4c_branch2a_conv" top: "res4c_branch2a_conv" } 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" 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" } layer { name: "res4c_branch2b_sc" type: "Scale" bottom: "res4c_branch2b_conv" top: "res4c_branch2b_conv" 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" } 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" } } } layer { name: "res5a_branch2a_bn" type: "BatchNorm" bottom: "res5a_branch2a_conv" top: "res5a_branch2a_conv" } 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" } } } layer { name: "res5a_branch2b_bn" type: "BatchNorm" bottom: "res5a_branch2b_conv" top: "res5a_branch2b_conv" } 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" } 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" } } } layer { name: "res5b_branch2a_bn" type: "BatchNorm" bottom: "res5b_branch2a_conv" top: "res5b_branch2a_conv" } 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" } } } layer { name: "res5b_branch2b_bn" type: "BatchNorm" bottom: "res5b_branch2b_conv" top: "res5b_branch2b_conv" } 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" } 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" } 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" } } } layer { name: "res5c_branch2a_bn" type: "BatchNorm" bottom: "res5c_branch2a_conv" top: "res5c_branch2a_conv" } 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" 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" } layer { name: "res5c_branch2b_sc" type: "Scale" bottom: "res5c_branch2b_conv" top: "res5c_branch2b_conv" 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" } 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" 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" batch_norm_param { use_global_stats: true } } layer { name: "conv_4x_scale" type: "Scale" bottom: "Convolution1" top: "Convolution1" scale_param { bias_term: true } } layer { name: "conv_8x_conv" type: "Convolution" bottom: "res3b" top: "Convolution2" 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" batch_norm_param { use_global_stats: true } } layer { name: "conv_8x_scale" type: "Scale" bottom: "Convolution2" top: "Convolution2" scale_param { bias_term: true } } layer { name: "conv_16x_conv" type: "Convolution" bottom: "res4c" top: "Convolution3" 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" batch_norm_param { use_global_stats: true } } layer { name: "conv_16x_scale" type: "Scale" bottom: "Convolution3" top: "Convolution3" scale_param { bias_term: true } } layer { name: "conv6_1x1a_conv" type: "Convolution" bottom: "res5c" top: "Convolution4" 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" batch_norm_param { use_global_stats: true } } layer { name: "conv6_1x1a_scale" type: "Scale" bottom: "Convolution4" top: "Convolution4" 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" 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" batch_norm_param { use_global_stats: true } } layer { name: "conv6_1x1b_b0_kx1_scale" type: "Scale" bottom: "Convolution5" top: "Convolution5" scale_param { bias_term: true } } layer { name: "conv6_1x1b_b1_1xk_conv" type: "Convolution" bottom: "Convolution4" top: "Convolution6" 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" batch_norm_param { use_global_stats: true } } layer { name: "conv6_1x1b_b1_1xk_scale" type: "Scale" bottom: "Convolution6" top: "Convolution6" 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" 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" batch_norm_param { use_global_stats: true } } layer { name: "conv7_1x1b_b0_kx1_scale" type: "Scale" bottom: "Convolution7" top: "Convolution7" scale_param { bias_term: true } } layer { name: "conv7_1x1b_b1_1xk_conv" type: "Convolution" bottom: "conv6_eltwise" top: "Convolution8" 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" batch_norm_param { use_global_stats: true } } layer { name: "conv7_1x1b_b1_1xk_scale" type: "Scale" bottom: "Convolution8" top: "Convolution8" 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" 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" batch_norm_param { use_global_stats: true } } layer { name: "conv8_1x1b_b0_kx1_scale" type: "Scale" bottom: "Convolution9" top: "Convolution9" scale_param { bias_term: true } } layer { name: "conv8_1x1b_b1_1xk_conv" type: "Convolution" bottom: "conv7_eltwise" top: "Convolution10" 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" batch_norm_param { use_global_stats: true } } layer { name: "conv8_1x1b_b1_1xk_scale" type: "Scale" bottom: "Convolution10" top: "Convolution10" 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} } layer { name: "conv10_b0_kx1_m_LeakyRelu" type: "Convolution" bottom: "conv8_eltwise" top: "Convolution11" 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: "conv8_eltwise" top: "Convolution12" 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 } }