name: "SE-BN-Inception" # mean_value: 104, 117, 123 layer { name: "se_bn_inception" type: "MemoryData" top: "data" top: "label" memory_data_param { batch_size: 1 channels: 3 height: 224 width: 224 } } layer { name: "conv1/7x7_s2" type: "Convolution" bottom: "data" top: "conv1/7x7_s2" convolution_param { num_output: 64 bias_term: false pad: 3 kernel_size: 7 stride: 2 } } layer { name: "conv1/7x7_s2/bn" type: "BatchNorm" bottom: "conv1/7x7_s2" top: "conv1/7x7_s2" batch_norm_param { use_global_stats: true } } layer { name: "conv1/7x7_s2/bn/scale" type: "Scale" bottom: "conv1/7x7_s2" top: "conv1/7x7_s2" scale_param { bias_term: true } } layer { name: "conv1/relu_7x7" type: "ReLU" bottom: "conv1/7x7_s2" top: "conv1/7x7_s2" } layer { name: "pool1/3x3_s2" type: "Pooling" bottom: "conv1/7x7_s2" top: "pool1/3x3_s2" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "conv2/3x3_reduce" type: "Convolution" bottom: "pool1/3x3_s2" top: "conv2/3x3_reduce" convolution_param { num_output: 64 bias_term: false kernel_size: 1 } } layer { name: "conv2/3x3_reduce/bn" type: "BatchNorm" bottom: "conv2/3x3_reduce" top: "conv2/3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "conv2/3x3_reduce/bn/scale" type: "Scale" bottom: "conv2/3x3_reduce" top: "conv2/3x3_reduce" scale_param { bias_term: true } } layer { name: "conv2/relu_3x3_reduce" type: "ReLU" bottom: "conv2/3x3_reduce" top: "conv2/3x3_reduce" } layer { name: "conv2/3x3" type: "Convolution" bottom: "conv2/3x3_reduce" top: "conv2/3x3" convolution_param { num_output: 192 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "conv2/3x3/bn" type: "BatchNorm" bottom: "conv2/3x3" top: "conv2/3x3" batch_norm_param { use_global_stats: true } } layer { name: "conv2/3x3/bn/scale" type: "Scale" bottom: "conv2/3x3" top: "conv2/3x3" scale_param { bias_term: true } } layer { name: "conv2/relu_3x3" type: "ReLU" bottom: "conv2/3x3" top: "conv2/3x3" } layer { name: "pool2/3x3_s2" type: "Pooling" bottom: "conv2/3x3" top: "pool2/3x3_s2" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "inception_3a/1x1" type: "Convolution" bottom: "pool2/3x3_s2" top: "inception_3a/1x1" convolution_param { num_output: 64 bias_term: false kernel_size: 1 } } layer { name: "inception_3a/1x1/bn" type: "BatchNorm" bottom: "inception_3a/1x1" top: "inception_3a/1x1" batch_norm_param { use_global_stats: true } } layer { name: "inception_3a/1x1/bn/scale" type: "Scale" bottom: "inception_3a/1x1" top: "inception_3a/1x1" scale_param { bias_term: true } } layer { name: "inception_3a/relu_1x1" type: "ReLU" bottom: "inception_3a/1x1" top: "inception_3a/1x1" } layer { name: "inception_3a/3x3_reduce" type: "Convolution" bottom: "pool2/3x3_s2" top: "inception_3a/3x3_reduce" convolution_param { num_output: 64 bias_term: false kernel_size: 1 } } layer { name: "inception_3a/3x3_reduce/bn" type: "BatchNorm" bottom: "inception_3a/3x3_reduce" top: "inception_3a/3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_3a/3x3_reduce/bn/scale" type: "Scale" bottom: "inception_3a/3x3_reduce" top: "inception_3a/3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_3a/relu_3x3_reduce" type: "ReLU" bottom: "inception_3a/3x3_reduce" top: "inception_3a/3x3_reduce" } layer { name: "inception_3a/3x3" type: "Convolution" bottom: "inception_3a/3x3_reduce" top: "inception_3a/3x3" convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_3a/3x3/bn" type: "BatchNorm" bottom: "inception_3a/3x3" top: "inception_3a/3x3" batch_norm_param { use_global_stats: true } } layer { name: "inception_3a/3x3/bn/scale" type: "Scale" bottom: "inception_3a/3x3" top: "inception_3a/3x3" scale_param { bias_term: true } } layer { name: "inception_3a/relu_3x3" type: "ReLU" bottom: "inception_3a/3x3" top: "inception_3a/3x3" } layer { name: "inception_3a/double3x3_reduce" type: "Convolution" bottom: "pool2/3x3_s2" top: "inception_3a/double3x3_reduce" convolution_param { num_output: 64 bias_term: false kernel_size: 1 } } layer { name: "inception_3a/double3x3_reduce/bn" type: "BatchNorm" bottom: "inception_3a/double3x3_reduce" top: "inception_3a/double3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_3a/double3x3_reduce/bn/scale" type: "Scale" bottom: "inception_3a/double3x3_reduce" top: "inception_3a/double3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_3a/relu_double3x3_reduce" type: "ReLU" bottom: "inception_3a/double3x3_reduce" top: "inception_3a/double3x3_reduce" } layer { name: "inception_3a/double3x3a" type: "Convolution" bottom: "inception_3a/double3x3_reduce" top: "inception_3a/double3x3a" convolution_param { num_output: 96 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_3a/double3x3a/bn" type: "BatchNorm" bottom: "inception_3a/double3x3a" top: "inception_3a/double3x3a" batch_norm_param { use_global_stats: true } } layer { name: "inception_3a/double3x3a/bn/scale" type: "Scale" bottom: "inception_3a/double3x3a" top: "inception_3a/double3x3a" scale_param { bias_term: true } } layer { name: "inception_3a/relu_double3x3a" type: "ReLU" bottom: "inception_3a/double3x3a" top: "inception_3a/double3x3a" } layer { name: "inception_3a/double3x3b" type: "Convolution" bottom: "inception_3a/double3x3a" top: "inception_3a/double3x3b" convolution_param { num_output: 96 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_3a/double3x3b/bn" type: "BatchNorm" bottom: "inception_3a/double3x3b" top: "inception_3a/double3x3b" batch_norm_param { use_global_stats: true } } layer { name: "inception_3a/double3x3b/bn/scale" type: "Scale" bottom: "inception_3a/double3x3b" top: "inception_3a/double3x3b" scale_param { bias_term: true } } layer { name: "inception_3a/relu_double3x3b" type: "ReLU" bottom: "inception_3a/double3x3b" top: "inception_3a/double3x3b" } layer { name: "inception_3a/pool" type: "Pooling" bottom: "pool2/3x3_s2" top: "inception_3a/pool" pooling_param { pool: AVE kernel_size: 3 stride: 1 pad: 1 } } layer { name: "inception_3a/pool_proj" type: "Convolution" bottom: "inception_3a/pool" top: "inception_3a/pool_proj" convolution_param { num_output: 32 bias_term: false kernel_size: 1 } } layer { name: "inception_3a/pool_proj/bn" type: "BatchNorm" bottom: "inception_3a/pool_proj" top: "inception_3a/pool_proj" batch_norm_param { use_global_stats: true } } layer { name: "inception_3a/pool_proj/bn/scale" type: "Scale" bottom: "inception_3a/pool_proj" top: "inception_3a/pool_proj" scale_param { bias_term: true } } layer { name: "inception_3a/relu_pool_proj" type: "ReLU" bottom: "inception_3a/pool_proj" top: "inception_3a/pool_proj" } layer { name: "inception_3a/concat" type: "Concat" bottom: "inception_3a/1x1" bottom: "inception_3a/3x3" bottom: "inception_3a/double3x3b" bottom: "inception_3a/pool_proj" top: "inception_3a/concat" } layer { name: "inception_3a_global_pool" type: "Pooling" bottom: "inception_3a/concat" top: "inception_3a_global_pool" pooling_param { pool: AVE engine: CAFFE global_pooling: true } } layer { name: "inception_3a_1x1_down" type: "Convolution" bottom: "inception_3a_global_pool" top: "inception_3a_1x1_down" convolution_param { num_output: 16 kernel_size: 1 stride: 1 } } layer { name: "inception_3a_1x1_down/relu" type: "ReLU" bottom: "inception_3a_1x1_down" top: "inception_3a_1x1_down" } layer { name: "inception_3a_1x1_up" type: "Convolution" bottom: "inception_3a_1x1_down" top: "inception_3a_1x1_up" convolution_param { num_output: 256 kernel_size: 1 stride: 1 } } layer { name: "inception_3a_prob" type: "Sigmoid" bottom: "inception_3a_1x1_up" top: "inception_3a_1x1_up" } layer { name: "inception_3a_prob_reshape" type: "Reshape" bottom: "inception_3a_1x1_up" top: "inception_3a_prob_reshape" reshape_param { shape { dim: 0 dim: 0 } } } layer { name: "inception_3a_scale" type: "Scale" bottom: "inception_3a/concat" bottom: "inception_3a_prob_reshape" top: "inception_3a/output" scale_param { axis: 0 bias_term: false } } layer { name: "inception_3b/1x1" type: "Convolution" bottom: "inception_3a/output" top: "inception_3b/1x1" convolution_param { num_output: 64 bias_term: false kernel_size: 1 } } layer { name: "inception_3b/1x1/bn" type: "BatchNorm" bottom: "inception_3b/1x1" top: "inception_3b/1x1" batch_norm_param { use_global_stats: true } } layer { name: "inception_3b/1x1/bn/scale" type: "Scale" bottom: "inception_3b/1x1" top: "inception_3b/1x1" scale_param { bias_term: true } } layer { name: "inception_3b/relu_1x1" type: "ReLU" bottom: "inception_3b/1x1" top: "inception_3b/1x1" } layer { name: "inception_3b/3x3_reduce" type: "Convolution" bottom: "inception_3a/output" top: "inception_3b/3x3_reduce" convolution_param { num_output: 64 bias_term: false kernel_size: 1 } } layer { name: "inception_3b/3x3_reduce/bn" type: "BatchNorm" bottom: "inception_3b/3x3_reduce" top: "inception_3b/3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_3b/3x3_reduce/bn/scale" type: "Scale" bottom: "inception_3b/3x3_reduce" top: "inception_3b/3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_3b/relu_3x3_reduce" type: "ReLU" bottom: "inception_3b/3x3_reduce" top: "inception_3b/3x3_reduce" } layer { name: "inception_3b/3x3" type: "Convolution" bottom: "inception_3b/3x3_reduce" top: "inception_3b/3x3" convolution_param { num_output: 96 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_3b/3x3/bn" type: "BatchNorm" bottom: "inception_3b/3x3" top: "inception_3b/3x3" batch_norm_param { use_global_stats: true } } layer { name: "inception_3b/3x3/bn/scale" type: "Scale" bottom: "inception_3b/3x3" top: "inception_3b/3x3" scale_param { bias_term: true } } layer { name: "inception_3b/relu_3x3" type: "ReLU" bottom: "inception_3b/3x3" top: "inception_3b/3x3" } layer { name: "inception_3b/double3x3_reduce" type: "Convolution" bottom: "inception_3a/output" top: "inception_3b/double3x3_reduce" convolution_param { num_output: 64 bias_term: false kernel_size: 1 } } layer { name: "inception_3b/double3x3_reduce/bn" type: "BatchNorm" bottom: "inception_3b/double3x3_reduce" top: "inception_3b/double3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_3b/double3x3_reduce/bn/scale" type: "Scale" bottom: "inception_3b/double3x3_reduce" top: "inception_3b/double3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_3b/relu_double3x3_reduce" type: "ReLU" bottom: "inception_3b/double3x3_reduce" top: "inception_3b/double3x3_reduce" } layer { name: "inception_3b/double3x3a" type: "Convolution" bottom: "inception_3b/double3x3_reduce" top: "inception_3b/double3x3a" convolution_param { num_output: 96 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_3b/double3x3a/bn" type: "BatchNorm" bottom: "inception_3b/double3x3a" top: "inception_3b/double3x3a" batch_norm_param { use_global_stats: true } } layer { name: "inception_3b/double3x3a/bn/scale" type: "Scale" bottom: "inception_3b/double3x3a" top: "inception_3b/double3x3a" scale_param { bias_term: true } } layer { name: "inception_3b/relu_double3x3a" type: "ReLU" bottom: "inception_3b/double3x3a" top: "inception_3b/double3x3a" } layer { name: "inception_3b/double3x3b" type: "Convolution" bottom: "inception_3b/double3x3a" top: "inception_3b/double3x3b" convolution_param { num_output: 96 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_3b/double3x3b/bn" type: "BatchNorm" bottom: "inception_3b/double3x3b" top: "inception_3b/double3x3b" batch_norm_param { use_global_stats: true } } layer { name: "inception_3b/double3x3b/bn/scale" type: "Scale" bottom: "inception_3b/double3x3b" top: "inception_3b/double3x3b" scale_param { bias_term: true } } layer { name: "inception_3b/relu_double3x3b" type: "ReLU" bottom: "inception_3b/double3x3b" top: "inception_3b/double3x3b" } layer { name: "inception_3b/pool" type: "Pooling" bottom: "inception_3a/output" top: "inception_3b/pool" pooling_param { pool: AVE kernel_size: 3 stride: 1 pad: 1 } } layer { name: "inception_3b/pool_proj" type: "Convolution" bottom: "inception_3b/pool" top: "inception_3b/pool_proj" convolution_param { num_output: 64 bias_term: false kernel_size: 1 } } layer { name: "inception_3b/pool_proj/bn" type: "BatchNorm" bottom: "inception_3b/pool_proj" top: "inception_3b/pool_proj" batch_norm_param { use_global_stats: true } } layer { name: "inception_3b/pool_proj/bn/scale" type: "Scale" bottom: "inception_3b/pool_proj" top: "inception_3b/pool_proj" scale_param { bias_term: true } } layer { name: "inception_3b/relu_pool_proj" type: "ReLU" bottom: "inception_3b/pool_proj" top: "inception_3b/pool_proj" } layer { name: "inception_3b/concat" type: "Concat" bottom: "inception_3b/1x1" bottom: "inception_3b/3x3" bottom: "inception_3b/double3x3b" bottom: "inception_3b/pool_proj" top: "inception_3b/concat" } layer { name: "inception_3b_global_pool" type: "Pooling" bottom: "inception_3b/concat" top: "inception_3b_global_pool" pooling_param { pool: AVE engine: CAFFE global_pooling: true } } layer { name: "inception_3b_1x1_down" type: "Convolution" bottom: "inception_3b_global_pool" top: "inception_3b_1x1_down" convolution_param { num_output: 20 kernel_size: 1 stride: 1 } } layer { name: "inception_3b_1x1_down/relu" type: "ReLU" bottom: "inception_3b_1x1_down" top: "inception_3b_1x1_down" } layer { name: "inception_3b_1x1_up" type: "Convolution" bottom: "inception_3b_1x1_down" top: "inception_3b_1x1_up" convolution_param { num_output: 320 kernel_size: 1 stride: 1 } } layer { name: "inception_3b_prob" type: "Sigmoid" bottom: "inception_3b_1x1_up" top: "inception_3b_1x1_up" } layer { name: "inception_3b_prob_reshape" type: "Reshape" bottom: "inception_3b_1x1_up" top: "inception_3b_prob_reshape" reshape_param { shape { dim: 0 dim: 0 } } } layer { name: "inception_3b_scale" type: "Scale" bottom: "inception_3b/concat" bottom: "inception_3b_prob_reshape" top: "inception_3b/output" scale_param { axis: 0 bias_term: false } } layer { name: "inception_3c/3x3_reduce" type: "Convolution" bottom: "inception_3b/output" top: "inception_3c/3x3_reduce" convolution_param { num_output: 128 bias_term: false kernel_size: 1 } } layer { name: "inception_3c/3x3_reduce/bn" type: "BatchNorm" bottom: "inception_3c/3x3_reduce" top: "inception_3c/3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_3c/3x3_reduce/bn/scale" type: "Scale" bottom: "inception_3c/3x3_reduce" top: "inception_3c/3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_3c/relu_3x3_reduce" type: "ReLU" bottom: "inception_3c/3x3_reduce" top: "inception_3c/3x3_reduce" } layer { name: "inception_3c/3x3" type: "Convolution" bottom: "inception_3c/3x3_reduce" top: "inception_3c/3x3" convolution_param { num_output: 160 bias_term: false pad: 1 kernel_size: 3 stride: 2 } } layer { name: "inception_3c/3x3/bn" type: "BatchNorm" bottom: "inception_3c/3x3" top: "inception_3c/3x3" batch_norm_param { use_global_stats: true } } layer { name: "inception_3c/3x3/bn/scale" type: "Scale" bottom: "inception_3c/3x3" top: "inception_3c/3x3" scale_param { bias_term: true } } layer { name: "inception_3c/relu_3x3" type: "ReLU" bottom: "inception_3c/3x3" top: "inception_3c/3x3" } layer { name: "inception_3c/double3x3_reduce" type: "Convolution" bottom: "inception_3b/output" top: "inception_3c/double3x3_reduce" convolution_param { num_output: 64 bias_term: false kernel_size: 1 } } layer { name: "inception_3c/double3x3_reduce/bn" type: "BatchNorm" bottom: "inception_3c/double3x3_reduce" top: "inception_3c/double3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_3c/double3x3_reduce/bn/scale" type: "Scale" bottom: "inception_3c/double3x3_reduce" top: "inception_3c/double3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_3c/relu_double3x3_reduce" type: "ReLU" bottom: "inception_3c/double3x3_reduce" top: "inception_3c/double3x3_reduce" } layer { name: "inception_3c/double3x3a" type: "Convolution" bottom: "inception_3c/double3x3_reduce" top: "inception_3c/double3x3a" convolution_param { num_output: 96 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_3c/double3x3a/bn" type: "BatchNorm" bottom: "inception_3c/double3x3a" top: "inception_3c/double3x3a" batch_norm_param { use_global_stats: true } } layer { name: "inception_3c/double3x3a/bn/scale" type: "Scale" bottom: "inception_3c/double3x3a" top: "inception_3c/double3x3a" scale_param { bias_term: true } } layer { name: "inception_3c/relu_double3x3a" type: "ReLU" bottom: "inception_3c/double3x3a" top: "inception_3c/double3x3a" } layer { name: "inception_3c/double3x3b" type: "Convolution" bottom: "inception_3c/double3x3a" top: "inception_3c/double3x3b" convolution_param { num_output: 96 bias_term: false pad: 1 kernel_size: 3 stride: 2 } } layer { name: "inception_3c/double3x3b/bn" type: "BatchNorm" bottom: "inception_3c/double3x3b" top: "inception_3c/double3x3b" batch_norm_param { use_global_stats: true } } layer { name: "inception_3c/double3x3b/bn/scale" type: "Scale" bottom: "inception_3c/double3x3b" top: "inception_3c/double3x3b" scale_param { bias_term: true } } layer { name: "inception_3c/relu_double3x3b" type: "ReLU" bottom: "inception_3c/double3x3b" top: "inception_3c/double3x3b" } layer { name: "inception_3c/pool/3x3_s2" type: "Pooling" bottom: "inception_3b/output" top: "inception_3c/pool/3x3_s2" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "inception_3c/concat" type: "Concat" bottom: "inception_3c/3x3" bottom: "inception_3c/double3x3b" bottom: "inception_3c/pool/3x3_s2" top: "inception_3c/concat" } layer { name: "inception_3c_global_pool" type: "Pooling" bottom: "inception_3c/concat" top: "inception_3c_global_pool" pooling_param { pool: AVE engine: CAFFE global_pooling: true } } layer { name: "inception_3c_1x1_down" type: "Convolution" bottom: "inception_3c_global_pool" top: "inception_3c_1x1_down" convolution_param { num_output: 36 kernel_size: 1 stride: 1 } } layer { name: "inception_3c_1x1_down/relu" type: "ReLU" bottom: "inception_3c_1x1_down" top: "inception_3c_1x1_down" } layer { name: "inception_3c_1x1_up" type: "Convolution" bottom: "inception_3c_1x1_down" top: "inception_3c_1x1_up" convolution_param { num_output: 576 kernel_size: 1 stride: 1 } } layer { name: "inception_3c_prob" type: "Sigmoid" bottom: "inception_3c_1x1_up" top: "inception_3c_1x1_up" } layer { name: "inception_3c_prob_reshape" type: "Reshape" bottom: "inception_3c_1x1_up" top: "inception_3c_prob_reshape" reshape_param { shape { dim: 0 dim: 0 } } } layer { name: "inception_3c_scale" type: "Scale" bottom: "inception_3c/concat" bottom: "inception_3c_prob_reshape" top: "inception_3c/output" scale_param { axis: 0 bias_term: false } } layer { name: "inception_4a/1x1" type: "Convolution" bottom: "inception_3c/output" top: "inception_4a/1x1" convolution_param { num_output: 224 bias_term: false kernel_size: 1 } } layer { name: "inception_4a/1x1/bn" type: "BatchNorm" bottom: "inception_4a/1x1" top: "inception_4a/1x1" batch_norm_param { use_global_stats: true } } layer { name: "inception_4a/1x1/bn/scale" type: "Scale" bottom: "inception_4a/1x1" top: "inception_4a/1x1" scale_param { bias_term: true } } layer { name: "inception_4a/relu_1x1" type: "ReLU" bottom: "inception_4a/1x1" top: "inception_4a/1x1" } layer { name: "inception_4a/3x3_reduce" type: "Convolution" bottom: "inception_3c/output" top: "inception_4a/3x3_reduce" convolution_param { num_output: 64 bias_term: false kernel_size: 1 } } layer { name: "inception_4a/3x3_reduce/bn" type: "BatchNorm" bottom: "inception_4a/3x3_reduce" top: "inception_4a/3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_4a/3x3_reduce/bn/scale" type: "Scale" bottom: "inception_4a/3x3_reduce" top: "inception_4a/3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_4a/relu_3x3_reduce" type: "ReLU" bottom: "inception_4a/3x3_reduce" top: "inception_4a/3x3_reduce" } layer { name: "inception_4a/3x3" type: "Convolution" bottom: "inception_4a/3x3_reduce" top: "inception_4a/3x3" convolution_param { num_output: 96 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_4a/3x3/bn" type: "BatchNorm" bottom: "inception_4a/3x3" top: "inception_4a/3x3" batch_norm_param { use_global_stats: true } } layer { name: "inception_4a/3x3/bn/scale" type: "Scale" bottom: "inception_4a/3x3" top: "inception_4a/3x3" scale_param { bias_term: true } } layer { name: "inception_4a/relu_3x3" type: "ReLU" bottom: "inception_4a/3x3" top: "inception_4a/3x3" } layer { name: "inception_4a/double3x3_reduce" type: "Convolution" bottom: "inception_3c/output" top: "inception_4a/double3x3_reduce" convolution_param { num_output: 96 bias_term: false kernel_size: 1 } } layer { name: "inception_4a/double3x3_reduce/bn" type: "BatchNorm" bottom: "inception_4a/double3x3_reduce" top: "inception_4a/double3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_4a/double3x3_reduce/bn/scale" type: "Scale" bottom: "inception_4a/double3x3_reduce" top: "inception_4a/double3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_4a/relu_double3x3_reduce" type: "ReLU" bottom: "inception_4a/double3x3_reduce" top: "inception_4a/double3x3_reduce" } layer { name: "inception_4a/double3x3a" type: "Convolution" bottom: "inception_4a/double3x3_reduce" top: "inception_4a/double3x3a" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_4a/double3x3a/bn" type: "BatchNorm" bottom: "inception_4a/double3x3a" top: "inception_4a/double3x3a" batch_norm_param { use_global_stats: true } } layer { name: "inception_4a/double3x3a/bn/scale" type: "Scale" bottom: "inception_4a/double3x3a" top: "inception_4a/double3x3a" scale_param { bias_term: true } } layer { name: "inception_4a/relu_double3x3a" type: "ReLU" bottom: "inception_4a/double3x3a" top: "inception_4a/double3x3a" } layer { name: "inception_4a/double3x3b" type: "Convolution" bottom: "inception_4a/double3x3a" top: "inception_4a/double3x3b" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_4a/double3x3b/bn" type: "BatchNorm" bottom: "inception_4a/double3x3b" top: "inception_4a/double3x3b" batch_norm_param { use_global_stats: true } } layer { name: "inception_4a/double3x3b/bn/scale" type: "Scale" bottom: "inception_4a/double3x3b" top: "inception_4a/double3x3b" scale_param { bias_term: true } } layer { name: "inception_4a/relu_double3x3b" type: "ReLU" bottom: "inception_4a/double3x3b" top: "inception_4a/double3x3b" } layer { name: "inception_4a/pool" type: "Pooling" bottom: "inception_3c/output" top: "inception_4a/pool" pooling_param { pool: AVE kernel_size: 3 stride: 1 pad: 1 } } layer { name: "inception_4a/pool_proj" type: "Convolution" bottom: "inception_4a/pool" top: "inception_4a/pool_proj" convolution_param { num_output: 128 bias_term: false kernel_size: 1 } } layer { name: "inception_4a/pool_proj/bn" type: "BatchNorm" bottom: "inception_4a/pool_proj" top: "inception_4a/pool_proj" batch_norm_param { use_global_stats: true } } layer { name: "inception_4a/pool_proj/bn/scale" type: "Scale" bottom: "inception_4a/pool_proj" top: "inception_4a/pool_proj" scale_param { bias_term: true } } layer { name: "inception_4a/relu_pool_proj" type: "ReLU" bottom: "inception_4a/pool_proj" top: "inception_4a/pool_proj" } layer { name: "inception_4a/concat" type: "Concat" bottom: "inception_4a/1x1" bottom: "inception_4a/3x3" bottom: "inception_4a/double3x3b" bottom: "inception_4a/pool_proj" top: "inception_4a/concat" } layer { name: "inception_4a_global_pool" type: "Pooling" bottom: "inception_4a/concat" top: "inception_4a_global_pool" pooling_param { pool: AVE engine: CAFFE global_pooling: true } } layer { name: "inception_4a_1x1_down" type: "Convolution" bottom: "inception_4a_global_pool" top: "inception_4a_1x1_down" convolution_param { num_output: 36 kernel_size: 1 stride: 1 } } layer { name: "inception_4a_1x1_down/relu" type: "ReLU" bottom: "inception_4a_1x1_down" top: "inception_4a_1x1_down" } layer { name: "inception_4a_1x1_up" type: "Convolution" bottom: "inception_4a_1x1_down" top: "inception_4a_1x1_up" convolution_param { num_output: 576 kernel_size: 1 stride: 1 } } layer { name: "inception_4a_prob" type: "Sigmoid" bottom: "inception_4a_1x1_up" top: "inception_4a_1x1_up" } layer { name: "inception_4a_prob_reshape" type: "Reshape" bottom: "inception_4a_1x1_up" top: "inception_4a_prob_reshape" reshape_param { shape { dim: 0 dim: 0 } } } layer { name: "inception_4a_scale" type: "Scale" bottom: "inception_4a/concat" bottom: "inception_4a_prob_reshape" top: "inception_4a/output" scale_param { axis: 0 bias_term: false } } layer { name: "inception_4b/1x1" type: "Convolution" bottom: "inception_4a/output" top: "inception_4b/1x1" convolution_param { num_output: 192 bias_term: false kernel_size: 1 } } layer { name: "inception_4b/1x1/bn" type: "BatchNorm" bottom: "inception_4b/1x1" top: "inception_4b/1x1" batch_norm_param { use_global_stats: true } } layer { name: "inception_4b/1x1/bn/scale" type: "Scale" bottom: "inception_4b/1x1" top: "inception_4b/1x1" scale_param { bias_term: true } } layer { name: "inception_4b/relu_1x1" type: "ReLU" bottom: "inception_4b/1x1" top: "inception_4b/1x1" } layer { name: "inception_4b/3x3_reduce" type: "Convolution" bottom: "inception_4a/output" top: "inception_4b/3x3_reduce" convolution_param { num_output: 96 bias_term: false kernel_size: 1 } } layer { name: "inception_4b/3x3_reduce/bn" type: "BatchNorm" bottom: "inception_4b/3x3_reduce" top: "inception_4b/3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_4b/3x3_reduce/bn/scale" type: "Scale" bottom: "inception_4b/3x3_reduce" top: "inception_4b/3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_4b/relu_3x3_reduce" type: "ReLU" bottom: "inception_4b/3x3_reduce" top: "inception_4b/3x3_reduce" } layer { name: "inception_4b/3x3" type: "Convolution" bottom: "inception_4b/3x3_reduce" top: "inception_4b/3x3" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_4b/3x3/bn" type: "BatchNorm" bottom: "inception_4b/3x3" top: "inception_4b/3x3" batch_norm_param { use_global_stats: true } } layer { name: "inception_4b/3x3/bn/scale" type: "Scale" bottom: "inception_4b/3x3" top: "inception_4b/3x3" scale_param { bias_term: true } } layer { name: "inception_4b/relu_3x3" type: "ReLU" bottom: "inception_4b/3x3" top: "inception_4b/3x3" } layer { name: "inception_4b/double3x3_reduce" type: "Convolution" bottom: "inception_4a/output" top: "inception_4b/double3x3_reduce" convolution_param { num_output: 96 bias_term: false kernel_size: 1 } } layer { name: "inception_4b/double3x3_reduce/bn" type: "BatchNorm" bottom: "inception_4b/double3x3_reduce" top: "inception_4b/double3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_4b/double3x3_reduce/bn/scale" type: "Scale" bottom: "inception_4b/double3x3_reduce" top: "inception_4b/double3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_4b/relu_double3x3_reduce" type: "ReLU" bottom: "inception_4b/double3x3_reduce" top: "inception_4b/double3x3_reduce" } layer { name: "inception_4b/double3x3a" type: "Convolution" bottom: "inception_4b/double3x3_reduce" top: "inception_4b/double3x3a" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_4b/double3x3a/bn" type: "BatchNorm" bottom: "inception_4b/double3x3a" top: "inception_4b/double3x3a" batch_norm_param { use_global_stats: true } } layer { name: "inception_4b/double3x3a/bn/scale" type: "Scale" bottom: "inception_4b/double3x3a" top: "inception_4b/double3x3a" scale_param { bias_term: true } } layer { name: "inception_4b/relu_double3x3a" type: "ReLU" bottom: "inception_4b/double3x3a" top: "inception_4b/double3x3a" } layer { name: "inception_4b/double3x3b" type: "Convolution" bottom: "inception_4b/double3x3a" top: "inception_4b/double3x3b" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_4b/double3x3b/bn" type: "BatchNorm" bottom: "inception_4b/double3x3b" top: "inception_4b/double3x3b" batch_norm_param { use_global_stats: true } } layer { name: "inception_4b/double3x3b/bn/scale" type: "Scale" bottom: "inception_4b/double3x3b" top: "inception_4b/double3x3b" scale_param { bias_term: true } } layer { name: "inception_4b/relu_double3x3b" type: "ReLU" bottom: "inception_4b/double3x3b" top: "inception_4b/double3x3b" } layer { name: "inception_4b/pool" type: "Pooling" bottom: "inception_4a/output" top: "inception_4b/pool" pooling_param { pool: AVE kernel_size: 3 stride: 1 pad: 1 } } layer { name: "inception_4b/pool_proj" type: "Convolution" bottom: "inception_4b/pool" top: "inception_4b/pool_proj" convolution_param { num_output: 128 bias_term: false kernel_size: 1 } } layer { name: "inception_4b/pool_proj/bn" type: "BatchNorm" bottom: "inception_4b/pool_proj" top: "inception_4b/pool_proj" batch_norm_param { use_global_stats: true } } layer { name: "inception_4b/pool_proj/bn/scale" type: "Scale" bottom: "inception_4b/pool_proj" top: "inception_4b/pool_proj" scale_param { bias_term: true } } layer { name: "inception_4b/relu_pool_proj" type: "ReLU" bottom: "inception_4b/pool_proj" top: "inception_4b/pool_proj" } layer { name: "inception_4b/concat" type: "Concat" bottom: "inception_4b/1x1" bottom: "inception_4b/3x3" bottom: "inception_4b/double3x3b" bottom: "inception_4b/pool_proj" top: "inception_4b/concat" } layer { name: "inception_4b_global_pool" type: "Pooling" bottom: "inception_4b/concat" top: "inception_4b_global_pool" pooling_param { pool: AVE engine: CAFFE global_pooling: true } } layer { name: "inception_4b_1x1_down" type: "Convolution" bottom: "inception_4b_global_pool" top: "inception_4b_1x1_down" convolution_param { num_output: 36 kernel_size: 1 stride: 1 } } layer { name: "inception_4b_1x1_down/relu" type: "ReLU" bottom: "inception_4b_1x1_down" top: "inception_4b_1x1_down" } layer { name: "inception_4b_1x1_up" type: "Convolution" bottom: "inception_4b_1x1_down" top: "inception_4b_1x1_up" convolution_param { num_output: 576 kernel_size: 1 stride: 1 } } layer { name: "inception_4b_prob" type: "Sigmoid" bottom: "inception_4b_1x1_up" top: "inception_4b_1x1_up" } layer { name: "inception_4b_prob_reshape" type: "Reshape" bottom: "inception_4b_1x1_up" top: "inception_4b_prob_reshape" reshape_param { shape { dim: 0 dim: 0 } } } layer { name: "inception_4b_scale" type: "Scale" bottom: "inception_4b/concat" bottom: "inception_4b_prob_reshape" top: "inception_4b/output" scale_param { axis: 0 bias_term: false } } layer { name: "inception_4c/1x1" type: "Convolution" bottom: "inception_4b/output" top: "inception_4c/1x1" convolution_param { num_output: 160 bias_term: false kernel_size: 1 } } layer { name: "inception_4c/1x1/bn" type: "BatchNorm" bottom: "inception_4c/1x1" top: "inception_4c/1x1" batch_norm_param { use_global_stats: true } } layer { name: "inception_4c/1x1/bn/scale" type: "Scale" bottom: "inception_4c/1x1" top: "inception_4c/1x1" scale_param { bias_term: true } } layer { name: "inception_4c/relu_1x1" type: "ReLU" bottom: "inception_4c/1x1" top: "inception_4c/1x1" } layer { name: "inception_4c/3x3_reduce" type: "Convolution" bottom: "inception_4b/output" top: "inception_4c/3x3_reduce" convolution_param { num_output: 128 bias_term: false kernel_size: 1 } } layer { name: "inception_4c/3x3_reduce/bn" type: "BatchNorm" bottom: "inception_4c/3x3_reduce" top: "inception_4c/3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_4c/3x3_reduce/bn/scale" type: "Scale" bottom: "inception_4c/3x3_reduce" top: "inception_4c/3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_4c/relu_3x3_reduce" type: "ReLU" bottom: "inception_4c/3x3_reduce" top: "inception_4c/3x3_reduce" } layer { name: "inception_4c/3x3" type: "Convolution" bottom: "inception_4c/3x3_reduce" top: "inception_4c/3x3" convolution_param { num_output: 160 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_4c/3x3/bn" type: "BatchNorm" bottom: "inception_4c/3x3" top: "inception_4c/3x3" batch_norm_param { use_global_stats: true } } layer { name: "inception_4c/3x3/bn/scale" type: "Scale" bottom: "inception_4c/3x3" top: "inception_4c/3x3" scale_param { bias_term: true } } layer { name: "inception_4c/relu_3x3" type: "ReLU" bottom: "inception_4c/3x3" top: "inception_4c/3x3" } layer { name: "inception_4c/double3x3_reduce" type: "Convolution" bottom: "inception_4b/output" top: "inception_4c/double3x3_reduce" convolution_param { num_output: 128 bias_term: false kernel_size: 1 } } layer { name: "inception_4c/double3x3_reduce/bn" type: "BatchNorm" bottom: "inception_4c/double3x3_reduce" top: "inception_4c/double3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_4c/double3x3_reduce/bn/scale" type: "Scale" bottom: "inception_4c/double3x3_reduce" top: "inception_4c/double3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_4c/relu_double3x3_reduce" type: "ReLU" bottom: "inception_4c/double3x3_reduce" top: "inception_4c/double3x3_reduce" } layer { name: "inception_4c/double3x3a" type: "Convolution" bottom: "inception_4c/double3x3_reduce" top: "inception_4c/double3x3a" convolution_param { num_output: 160 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_4c/double3x3a/bn" type: "BatchNorm" bottom: "inception_4c/double3x3a" top: "inception_4c/double3x3a" batch_norm_param { use_global_stats: true } } layer { name: "inception_4c/double3x3a/bn/scale" type: "Scale" bottom: "inception_4c/double3x3a" top: "inception_4c/double3x3a" scale_param { bias_term: true } } layer { name: "inception_4c/relu_double3x3a" type: "ReLU" bottom: "inception_4c/double3x3a" top: "inception_4c/double3x3a" } layer { name: "inception_4c/double3x3b" type: "Convolution" bottom: "inception_4c/double3x3a" top: "inception_4c/double3x3b" convolution_param { num_output: 160 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_4c/double3x3b/bn" type: "BatchNorm" bottom: "inception_4c/double3x3b" top: "inception_4c/double3x3b" batch_norm_param { use_global_stats: true } } layer { name: "inception_4c/double3x3b/bn/scale" type: "Scale" bottom: "inception_4c/double3x3b" top: "inception_4c/double3x3b" scale_param { bias_term: true } } layer { name: "inception_4c/relu_double3x3b" type: "ReLU" bottom: "inception_4c/double3x3b" top: "inception_4c/double3x3b" } layer { name: "inception_4c/pool" type: "Pooling" bottom: "inception_4b/output" top: "inception_4c/pool" pooling_param { pool: AVE kernel_size: 3 stride: 1 pad: 1 } } layer { name: "inception_4c/pool_proj" type: "Convolution" bottom: "inception_4c/pool" top: "inception_4c/pool_proj" convolution_param { num_output: 128 bias_term: false kernel_size: 1 } } layer { name: "inception_4c/pool_proj/bn" type: "BatchNorm" bottom: "inception_4c/pool_proj" top: "inception_4c/pool_proj" batch_norm_param { use_global_stats: true } } layer { name: "inception_4c/pool_proj/bn/scale" type: "Scale" bottom: "inception_4c/pool_proj" top: "inception_4c/pool_proj" scale_param { bias_term: true } } layer { name: "inception_4c/relu_pool_proj" type: "ReLU" bottom: "inception_4c/pool_proj" top: "inception_4c/pool_proj" } layer { name: "inception_4c/concat" type: "Concat" bottom: "inception_4c/1x1" bottom: "inception_4c/3x3" bottom: "inception_4c/double3x3b" bottom: "inception_4c/pool_proj" top: "inception_4c/concat" } layer { name: "inception_4c_global_pool" type: "Pooling" bottom: "inception_4c/concat" top: "inception_4c_global_pool" pooling_param { pool: AVE engine: CAFFE global_pooling: true } } layer { name: "inception_4c_1x1_down" type: "Convolution" bottom: "inception_4c_global_pool" top: "inception_4c_1x1_down" convolution_param { num_output: 38 kernel_size: 1 stride: 1 } } layer { name: "inception_4c_1x1_down/relu" type: "ReLU" bottom: "inception_4c_1x1_down" top: "inception_4c_1x1_down" } layer { name: "inception_4c_1x1_up" type: "Convolution" bottom: "inception_4c_1x1_down" top: "inception_4c_1x1_up" convolution_param { num_output: 608 kernel_size: 1 stride: 1 } } layer { name: "inception_4c_prob" type: "Sigmoid" bottom: "inception_4c_1x1_up" top: "inception_4c_1x1_up" } layer { name: "inception_4c_prob_reshape" type: "Reshape" bottom: "inception_4c_1x1_up" top: "inception_4c_prob_reshape" reshape_param { shape { dim: 0 dim: 0 } } } layer { name: "inception_4c_scale" type: "Scale" bottom: "inception_4c/concat" bottom: "inception_4c_prob_reshape" top: "inception_4c/output" scale_param { axis: 0 bias_term: false } } layer { name: "inception_4d/1x1" type: "Convolution" bottom: "inception_4c/output" top: "inception_4d/1x1" convolution_param { num_output: 96 bias_term: false kernel_size: 1 } } layer { name: "inception_4d/1x1/bn" type: "BatchNorm" bottom: "inception_4d/1x1" top: "inception_4d/1x1" batch_norm_param { use_global_stats: true } } layer { name: "inception_4d/1x1/bn/scale" type: "Scale" bottom: "inception_4d/1x1" top: "inception_4d/1x1" scale_param { bias_term: true } } layer { name: "inception_4d/relu_1x1" type: "ReLU" bottom: "inception_4d/1x1" top: "inception_4d/1x1" } layer { name: "inception_4d/3x3_reduce" type: "Convolution" bottom: "inception_4c/output" top: "inception_4d/3x3_reduce" convolution_param { num_output: 128 bias_term: false kernel_size: 1 } } layer { name: "inception_4d/3x3_reduce/bn" type: "BatchNorm" bottom: "inception_4d/3x3_reduce" top: "inception_4d/3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_4d/3x3_reduce/bn/scale" type: "Scale" bottom: "inception_4d/3x3_reduce" top: "inception_4d/3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_4d/relu_3x3_reduce" type: "ReLU" bottom: "inception_4d/3x3_reduce" top: "inception_4d/3x3_reduce" } layer { name: "inception_4d/3x3" type: "Convolution" bottom: "inception_4d/3x3_reduce" top: "inception_4d/3x3" convolution_param { num_output: 192 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_4d/3x3/bn" type: "BatchNorm" bottom: "inception_4d/3x3" top: "inception_4d/3x3" batch_norm_param { use_global_stats: true } } layer { name: "inception_4d/3x3/bn/scale" type: "Scale" bottom: "inception_4d/3x3" top: "inception_4d/3x3" scale_param { bias_term: true } } layer { name: "inception_4d/relu_3x3" type: "ReLU" bottom: "inception_4d/3x3" top: "inception_4d/3x3" } layer { name: "inception_4d/double3x3_reduce" type: "Convolution" bottom: "inception_4c/output" top: "inception_4d/double3x3_reduce" convolution_param { num_output: 160 bias_term: false kernel_size: 1 } } layer { name: "inception_4d/double3x3_reduce/bn" type: "BatchNorm" bottom: "inception_4d/double3x3_reduce" top: "inception_4d/double3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_4d/double3x3_reduce/bn/scale" type: "Scale" bottom: "inception_4d/double3x3_reduce" top: "inception_4d/double3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_4d/relu_double3x3_reduce" type: "ReLU" bottom: "inception_4d/double3x3_reduce" top: "inception_4d/double3x3_reduce" } layer { name: "inception_4d/double3x3a" type: "Convolution" bottom: "inception_4d/double3x3_reduce" top: "inception_4d/double3x3a" convolution_param { num_output: 192 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_4d/double3x3a/bn" type: "BatchNorm" bottom: "inception_4d/double3x3a" top: "inception_4d/double3x3a" batch_norm_param { use_global_stats: true } } layer { name: "inception_4d/double3x3a/bn/scale" type: "Scale" bottom: "inception_4d/double3x3a" top: "inception_4d/double3x3a" scale_param { bias_term: true } } layer { name: "inception_4d/relu_double3x3a" type: "ReLU" bottom: "inception_4d/double3x3a" top: "inception_4d/double3x3a" } layer { name: "inception_4d/double3x3b" type: "Convolution" bottom: "inception_4d/double3x3a" top: "inception_4d/double3x3b" convolution_param { num_output: 192 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_4d/double3x3b/bn" type: "BatchNorm" bottom: "inception_4d/double3x3b" top: "inception_4d/double3x3b" batch_norm_param { use_global_stats: true } } layer { name: "inception_4d/double3x3b/bn/scale" type: "Scale" bottom: "inception_4d/double3x3b" top: "inception_4d/double3x3b" scale_param { bias_term: true } } layer { name: "inception_4d/relu_double3x3b" type: "ReLU" bottom: "inception_4d/double3x3b" top: "inception_4d/double3x3b" } layer { name: "inception_4d/pool" type: "Pooling" bottom: "inception_4c/output" top: "inception_4d/pool" pooling_param { pool: AVE kernel_size: 3 stride: 1 pad: 1 } } layer { name: "inception_4d/pool_proj" type: "Convolution" bottom: "inception_4d/pool" top: "inception_4d/pool_proj" convolution_param { num_output: 128 bias_term: false kernel_size: 1 } } layer { name: "inception_4d/pool_proj/bn" type: "BatchNorm" bottom: "inception_4d/pool_proj" top: "inception_4d/pool_proj" batch_norm_param { use_global_stats: true } } layer { name: "inception_4d/pool_proj/bn/scale" type: "Scale" bottom: "inception_4d/pool_proj" top: "inception_4d/pool_proj" scale_param { bias_term: true } } layer { name: "inception_4d/relu_pool_proj" type: "ReLU" bottom: "inception_4d/pool_proj" top: "inception_4d/pool_proj" } layer { name: "inception_4d/concat" type: "Concat" bottom: "inception_4d/1x1" bottom: "inception_4d/3x3" bottom: "inception_4d/double3x3b" bottom: "inception_4d/pool_proj" top: "inception_4d/concat" } layer { name: "inception_4d_global_pool" type: "Pooling" bottom: "inception_4d/concat" top: "inception_4d_global_pool" pooling_param { pool: AVE engine: CAFFE global_pooling: true } } layer { name: "inception_4d_1x1_down" type: "Convolution" bottom: "inception_4d_global_pool" top: "inception_4d_1x1_down" convolution_param { num_output: 38 kernel_size: 1 stride: 1 } } layer { name: "inception_4d_1x1_down/relu" type: "ReLU" bottom: "inception_4d_1x1_down" top: "inception_4d_1x1_down" } layer { name: "inception_4d_1x1_up" type: "Convolution" bottom: "inception_4d_1x1_down" top: "inception_4d_1x1_up" convolution_param { num_output: 608 kernel_size: 1 stride: 1 } } layer { name: "inception_4d_prob" type: "Sigmoid" bottom: "inception_4d_1x1_up" top: "inception_4d_1x1_up" } layer { name: "inception_4d_prob_reshape" type: "Reshape" bottom: "inception_4d_1x1_up" top: "inception_4d_prob_reshape" reshape_param { shape { dim: 0 dim: 0 } } } layer { name: "inception_4d_scale" type: "Scale" bottom: "inception_4d/concat" bottom: "inception_4d_prob_reshape" top: "inception_4d/output" scale_param { axis: 0 bias_term: false } } layer { name: "inception_4e/3x3_reduce" type: "Convolution" bottom: "inception_4d/output" top: "inception_4e/3x3_reduce" convolution_param { num_output: 128 bias_term: false kernel_size: 1 } } layer { name: "inception_4e/3x3_reduce/bn" type: "BatchNorm" bottom: "inception_4e/3x3_reduce" top: "inception_4e/3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_4e/3x3_reduce/bn/scale" type: "Scale" bottom: "inception_4e/3x3_reduce" top: "inception_4e/3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_4e/relu_3x3_reduce" type: "ReLU" bottom: "inception_4e/3x3_reduce" top: "inception_4e/3x3_reduce" } layer { name: "inception_4e/3x3" type: "Convolution" bottom: "inception_4e/3x3_reduce" top: "inception_4e/3x3" convolution_param { num_output: 192 bias_term: false pad: 1 kernel_size: 3 stride: 2 } } layer { name: "inception_4e/3x3/bn" type: "BatchNorm" bottom: "inception_4e/3x3" top: "inception_4e/3x3" batch_norm_param { use_global_stats: true } } layer { name: "inception_4e/3x3/bn/scale" type: "Scale" bottom: "inception_4e/3x3" top: "inception_4e/3x3" scale_param { bias_term: true } } layer { name: "inception_4e/relu_3x3" type: "ReLU" bottom: "inception_4e/3x3" top: "inception_4e/3x3" } layer { name: "inception_4e/double3x3_reduce" type: "Convolution" bottom: "inception_4d/output" top: "inception_4e/double3x3_reduce" convolution_param { num_output: 192 bias_term: false kernel_size: 1 } } layer { name: "inception_4e/double3x3_reduce/bn" type: "BatchNorm" bottom: "inception_4e/double3x3_reduce" top: "inception_4e/double3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_4e/double3x3_reduce/bn/scale" type: "Scale" bottom: "inception_4e/double3x3_reduce" top: "inception_4e/double3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_4e/relu_double3x3_reduce" type: "ReLU" bottom: "inception_4e/double3x3_reduce" top: "inception_4e/double3x3_reduce" } layer { name: "inception_4e/double3x3a" type: "Convolution" bottom: "inception_4e/double3x3_reduce" top: "inception_4e/double3x3a" convolution_param { num_output: 256 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_4e/double3x3a/bn" type: "BatchNorm" bottom: "inception_4e/double3x3a" top: "inception_4e/double3x3a" batch_norm_param { use_global_stats: true } } layer { name: "inception_4e/double3x3a/bn/scale" type: "Scale" bottom: "inception_4e/double3x3a" top: "inception_4e/double3x3a" scale_param { bias_term: true } } layer { name: "inception_4e/relu_double3x3a" type: "ReLU" bottom: "inception_4e/double3x3a" top: "inception_4e/double3x3a" } layer { name: "inception_4e/double3x3b" type: "Convolution" bottom: "inception_4e/double3x3a" top: "inception_4e/double3x3b" convolution_param { num_output: 256 bias_term: false pad: 1 kernel_size: 3 stride: 2 } } layer { name: "inception_4e/double3x3b/bn" type: "BatchNorm" bottom: "inception_4e/double3x3b" top: "inception_4e/double3x3b" batch_norm_param { use_global_stats: true } } layer { name: "inception_4e/double3x3b/bn/scale" type: "Scale" bottom: "inception_4e/double3x3b" top: "inception_4e/double3x3b" scale_param { bias_term: true } } layer { name: "inception_4e/relu_double3x3b" type: "ReLU" bottom: "inception_4e/double3x3b" top: "inception_4e/double3x3b" } layer { name: "inception_4e/pool/3x3_s2" type: "Pooling" bottom: "inception_4d/output" top: "inception_4e/pool/3x3_s2" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "inception_4e/concat" type: "Concat" bottom: "inception_4e/3x3" bottom: "inception_4e/double3x3b" bottom: "inception_4e/pool/3x3_s2" top: "inception_4e/concat" } layer { name: "inception_4e_global_pool" type: "Pooling" bottom: "inception_4e/concat" top: "inception_4e_global_pool" pooling_param { pool: AVE engine: CAFFE global_pooling: true } } layer { name: "inception_4e_1x1_down" type: "Convolution" bottom: "inception_4e_global_pool" top: "inception_4e_1x1_down" convolution_param { num_output: 66 kernel_size: 1 stride: 1 } } layer { name: "inception_4e_1x1_down/relu" type: "ReLU" bottom: "inception_4e_1x1_down" top: "inception_4e_1x1_down" } layer { name: "inception_4e_1x1_up" type: "Convolution" bottom: "inception_4e_1x1_down" top: "inception_4e_1x1_up" convolution_param { num_output: 1056 kernel_size: 1 stride: 1 } } layer { name: "inception_4e_prob" type: "Sigmoid" bottom: "inception_4e_1x1_up" top: "inception_4e_1x1_up" } layer { name: "inception_4e_prob_reshape" type: "Reshape" bottom: "inception_4e_1x1_up" top: "inception_4e_prob_reshape" reshape_param { shape { dim: 0 dim: 0 } } } layer { name: "inception_4e_scale" type: "Scale" bottom: "inception_4e/concat" bottom: "inception_4e_prob_reshape" top: "inception_4e/output" scale_param { axis: 0 bias_term: false } } layer { name: "inception_5a/1x1" type: "Convolution" bottom: "inception_4e/output" top: "inception_5a/1x1" convolution_param { num_output: 352 bias_term: false kernel_size: 1 } } layer { name: "inception_5a/1x1/bn" type: "BatchNorm" bottom: "inception_5a/1x1" top: "inception_5a/1x1" batch_norm_param { use_global_stats: true } } layer { name: "inception_5a/1x1/bn/scale" type: "Scale" bottom: "inception_5a/1x1" top: "inception_5a/1x1" scale_param { bias_term: true } } layer { name: "inception_5a/relu_1x1" type: "ReLU" bottom: "inception_5a/1x1" top: "inception_5a/1x1" } layer { name: "inception_5a/3x3_reduce" type: "Convolution" bottom: "inception_4e/output" top: "inception_5a/3x3_reduce" convolution_param { num_output: 192 bias_term: false kernel_size: 1 } } layer { name: "inception_5a/3x3_reduce/bn" type: "BatchNorm" bottom: "inception_5a/3x3_reduce" top: "inception_5a/3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_5a/3x3_reduce/bn/scale" type: "Scale" bottom: "inception_5a/3x3_reduce" top: "inception_5a/3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_5a/relu_3x3_reduce" type: "ReLU" bottom: "inception_5a/3x3_reduce" top: "inception_5a/3x3_reduce" } layer { name: "inception_5a/3x3" type: "Convolution" bottom: "inception_5a/3x3_reduce" top: "inception_5a/3x3" convolution_param { num_output: 320 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_5a/3x3/bn" type: "BatchNorm" bottom: "inception_5a/3x3" top: "inception_5a/3x3" batch_norm_param { use_global_stats: true } } layer { name: "inception_5a/3x3/bn/scale" type: "Scale" bottom: "inception_5a/3x3" top: "inception_5a/3x3" scale_param { bias_term: true } } layer { name: "inception_5a/relu_3x3" type: "ReLU" bottom: "inception_5a/3x3" top: "inception_5a/3x3" } layer { name: "inception_5a/double3x3_reduce" type: "Convolution" bottom: "inception_4e/output" top: "inception_5a/double3x3_reduce" convolution_param { num_output: 160 bias_term: false kernel_size: 1 } } layer { name: "inception_5a/double3x3_reduce/bn" type: "BatchNorm" bottom: "inception_5a/double3x3_reduce" top: "inception_5a/double3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_5a/double3x3_reduce/bn/scale" type: "Scale" bottom: "inception_5a/double3x3_reduce" top: "inception_5a/double3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_5a/relu_double3x3_reduce" type: "ReLU" bottom: "inception_5a/double3x3_reduce" top: "inception_5a/double3x3_reduce" } layer { name: "inception_5a/double3x3a" type: "Convolution" bottom: "inception_5a/double3x3_reduce" top: "inception_5a/double3x3a" convolution_param { num_output: 224 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_5a/double3x3a/bn" type: "BatchNorm" bottom: "inception_5a/double3x3a" top: "inception_5a/double3x3a" batch_norm_param { use_global_stats: true } } layer { name: "inception_5a/double3x3a/bn/scale" type: "Scale" bottom: "inception_5a/double3x3a" top: "inception_5a/double3x3a" scale_param { bias_term: true } } layer { name: "inception_5a/relu_double3x3a" type: "ReLU" bottom: "inception_5a/double3x3a" top: "inception_5a/double3x3a" } layer { name: "inception_5a/double3x3b" type: "Convolution" bottom: "inception_5a/double3x3a" top: "inception_5a/double3x3b" convolution_param { num_output: 224 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_5a/double3x3b/bn" type: "BatchNorm" bottom: "inception_5a/double3x3b" top: "inception_5a/double3x3b" batch_norm_param { use_global_stats: true } } layer { name: "inception_5a/double3x3b/bn/scale" type: "Scale" bottom: "inception_5a/double3x3b" top: "inception_5a/double3x3b" scale_param { bias_term: true } } layer { name: "inception_5a/relu_double3x3b" type: "ReLU" bottom: "inception_5a/double3x3b" top: "inception_5a/double3x3b" } layer { name: "inception_5a/pool" type: "Pooling" bottom: "inception_4e/output" top: "inception_5a/pool" pooling_param { pool: AVE kernel_size: 3 stride: 1 pad: 1 } } layer { name: "inception_5a/pool_proj" type: "Convolution" bottom: "inception_5a/pool" top: "inception_5a/pool_proj" convolution_param { num_output: 128 bias_term: false kernel_size: 1 } } layer { name: "inception_5a/pool_proj/bn" type: "BatchNorm" bottom: "inception_5a/pool_proj" top: "inception_5a/pool_proj" batch_norm_param { use_global_stats: true } } layer { name: "inception_5a/pool_proj/bn/scale" type: "Scale" bottom: "inception_5a/pool_proj" top: "inception_5a/pool_proj" scale_param { bias_term: true } } layer { name: "inception_5a/relu_pool_proj" type: "ReLU" bottom: "inception_5a/pool_proj" top: "inception_5a/pool_proj" } layer { name: "inception_5a/concat" type: "Concat" bottom: "inception_5a/1x1" bottom: "inception_5a/3x3" bottom: "inception_5a/double3x3b" bottom: "inception_5a/pool_proj" top: "inception_5a/concat" } layer { name: "inception_5a_global_pool" type: "Pooling" bottom: "inception_5a/concat" top: "inception_5a_global_pool" pooling_param { pool: AVE engine: CAFFE global_pooling: true } } layer { name: "inception_5a_1x1_down" type: "Convolution" bottom: "inception_5a_global_pool" top: "inception_5a_1x1_down" convolution_param { num_output: 64 kernel_size: 1 stride: 1 } } layer { name: "inception_5a_1x1_down/relu" type: "ReLU" bottom: "inception_5a_1x1_down" top: "inception_5a_1x1_down" } layer { name: "inception_5a_1x1_up" type: "Convolution" bottom: "inception_5a_1x1_down" top: "inception_5a_1x1_up" convolution_param { num_output: 1024 kernel_size: 1 stride: 1 } } layer { name: "inception_5a_prob" type: "Sigmoid" bottom: "inception_5a_1x1_up" top: "inception_5a_1x1_up" } layer { name: "inception_5a_prob_reshape" type: "Reshape" bottom: "inception_5a_1x1_up" top: "inception_5a_prob_reshape" reshape_param { shape { dim: 0 dim: 0 } } } layer { name: "inception_5a_scale" type: "Scale" bottom: "inception_5a/concat" bottom: "inception_5a_prob_reshape" top: "inception_5a/output" scale_param { axis: 0 bias_term: false } } layer { name: "inception_5b/1x1" type: "Convolution" bottom: "inception_5a/output" top: "inception_5b/1x1" convolution_param { num_output: 352 bias_term: false kernel_size: 1 } } layer { name: "inception_5b/1x1/bn" type: "BatchNorm" bottom: "inception_5b/1x1" top: "inception_5b/1x1" batch_norm_param { use_global_stats: true } } layer { name: "inception_5b/1x1/bn/scale" type: "Scale" bottom: "inception_5b/1x1" top: "inception_5b/1x1" scale_param { bias_term: true } } layer { name: "inception_5b/relu_1x1" type: "ReLU" bottom: "inception_5b/1x1" top: "inception_5b/1x1" } layer { name: "inception_5b/3x3_reduce" type: "Convolution" bottom: "inception_5a/output" top: "inception_5b/3x3_reduce" convolution_param { num_output: 192 bias_term: false kernel_size: 1 } } layer { name: "inception_5b/3x3_reduce/bn" type: "BatchNorm" bottom: "inception_5b/3x3_reduce" top: "inception_5b/3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_5b/3x3_reduce/bn/scale" type: "Scale" bottom: "inception_5b/3x3_reduce" top: "inception_5b/3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_5b/relu_3x3_reduce" type: "ReLU" bottom: "inception_5b/3x3_reduce" top: "inception_5b/3x3_reduce" } layer { name: "inception_5b/3x3" type: "Convolution" bottom: "inception_5b/3x3_reduce" top: "inception_5b/3x3" convolution_param { num_output: 320 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_5b/3x3/bn" type: "BatchNorm" bottom: "inception_5b/3x3" top: "inception_5b/3x3" batch_norm_param { use_global_stats: true } } layer { name: "inception_5b/3x3/bn/scale" type: "Scale" bottom: "inception_5b/3x3" top: "inception_5b/3x3" scale_param { bias_term: true } } layer { name: "inception_5b/relu_3x3" type: "ReLU" bottom: "inception_5b/3x3" top: "inception_5b/3x3" } layer { name: "inception_5b/double3x3_reduce" type: "Convolution" bottom: "inception_5a/output" top: "inception_5b/double3x3_reduce" convolution_param { num_output: 192 bias_term: false kernel_size: 1 } } layer { name: "inception_5b/double3x3_reduce/bn" type: "BatchNorm" bottom: "inception_5b/double3x3_reduce" top: "inception_5b/double3x3_reduce" batch_norm_param { use_global_stats: true } } layer { name: "inception_5b/double3x3_reduce/bn/scale" type: "Scale" bottom: "inception_5b/double3x3_reduce" top: "inception_5b/double3x3_reduce" scale_param { bias_term: true } } layer { name: "inception_5b/relu_double3x3_reduce" type: "ReLU" bottom: "inception_5b/double3x3_reduce" top: "inception_5b/double3x3_reduce" } layer { name: "inception_5b/double3x3a" type: "Convolution" bottom: "inception_5b/double3x3_reduce" top: "inception_5b/double3x3a" convolution_param { num_output: 224 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_5b/double3x3a/bn" type: "BatchNorm" bottom: "inception_5b/double3x3a" top: "inception_5b/double3x3a" batch_norm_param { use_global_stats: true } } layer { name: "inception_5b/double3x3a/bn/scale" type: "Scale" bottom: "inception_5b/double3x3a" top: "inception_5b/double3x3a" scale_param { bias_term: true } } layer { name: "inception_5b/relu_double3x3a" type: "ReLU" bottom: "inception_5b/double3x3a" top: "inception_5b/double3x3a" } layer { name: "inception_5b/double3x3b" type: "Convolution" bottom: "inception_5b/double3x3a" top: "inception_5b/double3x3b" convolution_param { num_output: 224 bias_term: false pad: 1 kernel_size: 3 } } layer { name: "inception_5b/double3x3b/bn" type: "BatchNorm" bottom: "inception_5b/double3x3b" top: "inception_5b/double3x3b" batch_norm_param { use_global_stats: true } } layer { name: "inception_5b/double3x3b/bn/scale" type: "Scale" bottom: "inception_5b/double3x3b" top: "inception_5b/double3x3b" scale_param { bias_term: true } } layer { name: "inception_5b/relu_double3x3b" type: "ReLU" bottom: "inception_5b/double3x3b" top: "inception_5b/double3x3b" } layer { name: "inception_5b/pool" type: "Pooling" bottom: "inception_5a/output" top: "inception_5b/pool" pooling_param { pool: MAX kernel_size: 3 stride: 1 pad: 1 } } layer { name: "inception_5b/pool_proj" type: "Convolution" bottom: "inception_5b/pool" top: "inception_5b/pool_proj" convolution_param { num_output: 128 bias_term: false kernel_size: 1 } } layer { name: "inception_5b/pool_proj/bn" type: "BatchNorm" bottom: "inception_5b/pool_proj" top: "inception_5b/pool_proj" batch_norm_param { use_global_stats: true } } layer { name: "inception_5b/pool_proj/bn/scale" type: "Scale" bottom: "inception_5b/pool_proj" top: "inception_5b/pool_proj" scale_param { bias_term: true } } layer { name: "inception_5b/relu_pool_proj" type: "ReLU" bottom: "inception_5b/pool_proj" top: "inception_5b/pool_proj" } layer { name: "inception_5b/concat" type: "Concat" bottom: "inception_5b/1x1" bottom: "inception_5b/3x3" bottom: "inception_5b/double3x3b" bottom: "inception_5b/pool_proj" top: "inception_5b/concat" } layer { name: "inception_5b_global_pool" type: "Pooling" bottom: "inception_5b/concat" top: "inception_5b_global_pool" pooling_param { pool: AVE engine: CAFFE global_pooling: true } } layer { name: "inception_5b_1x1_down" type: "Convolution" bottom: "inception_5b_global_pool" top: "inception_5b_1x1_down" convolution_param { num_output: 64 kernel_size: 1 stride: 1 } } layer { name: "inception_5b_1x1_down/relu" type: "ReLU" bottom: "inception_5b_1x1_down" top: "inception_5b_1x1_down" } layer { name: "inception_5b_1x1_up" type: "Convolution" bottom: "inception_5b_1x1_down" top: "inception_5b_1x1_up" convolution_param { num_output: 1024 kernel_size: 1 stride: 1 } } layer { name: "inception_5b_prob" type: "Sigmoid" bottom: "inception_5b_1x1_up" top: "inception_5b_1x1_up" } layer { name: "inception_5b_prob_reshape" type: "Reshape" bottom: "inception_5b_1x1_up" top: "inception_5b_prob_reshape" reshape_param { shape { dim: 0 dim: 0 } } } layer { name: "inception_5b_scale" type: "Scale" bottom: "inception_5b/concat" bottom: "inception_5b_prob_reshape" top: "inception_5b/output" scale_param { axis: 0 bias_term: false } } layer { name: "pool5/7x7_s1" type: "Pooling" bottom: "inception_5b/output" top: "pool5/7x7_s1" pooling_param { pool: AVE kernel_size: 7 stride: 1 } } layer { name: "classifier" type: "InnerProduct" bottom: "pool5/7x7_s1" top: "classifier" inner_product_param { num_output: 1000 } } layer { name: "prob" type: "Softmax" bottom: "classifier" top: "prob" }