name: "ResNet-50" input: "data" input_shape: { dim: $#batch_size#$ dim: 3 dim: 224 dim: 224 } layer { name: "conv1" type: "Convolution" bottom: "data" top: "conv1" convolution_param { num_output: 64 pad: 3 kernel_size: 7 stride: 2 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn_conv1" type: "BatchNorm" bottom: "conv1" top: "conv1" batch_norm_param { } } layer { name: "scale_conv1" type: "Scale" bottom: "conv1" top: "conv1" scale_param { bias_term: true } } layer { name: "conv1_relu" type: "ReLU" bottom: "conv1" top: "conv1" relu_param { } } layer { name: "pool1" type: "Pooling" bottom: "conv1" top: "pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "res2a_branch1" type: "Convolution" bottom: "pool1" top: "res2a_branch1" convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn2a_branch1" type: "BatchNorm" bottom: "res2a_branch1" top: "res2a_branch1" batch_norm_param { } } layer { name: "scale2a_branch1" type: "Scale" bottom: "res2a_branch1" top: "res2a_branch1" scale_param { bias_term: true } } layer { name: "res2a_branch2a" type: "Convolution" bottom: "pool1" top: "res2a_branch2a" convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn2a_branch2a" type: "BatchNorm" bottom: "res2a_branch2a" top: "res2a_branch2a" batch_norm_param { } } layer { name: "scale2a_branch2a" type: "Scale" bottom: "res2a_branch2a" top: "res2a_branch2a" scale_param { bias_term: true } } layer { name: "res2a_branch2a_relu" type: "ReLU" bottom: "res2a_branch2a" top: "res2a_branch2a" relu_param { } } layer { name: "res2a_branch2b" type: "Convolution" bottom: "res2a_branch2a" top: "res2a_branch2b" convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn2a_branch2b" type: "BatchNorm" bottom: "res2a_branch2b" top: "res2a_branch2b" batch_norm_param { } } layer { name: "scale2a_branch2b" type: "Scale" bottom: "res2a_branch2b" top: "res2a_branch2b" scale_param { bias_term: true } } layer { name: "res2a_branch2b_relu" type: "ReLU" bottom: "res2a_branch2b" top: "res2a_branch2b" relu_param { } } layer { name: "res2a_branch2c" type: "Convolution" bottom: "res2a_branch2b" top: "res2a_branch2c" convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn2a_branch2c" type: "BatchNorm" bottom: "res2a_branch2c" top: "res2a_branch2c" batch_norm_param { } } layer { name: "scale2a_branch2c" type: "Scale" bottom: "res2a_branch2c" top: "res2a_branch2c" scale_param { bias_term: true } } layer { name: "res2a" type: "Eltwise" bottom: "res2a_branch1" bottom: "res2a_branch2c" top: "res2a" eltwise_param { } } layer { name: "res2a_relu" type: "ReLU" bottom: "res2a" top: "res2a" relu_param { } } layer { name: "res2b_branch2a" type: "Convolution" bottom: "res2a" top: "res2b_branch2a" convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn2b_branch2a" type: "BatchNorm" bottom: "res2b_branch2a" top: "res2b_branch2a" batch_norm_param { } } layer { name: "scale2b_branch2a" type: "Scale" bottom: "res2b_branch2a" top: "res2b_branch2a" scale_param { bias_term: true } } layer { name: "res2b_branch2a_relu" type: "ReLU" bottom: "res2b_branch2a" top: "res2b_branch2a" relu_param { } } layer { name: "res2b_branch2b" type: "Convolution" bottom: "res2b_branch2a" top: "res2b_branch2b" convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn2b_branch2b" type: "BatchNorm" bottom: "res2b_branch2b" top: "res2b_branch2b" batch_norm_param { } } layer { name: "scale2b_branch2b" type: "Scale" bottom: "res2b_branch2b" top: "res2b_branch2b" scale_param { bias_term: true } } layer { name: "res2b_branch2b_relu" type: "ReLU" bottom: "res2b_branch2b" top: "res2b_branch2b" relu_param { } } layer { name: "res2b_branch2c" type: "Convolution" bottom: "res2b_branch2b" top: "res2b_branch2c" convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn2b_branch2c" type: "BatchNorm" bottom: "res2b_branch2c" top: "res2b_branch2c" batch_norm_param { } } layer { name: "scale2b_branch2c" type: "Scale" bottom: "res2b_branch2c" top: "res2b_branch2c" scale_param { bias_term: true } } layer { name: "res2b" type: "Eltwise" bottom: "res2a" bottom: "res2b_branch2c" top: "res2b" eltwise_param { } } layer { name: "res2b_relu" type: "ReLU" bottom: "res2b" top: "res2b" relu_param { } } layer { name: "res2c_branch2a" type: "Convolution" bottom: "res2b" top: "res2c_branch2a" convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn2c_branch2a" type: "BatchNorm" bottom: "res2c_branch2a" top: "res2c_branch2a" batch_norm_param { } } layer { name: "scale2c_branch2a" type: "Scale" bottom: "res2c_branch2a" top: "res2c_branch2a" scale_param { bias_term: true } } layer { name: "res2c_branch2a_relu" type: "ReLU" bottom: "res2c_branch2a" top: "res2c_branch2a" relu_param { } } layer { name: "res2c_branch2b" type: "Convolution" bottom: "res2c_branch2a" top: "res2c_branch2b" convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn2c_branch2b" type: "BatchNorm" bottom: "res2c_branch2b" top: "res2c_branch2b" batch_norm_param { } } layer { name: "scale2c_branch2b" type: "Scale" bottom: "res2c_branch2b" top: "res2c_branch2b" scale_param { bias_term: true } } layer { name: "res2c_branch2b_relu" type: "ReLU" bottom: "res2c_branch2b" top: "res2c_branch2b" relu_param { } } layer { name: "res2c_branch2c" type: "Convolution" bottom: "res2c_branch2b" top: "res2c_branch2c" convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn2c_branch2c" type: "BatchNorm" bottom: "res2c_branch2c" top: "res2c_branch2c" batch_norm_param { } } layer { name: "scale2c_branch2c" type: "Scale" bottom: "res2c_branch2c" top: "res2c_branch2c" scale_param { bias_term: true } } layer { name: "res2c" type: "Eltwise" bottom: "res2b" bottom: "res2c_branch2c" top: "res2c" eltwise_param { } } layer { name: "res2c_relu" type: "ReLU" bottom: "res2c" top: "res2c" relu_param { } } layer { name: "res3a_branch1" type: "Convolution" bottom: "res2c" top: "res3a_branch1" convolution_param { num_output: 512 bias_term: false pad: 0 kernel_size: 1 stride: 2 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn3a_branch1" type: "BatchNorm" bottom: "res3a_branch1" top: "res3a_branch1" batch_norm_param { } } layer { name: "scale3a_branch1" type: "Scale" bottom: "res3a_branch1" top: "res3a_branch1" scale_param { bias_term: true } } layer { name: "res3a_branch2a" type: "Convolution" bottom: "res2c" top: "res3a_branch2a" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 2 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn3a_branch2a" type: "BatchNorm" bottom: "res3a_branch2a" top: "res3a_branch2a" batch_norm_param { } } layer { name: "scale3a_branch2a" type: "Scale" bottom: "res3a_branch2a" top: "res3a_branch2a" scale_param { bias_term: true } } layer { name: "res3a_branch2a_relu" type: "ReLU" bottom: "res3a_branch2a" top: "res3a_branch2a" relu_param { } } layer { name: "res3a_branch2b" type: "Convolution" bottom: "res3a_branch2a" top: "res3a_branch2b" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn3a_branch2b" type: "BatchNorm" bottom: "res3a_branch2b" top: "res3a_branch2b" batch_norm_param { } } layer { name: "scale3a_branch2b" type: "Scale" bottom: "res3a_branch2b" top: "res3a_branch2b" scale_param { bias_term: true } } layer { name: "res3a_branch2b_relu" type: "ReLU" bottom: "res3a_branch2b" top: "res3a_branch2b" relu_param { } } layer { name: "res3a_branch2c" type: "Convolution" bottom: "res3a_branch2b" top: "res3a_branch2c" convolution_param { num_output: 512 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn3a_branch2c" type: "BatchNorm" bottom: "res3a_branch2c" top: "res3a_branch2c" batch_norm_param { } } layer { name: "scale3a_branch2c" type: "Scale" bottom: "res3a_branch2c" top: "res3a_branch2c" scale_param { bias_term: true } } layer { name: "res3a" type: "Eltwise" bottom: "res3a_branch1" bottom: "res3a_branch2c" top: "res3a" eltwise_param { } } layer { name: "res3a_relu" type: "ReLU" bottom: "res3a" top: "res3a" relu_param { } } layer { name: "res3b_branch2a" type: "Convolution" bottom: "res3a" top: "res3b_branch2a" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn3b_branch2a" type: "BatchNorm" bottom: "res3b_branch2a" top: "res3b_branch2a" batch_norm_param { } } layer { name: "scale3b_branch2a" type: "Scale" bottom: "res3b_branch2a" top: "res3b_branch2a" scale_param { bias_term: true } } layer { name: "res3b_branch2a_relu" type: "ReLU" bottom: "res3b_branch2a" top: "res3b_branch2a" relu_param { } } layer { name: "res3b_branch2b" type: "Convolution" bottom: "res3b_branch2a" top: "res3b_branch2b" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn3b_branch2b" type: "BatchNorm" bottom: "res3b_branch2b" top: "res3b_branch2b" batch_norm_param { } } layer { name: "scale3b_branch2b" type: "Scale" bottom: "res3b_branch2b" top: "res3b_branch2b" scale_param { bias_term: true } } layer { name: "res3b_branch2b_relu" type: "ReLU" bottom: "res3b_branch2b" top: "res3b_branch2b" relu_param { } } layer { name: "res3b_branch2c" type: "Convolution" bottom: "res3b_branch2b" top: "res3b_branch2c" convolution_param { num_output: 512 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn3b_branch2c" type: "BatchNorm" bottom: "res3b_branch2c" top: "res3b_branch2c" batch_norm_param { } } layer { name: "scale3b_branch2c" type: "Scale" bottom: "res3b_branch2c" top: "res3b_branch2c" scale_param { bias_term: true } } layer { name: "res3b" type: "Eltwise" bottom: "res3a" bottom: "res3b_branch2c" top: "res3b" eltwise_param { } } layer { name: "res3b_relu" type: "ReLU" bottom: "res3b" top: "res3b" relu_param { } } layer { name: "res3c_branch2a" type: "Convolution" bottom: "res3b" top: "res3c_branch2a" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn3c_branch2a" type: "BatchNorm" bottom: "res3c_branch2a" top: "res3c_branch2a" batch_norm_param { } } layer { name: "scale3c_branch2a" type: "Scale" bottom: "res3c_branch2a" top: "res3c_branch2a" scale_param { bias_term: true } } layer { name: "res3c_branch2a_relu" type: "ReLU" bottom: "res3c_branch2a" top: "res3c_branch2a" relu_param { } } layer { name: "res3c_branch2b" type: "Convolution" bottom: "res3c_branch2a" top: "res3c_branch2b" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn3c_branch2b" type: "BatchNorm" bottom: "res3c_branch2b" top: "res3c_branch2b" batch_norm_param { } } layer { name: "scale3c_branch2b" type: "Scale" bottom: "res3c_branch2b" top: "res3c_branch2b" scale_param { bias_term: true } } layer { name: "res3c_branch2b_relu" type: "ReLU" bottom: "res3c_branch2b" top: "res3c_branch2b" relu_param { } } layer { name: "res3c_branch2c" type: "Convolution" bottom: "res3c_branch2b" top: "res3c_branch2c" convolution_param { num_output: 512 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn3c_branch2c" type: "BatchNorm" bottom: "res3c_branch2c" top: "res3c_branch2c" batch_norm_param { } } layer { name: "scale3c_branch2c" type: "Scale" bottom: "res3c_branch2c" top: "res3c_branch2c" scale_param { bias_term: true } } layer { name: "res3c" type: "Eltwise" bottom: "res3b" bottom: "res3c_branch2c" top: "res3c" eltwise_param { } } layer { name: "res3c_relu" type: "ReLU" bottom: "res3c" top: "res3c" relu_param { } } layer { name: "res3d_branch2a" type: "Convolution" bottom: "res3c" top: "res3d_branch2a" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn3d_branch2a" type: "BatchNorm" bottom: "res3d_branch2a" top: "res3d_branch2a" batch_norm_param { } } layer { name: "scale3d_branch2a" type: "Scale" bottom: "res3d_branch2a" top: "res3d_branch2a" scale_param { bias_term: true } } layer { name: "res3d_branch2a_relu" type: "ReLU" bottom: "res3d_branch2a" top: "res3d_branch2a" relu_param { } } layer { name: "res3d_branch2b" type: "Convolution" bottom: "res3d_branch2a" top: "res3d_branch2b" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn3d_branch2b" type: "BatchNorm" bottom: "res3d_branch2b" top: "res3d_branch2b" batch_norm_param { } } layer { name: "scale3d_branch2b" type: "Scale" bottom: "res3d_branch2b" top: "res3d_branch2b" scale_param { bias_term: true } } layer { name: "res3d_branch2b_relu" type: "ReLU" bottom: "res3d_branch2b" top: "res3d_branch2b" relu_param { } } layer { name: "res3d_branch2c" type: "Convolution" bottom: "res3d_branch2b" top: "res3d_branch2c" convolution_param { num_output: 512 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn3d_branch2c" type: "BatchNorm" bottom: "res3d_branch2c" top: "res3d_branch2c" batch_norm_param { } } layer { name: "scale3d_branch2c" type: "Scale" bottom: "res3d_branch2c" top: "res3d_branch2c" scale_param { bias_term: true } } layer { name: "res3d" type: "Eltwise" bottom: "res3c" bottom: "res3d_branch2c" top: "res3d" eltwise_param { } } layer { name: "res3d_relu" type: "ReLU" bottom: "res3d" top: "res3d" relu_param { } } layer { name: "res4a_branch1" type: "Convolution" bottom: "res3d" top: "res4a_branch1" convolution_param { num_output: 1024 bias_term: false pad: 0 kernel_size: 1 stride: 2 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4a_branch1" type: "BatchNorm" bottom: "res4a_branch1" top: "res4a_branch1" batch_norm_param { } } layer { name: "scale4a_branch1" type: "Scale" bottom: "res4a_branch1" top: "res4a_branch1" scale_param { bias_term: true } } layer { name: "res4a_branch2a" type: "Convolution" bottom: "res3d" top: "res4a_branch2a" convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 2 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4a_branch2a" type: "BatchNorm" bottom: "res4a_branch2a" top: "res4a_branch2a" batch_norm_param { } } layer { name: "scale4a_branch2a" type: "Scale" bottom: "res4a_branch2a" top: "res4a_branch2a" scale_param { bias_term: true } } layer { name: "res4a_branch2a_relu" type: "ReLU" bottom: "res4a_branch2a" top: "res4a_branch2a" relu_param { } } layer { name: "res4a_branch2b" type: "Convolution" bottom: "res4a_branch2a" top: "res4a_branch2b" convolution_param { num_output: 256 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4a_branch2b" type: "BatchNorm" bottom: "res4a_branch2b" top: "res4a_branch2b" batch_norm_param { } } layer { name: "scale4a_branch2b" type: "Scale" bottom: "res4a_branch2b" top: "res4a_branch2b" scale_param { bias_term: true } } layer { name: "res4a_branch2b_relu" type: "ReLU" bottom: "res4a_branch2b" top: "res4a_branch2b" relu_param { } } layer { name: "res4a_branch2c" type: "Convolution" bottom: "res4a_branch2b" top: "res4a_branch2c" convolution_param { num_output: 1024 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4a_branch2c" type: "BatchNorm" bottom: "res4a_branch2c" top: "res4a_branch2c" batch_norm_param { } } layer { name: "scale4a_branch2c" type: "Scale" bottom: "res4a_branch2c" top: "res4a_branch2c" scale_param { bias_term: true } } layer { name: "res4a" type: "Eltwise" bottom: "res4a_branch1" bottom: "res4a_branch2c" top: "res4a" eltwise_param { } } layer { name: "res4a_relu" type: "ReLU" bottom: "res4a" top: "res4a" relu_param { } } layer { name: "res4b_branch2a" type: "Convolution" bottom: "res4a" top: "res4b_branch2a" convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4b_branch2a" type: "BatchNorm" bottom: "res4b_branch2a" top: "res4b_branch2a" batch_norm_param { } } layer { name: "scale4b_branch2a" type: "Scale" bottom: "res4b_branch2a" top: "res4b_branch2a" scale_param { bias_term: true } } layer { name: "res4b_branch2a_relu" type: "ReLU" bottom: "res4b_branch2a" top: "res4b_branch2a" relu_param { } } layer { name: "res4b_branch2b" type: "Convolution" bottom: "res4b_branch2a" top: "res4b_branch2b" convolution_param { num_output: 256 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4b_branch2b" type: "BatchNorm" bottom: "res4b_branch2b" top: "res4b_branch2b" batch_norm_param { } } layer { name: "scale4b_branch2b" type: "Scale" bottom: "res4b_branch2b" top: "res4b_branch2b" scale_param { bias_term: true } } layer { name: "res4b_branch2b_relu" type: "ReLU" bottom: "res4b_branch2b" top: "res4b_branch2b" relu_param { } } layer { name: "res4b_branch2c" type: "Convolution" bottom: "res4b_branch2b" top: "res4b_branch2c" convolution_param { num_output: 1024 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4b_branch2c" type: "BatchNorm" bottom: "res4b_branch2c" top: "res4b_branch2c" batch_norm_param { } } layer { name: "scale4b_branch2c" type: "Scale" bottom: "res4b_branch2c" top: "res4b_branch2c" scale_param { bias_term: true } } layer { name: "res4b" type: "Eltwise" bottom: "res4a" bottom: "res4b_branch2c" top: "res4b" eltwise_param { } } layer { name: "res4b_relu" type: "ReLU" bottom: "res4b" top: "res4b" relu_param { } } layer { name: "res4c_branch2a" type: "Convolution" bottom: "res4b" top: "res4c_branch2a" convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4c_branch2a" type: "BatchNorm" bottom: "res4c_branch2a" top: "res4c_branch2a" batch_norm_param { } } layer { name: "scale4c_branch2a" type: "Scale" bottom: "res4c_branch2a" top: "res4c_branch2a" scale_param { bias_term: true } } layer { name: "res4c_branch2a_relu" type: "ReLU" bottom: "res4c_branch2a" top: "res4c_branch2a" relu_param { } } layer { name: "res4c_branch2b" type: "Convolution" bottom: "res4c_branch2a" top: "res4c_branch2b" convolution_param { num_output: 256 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4c_branch2b" type: "BatchNorm" bottom: "res4c_branch2b" top: "res4c_branch2b" batch_norm_param { } } layer { name: "scale4c_branch2b" type: "Scale" bottom: "res4c_branch2b" top: "res4c_branch2b" scale_param { bias_term: true } } layer { name: "res4c_branch2b_relu" type: "ReLU" bottom: "res4c_branch2b" top: "res4c_branch2b" relu_param { } } layer { name: "res4c_branch2c" type: "Convolution" bottom: "res4c_branch2b" top: "res4c_branch2c" convolution_param { num_output: 1024 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4c_branch2c" type: "BatchNorm" bottom: "res4c_branch2c" top: "res4c_branch2c" batch_norm_param { } } layer { name: "scale4c_branch2c" type: "Scale" bottom: "res4c_branch2c" top: "res4c_branch2c" scale_param { bias_term: true } } layer { name: "res4c" type: "Eltwise" bottom: "res4b" bottom: "res4c_branch2c" top: "res4c" eltwise_param { } } layer { name: "res4c_relu" type: "ReLU" bottom: "res4c" top: "res4c" relu_param { } } layer { name: "res4d_branch2a" type: "Convolution" bottom: "res4c" top: "res4d_branch2a" convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4d_branch2a" type: "BatchNorm" bottom: "res4d_branch2a" top: "res4d_branch2a" batch_norm_param { } } layer { name: "scale4d_branch2a" type: "Scale" bottom: "res4d_branch2a" top: "res4d_branch2a" scale_param { bias_term: true } } layer { name: "res4d_branch2a_relu" type: "ReLU" bottom: "res4d_branch2a" top: "res4d_branch2a" relu_param { } } layer { name: "res4d_branch2b" type: "Convolution" bottom: "res4d_branch2a" top: "res4d_branch2b" convolution_param { num_output: 256 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4d_branch2b" type: "BatchNorm" bottom: "res4d_branch2b" top: "res4d_branch2b" batch_norm_param { } } layer { name: "scale4d_branch2b" type: "Scale" bottom: "res4d_branch2b" top: "res4d_branch2b" scale_param { bias_term: true } } layer { name: "res4d_branch2b_relu" type: "ReLU" bottom: "res4d_branch2b" top: "res4d_branch2b" relu_param { } } layer { name: "res4d_branch2c" type: "Convolution" bottom: "res4d_branch2b" top: "res4d_branch2c" convolution_param { num_output: 1024 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4d_branch2c" type: "BatchNorm" bottom: "res4d_branch2c" top: "res4d_branch2c" batch_norm_param { } } layer { name: "scale4d_branch2c" type: "Scale" bottom: "res4d_branch2c" top: "res4d_branch2c" scale_param { bias_term: true } } layer { name: "res4d" type: "Eltwise" bottom: "res4c" bottom: "res4d_branch2c" top: "res4d" eltwise_param { } } layer { name: "res4d_relu" type: "ReLU" bottom: "res4d" top: "res4d" relu_param { } } layer { name: "res4e_branch2a" type: "Convolution" bottom: "res4d" top: "res4e_branch2a" convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4e_branch2a" type: "BatchNorm" bottom: "res4e_branch2a" top: "res4e_branch2a" batch_norm_param { } } layer { name: "scale4e_branch2a" type: "Scale" bottom: "res4e_branch2a" top: "res4e_branch2a" scale_param { bias_term: true } } layer { name: "res4e_branch2a_relu" type: "ReLU" bottom: "res4e_branch2a" top: "res4e_branch2a" relu_param { } } layer { name: "res4e_branch2b" type: "Convolution" bottom: "res4e_branch2a" top: "res4e_branch2b" convolution_param { num_output: 256 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4e_branch2b" type: "BatchNorm" bottom: "res4e_branch2b" top: "res4e_branch2b" batch_norm_param { } } layer { name: "scale4e_branch2b" type: "Scale" bottom: "res4e_branch2b" top: "res4e_branch2b" scale_param { bias_term: true } } layer { name: "res4e_branch2b_relu" type: "ReLU" bottom: "res4e_branch2b" top: "res4e_branch2b" relu_param { } } layer { name: "res4e_branch2c" type: "Convolution" bottom: "res4e_branch2b" top: "res4e_branch2c" convolution_param { num_output: 1024 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4e_branch2c" type: "BatchNorm" bottom: "res4e_branch2c" top: "res4e_branch2c" batch_norm_param { } } layer { name: "scale4e_branch2c" type: "Scale" bottom: "res4e_branch2c" top: "res4e_branch2c" scale_param { bias_term: true } } layer { name: "res4e" type: "Eltwise" bottom: "res4d" bottom: "res4e_branch2c" top: "res4e" eltwise_param { } } layer { name: "res4e_relu" type: "ReLU" bottom: "res4e" top: "res4e" relu_param { } } layer { name: "res4f_branch2a" type: "Convolution" bottom: "res4e" top: "res4f_branch2a" convolution_param { num_output: 256 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4f_branch2a" type: "BatchNorm" bottom: "res4f_branch2a" top: "res4f_branch2a" batch_norm_param { } } layer { name: "scale4f_branch2a" type: "Scale" bottom: "res4f_branch2a" top: "res4f_branch2a" scale_param { bias_term: true } } layer { name: "res4f_branch2a_relu" type: "ReLU" bottom: "res4f_branch2a" top: "res4f_branch2a" relu_param { } } layer { name: "res4f_branch2b" type: "Convolution" bottom: "res4f_branch2a" top: "res4f_branch2b" convolution_param { num_output: 256 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4f_branch2b" type: "BatchNorm" bottom: "res4f_branch2b" top: "res4f_branch2b" batch_norm_param { } } layer { name: "scale4f_branch2b" type: "Scale" bottom: "res4f_branch2b" top: "res4f_branch2b" scale_param { bias_term: true } } layer { name: "res4f_branch2b_relu" type: "ReLU" bottom: "res4f_branch2b" top: "res4f_branch2b" relu_param { } } layer { name: "res4f_branch2c" type: "Convolution" bottom: "res4f_branch2b" top: "res4f_branch2c" convolution_param { num_output: 1024 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn4f_branch2c" type: "BatchNorm" bottom: "res4f_branch2c" top: "res4f_branch2c" batch_norm_param { } } layer { name: "scale4f_branch2c" type: "Scale" bottom: "res4f_branch2c" top: "res4f_branch2c" scale_param { bias_term: true } } layer { name: "res4f" type: "Eltwise" bottom: "res4e" bottom: "res4f_branch2c" top: "res4f" eltwise_param { } } layer { name: "res4f_relu" type: "ReLU" bottom: "res4f" top: "res4f" relu_param { } } layer { name: "res5a_branch1" type: "Convolution" bottom: "res4f" top: "res5a_branch1" convolution_param { num_output: 2048 bias_term: false pad: 0 kernel_size: 1 stride: 2 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn5a_branch1" type: "BatchNorm" bottom: "res5a_branch1" top: "res5a_branch1" batch_norm_param { } } layer { name: "scale5a_branch1" type: "Scale" bottom: "res5a_branch1" top: "res5a_branch1" scale_param { bias_term: true } } layer { name: "res5a_branch2a" type: "Convolution" bottom: "res4f" top: "res5a_branch2a" convolution_param { num_output: 512 bias_term: false pad: 0 kernel_size: 1 stride: 2 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn5a_branch2a" type: "BatchNorm" bottom: "res5a_branch2a" top: "res5a_branch2a" batch_norm_param { } } layer { name: "scale5a_branch2a" type: "Scale" bottom: "res5a_branch2a" top: "res5a_branch2a" scale_param { bias_term: true } } layer { name: "res5a_branch2a_relu" type: "ReLU" bottom: "res5a_branch2a" top: "res5a_branch2a" relu_param { } } layer { name: "res5a_branch2b" type: "Convolution" bottom: "res5a_branch2a" top: "res5a_branch2b" convolution_param { num_output: 512 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn5a_branch2b" type: "BatchNorm" bottom: "res5a_branch2b" top: "res5a_branch2b" batch_norm_param { } } layer { name: "scale5a_branch2b" type: "Scale" bottom: "res5a_branch2b" top: "res5a_branch2b" scale_param { bias_term: true } } layer { name: "res5a_branch2b_relu" type: "ReLU" bottom: "res5a_branch2b" top: "res5a_branch2b" relu_param { } } layer { name: "res5a_branch2c" type: "Convolution" bottom: "res5a_branch2b" top: "res5a_branch2c" convolution_param { num_output: 2048 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn5a_branch2c" type: "BatchNorm" bottom: "res5a_branch2c" top: "res5a_branch2c" batch_norm_param { } } layer { name: "scale5a_branch2c" type: "Scale" bottom: "res5a_branch2c" top: "res5a_branch2c" scale_param { bias_term: true } } layer { name: "res5a" type: "Eltwise" bottom: "res5a_branch1" bottom: "res5a_branch2c" top: "res5a" eltwise_param { } } layer { name: "res5a_relu" type: "ReLU" bottom: "res5a" top: "res5a" relu_param { } } layer { name: "res5b_branch2a" type: "Convolution" bottom: "res5a" top: "res5b_branch2a" convolution_param { num_output: 512 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn5b_branch2a" type: "BatchNorm" bottom: "res5b_branch2a" top: "res5b_branch2a" batch_norm_param { } } layer { name: "scale5b_branch2a" type: "Scale" bottom: "res5b_branch2a" top: "res5b_branch2a" scale_param { bias_term: true } } layer { name: "res5b_branch2a_relu" type: "ReLU" bottom: "res5b_branch2a" top: "res5b_branch2a" relu_param { } } layer { name: "res5b_branch2b" type: "Convolution" bottom: "res5b_branch2a" top: "res5b_branch2b" convolution_param { num_output: 512 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn5b_branch2b" type: "BatchNorm" bottom: "res5b_branch2b" top: "res5b_branch2b" batch_norm_param { } } layer { name: "scale5b_branch2b" type: "Scale" bottom: "res5b_branch2b" top: "res5b_branch2b" scale_param { bias_term: true } } layer { name: "res5b_branch2b_relu" type: "ReLU" bottom: "res5b_branch2b" top: "res5b_branch2b" relu_param { } } layer { name: "res5b_branch2c" type: "Convolution" bottom: "res5b_branch2b" top: "res5b_branch2c" convolution_param { num_output: 2048 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn5b_branch2c" type: "BatchNorm" bottom: "res5b_branch2c" top: "res5b_branch2c" batch_norm_param { } } layer { name: "scale5b_branch2c" type: "Scale" bottom: "res5b_branch2c" top: "res5b_branch2c" scale_param { bias_term: true } } layer { name: "res5b" type: "Eltwise" bottom: "res5a" bottom: "res5b_branch2c" top: "res5b" eltwise_param { } } layer { name: "res5b_relu" type: "ReLU" bottom: "res5b" top: "res5b" relu_param { } } layer { name: "res5c_branch2a" type: "Convolution" bottom: "res5b" top: "res5c_branch2a" convolution_param { num_output: 512 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn5c_branch2a" type: "BatchNorm" bottom: "res5c_branch2a" top: "res5c_branch2a" batch_norm_param { } } layer { name: "scale5c_branch2a" type: "Scale" bottom: "res5c_branch2a" top: "res5c_branch2a" scale_param { bias_term: true } } layer { name: "res5c_branch2a_relu" type: "ReLU" bottom: "res5c_branch2a" top: "res5c_branch2a" relu_param { } } layer { name: "res5c_branch2b" type: "Convolution" bottom: "res5c_branch2a" top: "res5c_branch2b" convolution_param { num_output: 512 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn5c_branch2b" type: "BatchNorm" bottom: "res5c_branch2b" top: "res5c_branch2b" batch_norm_param { } } layer { name: "scale5c_branch2b" type: "Scale" bottom: "res5c_branch2b" top: "res5c_branch2b" scale_param { bias_term: true } } layer { name: "res5c_branch2b_relu" type: "ReLU" bottom: "res5c_branch2b" top: "res5c_branch2b" relu_param { } } layer { name: "res5c_branch2c" type: "Convolution" bottom: "res5c_branch2b" top: "res5c_branch2c" convolution_param { num_output: 2048 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0.20000000298023224 } } } layer { name: "bn5c_branch2c" type: "BatchNorm" bottom: "res5c_branch2c" top: "res5c_branch2c" batch_norm_param { } } layer { name: "scale5c_branch2c" type: "Scale" bottom: "res5c_branch2c" top: "res5c_branch2c" scale_param { bias_term: true } } layer { name: "res5c" type: "Eltwise" bottom: "res5b" bottom: "res5c_branch2c" top: "res5c" eltwise_param { } } layer { name: "res5c_relu" type: "ReLU" bottom: "res5c" top: "res5c" relu_param { } } layer { name: "pool5" type: "Pooling" bottom: "res5c" top: "pool5" pooling_param { pool: AVE kernel_size: 7 stride: 1 } } layer { name: "fc1000" type: "InnerProduct" bottom: "pool5" top: "fc1000" inner_product_param { num_output: 1000 weight_filler { type: "xavier" } bias_filler { type: "constant" value: 0 } } }