A real-time lightweight object detector (RLOD) network
 发布时间 
 阅读量: 
 阅读量 
A real-time lightweight object detector (RLOD) for the mobile embedded platform is proposed for underwater manipulation. Do the following to see the detailed network.
1、Copy the following codes and paste it into http://ethereon.github.io/netscope/#/editor. (Google Chrome should be used.)
2、 Push Shift+Enter to update the visualization.
 name: "MobDenseNet-DSSD"
    
 input: "data"
    
 input_shape {
    
   dim: 1
    
   dim: 3
    
   dim: 416
    
   dim: 416
    
 }
    
 layer {
    
   name: "conv1_0"
    
   type: "Convolution"
    
   bottom: "data"
    
   top: "conv1_0"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     pad: 1
    
     kernel_size: 3
    
     stride: 2
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv1_0/relu"
    
   type: "ReLU"
    
   bottom: "conv1_0"
    
   top: "conv1_0"
    
 }
    
 layer {
    
   name: "conv1_1/expand"
    
   type: "Convolution"
    
   bottom: "conv1_0"
    
   top: "conv1_1/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv1_1/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv1_1/expand"
    
   top: "conv1_1/expand"
    
 }
    
 layer {
    
   name: "conv1_1/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv1_1/expand"
    
   top: "conv1_1/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     pad: 1
    
     kernel_size: 3
    
     group: 32
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv1_1/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv1_1/depthwise"
    
   top: "conv1_1/depthwise"
    
 }
    
 layer {
    
   name: "conv1_1/project"
    
   type: "Convolution"
    
   bottom: "conv1_1/depthwise"
    
   top: "conv1_1/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv1_1/sum"
    
   type: "Eltwise"
    
   bottom: "conv1_0"
    
   bottom: "conv1_1/project"
    
   top: "conv1_1"
    
 }
    
 layer {
    
   name: "pooling2_0"
    
   type: "Pooling"
    
   bottom: "conv1_1"
    
   top: "pooling2_0"
    
   pooling_param {
    
     pool: MAX
    
     kernel_size: 2
    
     stride: 2
    
   }
    
 }
    
 layer {
    
   name: "pooling2_0/scale_relu"
    
   type: "Scale"
    
   bottom: "pooling2_0"
    
   top: "pooling2_0/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling2_0/relu"
    
   type: "ReLU"
    
   bottom: "pooling2_0/relu"
    
   top: "pooling2_0/relu"
    
 }
    
 layer {
    
   name: "conv2_0/expand"
    
   type: "Convolution"
    
   bottom: "pooling2_0/relu"
    
   top: "conv2_0/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv2_0/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv2_0/expand"
    
   top: "conv2_0/expand"
    
 }
    
 layer {
    
   name: "conv2_0/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv2_0/expand"
    
   top: "conv2_0/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv2_0/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv2_0/depthwise"
    
   top: "conv2_0/depthwise"
    
 }
    
 layer {
    
   name: "conv2_0/project"
    
   type: "Convolution"
    
   bottom: "conv2_0/depthwise"
    
   top: "conv2_0/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat2_0"
    
   type: "Concat"
    
   bottom: "conv2_0/project"
    
   bottom: "pooling2_0"
    
   top: "concat2_0"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat2_0/scale_relu"
    
   type: "Scale"
    
   bottom: "concat2_0"
    
   top: "concat2_0/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat2_0/relu"
    
   type: "ReLU"
    
   bottom: "concat2_0/relu"
    
   top: "concat2_0/relu"
    
 }
    
 layer {
    
   name: "conv2_1/expand"
    
   type: "Convolution"
    
   bottom: "concat2_0/relu"
    
   top: "conv2_1/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv2_1/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv2_1/expand"
    
   top: "conv2_1/expand"
    
 }
    
 layer {
    
   name: "conv2_1/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv2_1/expand"
    
   top: "conv2_1/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv2_1/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv2_1/depthwise"
    
   top: "conv2_1/depthwise"
    
 }
    
 layer {
    
   name: "conv2_1/project"
    
   type: "Convolution"
    
   bottom: "conv2_1/depthwise"
    
   top: "conv2_1/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat2_1"
    
   type: "Concat"
    
   bottom: "conv2_1/project"
    
   bottom: "concat2_0"
    
   top: "concat2_1"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat2_1/scale_relu"
    
   type: "Scale"
    
   bottom: "concat2_1"
    
   top: "concat2_1/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat2_1/relu"
    
   type: "ReLU"
    
   bottom: "concat2_1/relu"
    
   top: "concat2_1/relu"
    
 }
    
 layer {
    
   name: "conv2_2/expand"
    
   type: "Convolution"
    
   bottom: "concat2_1/relu"
    
   top: "conv2_2/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv2_2/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv2_2/expand"
    
   top: "conv2_2/expand"
    
 }
    
 layer {
    
   name: "conv2_2/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv2_2/expand"
    
   top: "conv2_2/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv2_2/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv2_2/depthwise"
    
   top: "conv2_2/depthwise"
    
 }
    
 layer {
    
   name: "conv2_2/project"
    
   type: "Convolution"
    
   bottom: "conv2_2/depthwise"
    
   top: "conv2_2/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat2_2"
    
   type: "Concat"
    
   bottom: "conv2_2/project"
    
   bottom: "concat2_1"
    
   top: "concat2_2"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat2_2/scale_relu"
    
   type: "Scale"
    
   bottom: "concat2_2"
    
   top: "concat2_2/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat2_2/relu"
    
   type: "ReLU"
    
   bottom: "concat2_2/relu"
    
   top: "concat2_2/relu"
    
 }
    
 layer {
    
   name: "transition2_0"
    
   type: "Convolution"
    
   bottom: "concat2_2/relu"
    
   top: "transition2_0"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling3_0"
    
   type: "Pooling"
    
   bottom: "transition2_0"
    
   top: "pooling3_0"
    
   pooling_param {
    
     pool: MAX
    
     kernel_size: 2
    
     stride: 2
    
   }
    
 }
    
 layer {
    
   name: "pooling3_0/scale_relu"
    
   type: "Scale"
    
   bottom: "pooling3_0"
    
   top: "pooling3_0/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling3_0/relu"
    
   type: "ReLU"
    
   bottom: "pooling3_0/relu"
    
   top: "pooling3_0/relu"
    
 }
    
 layer {
    
   name: "conv3_0/expand"
    
   type: "Convolution"
    
   bottom: "pooling3_0/relu"
    
   top: "conv3_0/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv3_0/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv3_0/expand"
    
   top: "conv3_0/expand"
    
 }
    
 layer {
    
   name: "conv3_0/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv3_0/expand"
    
   top: "conv3_0/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv3_0/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv3_0/depthwise"
    
   top: "conv3_0/depthwise"
    
 }
    
 layer {
    
   name: "conv3_0/project"
    
   type: "Convolution"
    
   bottom: "conv3_0/depthwise"
    
   top: "conv3_0/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat3_0"
    
   type: "Concat"
    
   bottom: "conv3_0/project"
    
   bottom: "pooling3_0"
    
   top: "concat3_0"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat3_0/scale_relu"
    
   type: "Scale"
    
   bottom: "concat3_0"
    
   top: "concat3_0/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat3_0/relu"
    
   type: "ReLU"
    
   bottom: "concat3_0/relu"
    
   top: "concat3_0/relu"
    
 }
    
 layer {
    
   name: "conv3_1/expand"
    
   type: "Convolution"
    
   bottom: "concat3_0/relu"
    
   top: "conv3_1/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv3_1/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv3_1/expand"
    
   top: "conv3_1/expand"
    
 }
    
 layer {
    
   name: "conv3_1/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv3_1/expand"
    
   top: "conv3_1/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv3_1/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv3_1/depthwise"
    
   top: "conv3_1/depthwise"
    
 }
    
 layer {
    
   name: "conv3_1/project"
    
   type: "Convolution"
    
   bottom: "conv3_1/depthwise"
    
   top: "conv3_1/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat3_1"
    
   type: "Concat"
    
   bottom: "conv3_1/project"
    
   bottom: "concat3_0"
    
   top: "concat3_1"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat3_1/scale_relu"
    
   type: "Scale"
    
   bottom: "concat3_1"
    
   top: "concat3_1/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat3_1/relu"
    
   type: "ReLU"
    
   bottom: "concat3_1/relu"
    
   top: "concat3_1/relu"
    
 }
    
 layer {
    
   name: "conv3_2/expand"
    
   type: "Convolution"
    
   bottom: "concat3_1/relu"
    
   top: "conv3_2/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv3_2/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv3_2/expand"
    
   top: "conv3_2/expand"
    
 }
    
 layer {
    
   name: "conv3_2/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv3_2/expand"
    
   top: "conv3_2/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv3_2/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv3_2/depthwise"
    
   top: "conv3_2/depthwise"
    
 }
    
 layer {
    
   name: "conv3_2/project"
    
   type: "Convolution"
    
   bottom: "conv3_2/depthwise"
    
   top: "conv3_2/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat3_2"
    
   type: "Concat"
    
   bottom: "conv3_2/project"
    
   bottom: "concat3_1"
    
   top: "concat3_2"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat3_2/scale_relu"
    
   type: "Scale"
    
   bottom: "concat3_2"
    
   top: "concat3_2/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat3_2/relu"
    
   type: "ReLU"
    
   bottom: "concat3_2/relu"
    
   top: "concat3_2/relu"
    
 }
    
 layer {
    
   name: "conv3_3/expand"
    
   type: "Convolution"
    
   bottom: "concat3_2/relu"
    
   top: "conv3_3/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv3_3/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv3_3/expand"
    
   top: "conv3_3/expand"
    
 }
    
 layer {
    
   name: "conv3_3/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv3_3/expand"
    
   top: "conv3_3/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv3_3/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv3_3/depthwise"
    
   top: "conv3_3/depthwise"
    
 }
    
 layer {
    
   name: "conv3_3/project"
    
   type: "Convolution"
    
   bottom: "conv3_3/depthwise"
    
   top: "conv3_3/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat3_3"
    
   type: "Concat"
    
   bottom: "conv3_3/project"
    
   bottom: "concat3_2"
    
   top: "concat3_3"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat3_3/scale_relu"
    
   type: "Scale"
    
   bottom: "concat3_3"
    
   top: "concat3_3/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat3_3/relu"
    
   type: "ReLU"
    
   bottom: "concat3_3/relu"
    
   top: "concat3_3/relu"
    
 }
    
 layer {
    
   name: "conv3_4/expand"
    
   type: "Convolution"
    
   bottom: "concat3_3/relu"
    
   top: "conv3_4/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv3_4/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv3_4/expand"
    
   top: "conv3_4/expand"
    
 }
    
 layer {
    
   name: "conv3_4/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv3_4/expand"
    
   top: "conv3_4/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv3_4/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv3_4/depthwise"
    
   top: "conv3_4/depthwise"
    
 }
    
 layer {
    
   name: "conv3_4/project"
    
   type: "Convolution"
    
   bottom: "conv3_4/depthwise"
    
   top: "conv3_4/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat3_4"
    
   type: "Concat"
    
   bottom: "conv3_4/project"
    
   bottom: "concat3_3"
    
   top: "concat3_4"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat3_4/scale_relu"
    
   type: "Scale"
    
   bottom: "concat3_4"
    
   top: "concat3_4/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat3_4/relu"
    
   type: "ReLU"
    
   bottom: "concat3_4/relu"
    
   top: "concat3_4/relu"
    
 }
    
 layer {
    
   name: "conv3_5/expand"
    
   type: "Convolution"
    
   bottom: "concat3_4/relu"
    
   top: "conv3_5/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv3_5/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv3_5/expand"
    
   top: "conv3_5/expand"
    
 }
    
 layer {
    
   name: "conv3_5/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv3_5/expand"
    
   top: "conv3_5/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv3_5/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv3_5/depthwise"
    
   top: "conv3_5/depthwise"
    
 }
    
 layer {
    
   name: "conv3_5/project"
    
   type: "Convolution"
    
   bottom: "conv3_5/depthwise"
    
   top: "conv3_5/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat3_5"
    
   type: "Concat"
    
   bottom: "conv3_5/project"
    
   bottom: "concat3_4"
    
   top: "concat3_5"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat3_5/scale_relu"
    
   type: "Scale"
    
   bottom: "concat3_5"
    
   top: "concat3_5/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat3_5/relu"
    
   type: "ReLU"
    
   bottom: "concat3_5/relu"
    
   top: "concat3_5/relu"
    
 }
    
 layer {
    
   name: "first"
    
   type: "Convolution"
    
   bottom: "concat3_5/relu"
    
   top: "first"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 320
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling4_0"
    
   type: "Pooling"
    
   bottom: "first"
    
   top: "pooling4_0"
    
   pooling_param {
    
     pool: MAX
    
     kernel_size: 2
    
     stride: 2
    
   }
    
 }
    
 layer {
    
   name: "pooling4_0/scale_relu"
    
   type: "Scale"
    
   bottom: "pooling4_0"
    
   top: "pooling4_0/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling4_0/relu"
    
   type: "ReLU"
    
   bottom: "pooling4_0/relu"
    
   top: "pooling4_0/relu"
    
 }
    
 layer {
    
   name: "conv4_0/expand"
    
   type: "Convolution"
    
   bottom: "pooling4_0/relu"
    
   top: "conv4_0/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv4_0/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv4_0/expand"
    
   top: "conv4_0/expand"
    
 }
    
 layer {
    
   name: "conv4_0/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv4_0/expand"
    
   top: "conv4_0/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv4_0/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv4_0/depthwise"
    
   top: "conv4_0/depthwise"
    
 }
    
 layer {
    
   name: "conv4_0/project"
    
   type: "Convolution"
    
   bottom: "conv4_0/depthwise"
    
   top: "conv4_0/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat4_0"
    
   type: "Concat"
    
   bottom: "conv4_0/project"
    
   bottom: "pooling4_0"
    
   top: "concat4_0"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat4_0/scale_relu"
    
   type: "Scale"
    
   bottom: "concat4_0"
    
   top: "concat4_0/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat4_0/relu"
    
   type: "ReLU"
    
   bottom: "concat4_0/relu"
    
   top: "concat4_0/relu"
    
 }
    
 layer {
    
   name: "conv4_1/expand"
    
   type: "Convolution"
    
   bottom: "concat4_0/relu"
    
   top: "conv4_1/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv4_1/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv4_1/expand"
    
   top: "conv4_1/expand"
    
 }
    
 layer {
    
   name: "conv4_1/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv4_1/expand"
    
   top: "conv4_1/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv4_1/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv4_1/depthwise"
    
   top: "conv4_1/depthwise"
    
 }
    
 layer {
    
   name: "conv4_1/project"
    
   type: "Convolution"
    
   bottom: "conv4_1/depthwise"
    
   top: "conv4_1/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat4_1"
    
   type: "Concat"
    
   bottom: "conv4_1/project"
    
   bottom: "concat4_0"
    
   top: "concat4_1"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat4_1/scale_relu"
    
   type: "Scale"
    
   bottom: "concat4_1"
    
   top: "concat4_1/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat4_1/relu"
    
   type: "ReLU"
    
   bottom: "concat4_1/relu"
    
   top: "concat4_1/relu"
    
 }
    
 layer {
    
   name: "conv4_2/expand"
    
   type: "Convolution"
    
   bottom: "concat4_1/relu"
    
   top: "conv4_2/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv4_2/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv4_2/expand"
    
   top: "conv4_2/expand"
    
 }
    
 layer {
    
   name: "conv4_2/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv4_2/expand"
    
   top: "conv4_2/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv4_2/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv4_2/depthwise"
    
   top: "conv4_2/depthwise"
    
 }
    
 layer {
    
   name: "conv4_2/project"
    
   type: "Convolution"
    
   bottom: "conv4_2/depthwise"
    
   top: "conv4_2/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat4_2"
    
   type: "Concat"
    
   bottom: "conv4_2/project"
    
   bottom: "concat4_1"
    
   top: "concat4_2"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat4_2/scale_relu"
    
   type: "Scale"
    
   bottom: "concat4_2"
    
   top: "concat4_2/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat4_2/relu"
    
   type: "ReLU"
    
   bottom: "concat4_2/relu"
    
   top: "concat4_2/relu"
    
 }
    
 layer {
    
   name: "conv4_3/expand"
    
   type: "Convolution"
    
   bottom: "concat4_2/relu"
    
   top: "conv4_3/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv4_3/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv4_3/expand"
    
   top: "conv4_3/expand"
    
 }
    
 layer {
    
   name: "conv4_3/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv4_3/expand"
    
   top: "conv4_3/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv4_3/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv4_3/depthwise"
    
   top: "conv4_3/depthwise"
    
 }
    
 layer {
    
   name: "conv4_3/project"
    
   type: "Convolution"
    
   bottom: "conv4_3/depthwise"
    
   top: "conv4_3/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat4_3"
    
   type: "Concat"
    
   bottom: "conv4_3/project"
    
   bottom: "concat4_2"
    
   top: "concat4_3"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat4_3/scale_relu"
    
   type: "Scale"
    
   bottom: "concat4_3"
    
   top: "concat4_3/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat4_3/relu"
    
   type: "ReLU"
    
   bottom: "concat4_3/relu"
    
   top: "concat4_3/relu"
    
 }
    
 layer {
    
   name: "conv4_4/expand"
    
   type: "Convolution"
    
   bottom: "concat4_3/relu"
    
   top: "conv4_4/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv4_4/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv4_4/expand"
    
   top: "conv4_4/expand"
    
 }
    
 layer {
    
   name: "conv4_4/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv4_4/expand"
    
   top: "conv4_4/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv4_4/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv4_4/depthwise"
    
   top: "conv4_4/depthwise"
    
 }
    
 layer {
    
   name: "conv4_4/project"
    
   type: "Convolution"
    
   bottom: "conv4_4/depthwise"
    
   top: "conv4_4/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat4_4"
    
   type: "Concat"
    
   bottom: "conv4_4/project"
    
   bottom: "concat4_3"
    
   top: "concat4_4"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat4_4/scale_relu"
    
   type: "Scale"
    
   bottom: "concat4_4"
    
   top: "concat4_4/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat4_4/relu"
    
   type: "ReLU"
    
   bottom: "concat4_4/relu"
    
   top: "concat4_4/relu"
    
 }
    
 layer {
    
   name: "conv4_5/expand"
    
   type: "Convolution"
    
   bottom: "concat4_4/relu"
    
   top: "conv4_5/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv4_5/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv4_5/expand"
    
   top: "conv4_5/expand"
    
 }
    
 layer {
    
   name: "conv4_5/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv4_5/expand"
    
   top: "conv4_5/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv4_5/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv4_5/depthwise"
    
   top: "conv4_5/depthwise"
    
 }
    
 layer {
    
   name: "conv4_5/project"
    
   type: "Convolution"
    
   bottom: "conv4_5/depthwise"
    
   top: "conv4_5/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat4_5"
    
   type: "Concat"
    
   bottom: "conv4_5/project"
    
   bottom: "concat4_4"
    
   top: "concat4_5"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat4_5/scale_relu"
    
   type: "Scale"
    
   bottom: "concat4_5"
    
   top: "concat4_5/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat4_5/relu"
    
   type: "ReLU"
    
   bottom: "concat4_5/relu"
    
   top: "concat4_5/relu"
    
 }
    
 layer {
    
   name: "transition4_0"
    
   type: "Convolution"
    
   bottom: "concat4_5/relu"
    
   top: "transition4_0"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 256
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling4_1"
    
   type: "Pooling"
    
   bottom: "first"
    
   top: "pooling4_1"
    
   pooling_param {
    
     pool: MAX
    
     kernel_size: 2
    
     stride: 2
    
   }
    
 }
    
 layer {
    
   name: "pooling4_1/scale_relu"
    
   type: "Scale"
    
   bottom: "pooling4_1"
    
   top: "pooling4_1/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling4_1/relu"
    
   type: "ReLU"
    
   bottom: "pooling4_1/relu"
    
   top: "pooling4_1/relu"
    
 }
    
 layer {
    
   name: "transition4_1"
    
   type: "Convolution"
    
   bottom: "pooling4_1/relu"
    
   top: "transition4_1"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 256
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "second"
    
   type: "Concat"
    
   bottom: "transition4_1"
    
   bottom: "transition4_0"
    
   top: "second"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "second/scale_relu"
    
   type: "Scale"
    
   bottom: "second"
    
   top: "second/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "second/relu"
    
   type: "ReLU"
    
   bottom: "second/relu"
    
   top: "second/relu"
    
 }
    
 layer {
    
   name: "pooling5_0"
    
   type: "Pooling"
    
   bottom: "second/relu"
    
   top: "pooling5_0"
    
   pooling_param {
    
     pool: MAX
    
     kernel_size: 2
    
     stride: 2
    
   }
    
 }
    
 layer {
    
   name: "pooling5_0/scale_relu"
    
   type: "Scale"
    
   bottom: "pooling5_0"
    
   top: "pooling5_0/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling5_0/relu"
    
   type: "ReLU"
    
   bottom: "pooling5_0/relu"
    
   top: "pooling5_0/relu"
    
 }
    
 layer {
    
   name: "conv5_0/expand"
    
   type: "Convolution"
    
   bottom: "pooling5_0/relu"
    
   top: "conv5_0/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv5_0/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv5_0/expand"
    
   top: "conv5_0/expand"
    
 }
    
 layer {
    
   name: "conv5_0/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv5_0/expand"
    
   top: "conv5_0/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv5_0/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv5_0/depthwise"
    
   top: "conv5_0/depthwise"
    
 }
    
 layer {
    
   name: "conv5_0/project"
    
   type: "Convolution"
    
   bottom: "conv5_0/depthwise"
    
   top: "conv5_0/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat5_0"
    
   type: "Concat"
    
   bottom: "conv5_0/project"
    
   bottom: "pooling5_0"
    
   top: "concat5_0"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat5_0/scale_relu"
    
   type: "Scale"
    
   bottom: "concat5_0"
    
   top: "concat5_0/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat5_0/relu"
    
   type: "ReLU"
    
   bottom: "concat5_0/relu"
    
   top: "concat5_0/relu"
    
 }
    
 layer {
    
   name: "conv5_1/expand"
    
   type: "Convolution"
    
   bottom: "concat5_0/relu"
    
   top: "conv5_1/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv5_1/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv5_1/expand"
    
   top: "conv5_1/expand"
    
 }
    
 layer {
    
   name: "conv5_1/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv5_1/expand"
    
   top: "conv5_1/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv5_1/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv5_1/depthwise"
    
   top: "conv5_1/depthwise"
    
 }
    
 layer {
    
   name: "conv5_1/project"
    
   type: "Convolution"
    
   bottom: "conv5_1/depthwise"
    
   top: "conv5_1/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat5_1"
    
   type: "Concat"
    
   bottom: "conv5_1/project"
    
   bottom: "concat5_0"
    
   top: "concat5_1"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat5_1/scale_relu"
    
   type: "Scale"
    
   bottom: "concat5_1"
    
   top: "concat5_1/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat5_1/relu"
    
   type: "ReLU"
    
   bottom: "concat5_1/relu"
    
   top: "concat5_1/relu"
    
 }
    
 layer {
    
   name: "conv5_2/expand"
    
   type: "Convolution"
    
   bottom: "concat5_1/relu"
    
   top: "conv5_2/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv5_2/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv5_2/expand"
    
   top: "conv5_2/expand"
    
 }
    
 layer {
    
   name: "conv5_2/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv5_2/expand"
    
   top: "conv5_2/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv5_2/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv5_2/depthwise"
    
   top: "conv5_2/depthwise"
    
 }
    
 layer {
    
   name: "conv5_2/project"
    
   type: "Convolution"
    
   bottom: "conv5_2/depthwise"
    
   top: "conv5_2/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat5_2"
    
   type: "Concat"
    
   bottom: "conv5_2/project"
    
   bottom: "concat5_1"
    
   top: "concat5_2"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat5_2/scale_relu"
    
   type: "Scale"
    
   bottom: "concat5_2"
    
   top: "concat5_2/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat5_2/relu"
    
   type: "ReLU"
    
   bottom: "concat5_2/relu"
    
   top: "concat5_2/relu"
    
 }
    
 layer {
    
   name: "conv5_3/expand"
    
   type: "Convolution"
    
   bottom: "concat5_2/relu"
    
   top: "conv5_3/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv5_3/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv5_3/expand"
    
   top: "conv5_3/expand"
    
 }
    
 layer {
    
   name: "conv5_3/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv5_3/expand"
    
   top: "conv5_3/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv5_3/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv5_3/depthwise"
    
   top: "conv5_3/depthwise"
    
 }
    
 layer {
    
   name: "conv5_3/project"
    
   type: "Convolution"
    
   bottom: "conv5_3/depthwise"
    
   top: "conv5_3/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat5_3"
    
   type: "Concat"
    
   bottom: "conv5_3/project"
    
   bottom: "concat5_2"
    
   top: "concat5_3"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat5_3/scale_relu"
    
   type: "Scale"
    
   bottom: "concat5_3"
    
   top: "concat5_3/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat5_3/relu"
    
   type: "ReLU"
    
   bottom: "concat5_3/relu"
    
   top: "concat5_3/relu"
    
 }
    
 layer {
    
   name: "conv5_4/expand"
    
   type: "Convolution"
    
   bottom: "concat5_3/relu"
    
   top: "conv5_4/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv5_4/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv5_4/expand"
    
   top: "conv5_4/expand"
    
 }
    
 layer {
    
   name: "conv5_4/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv5_4/expand"
    
   top: "conv5_4/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv5_4/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv5_4/depthwise"
    
   top: "conv5_4/depthwise"
    
 }
    
 layer {
    
   name: "conv5_4/project"
    
   type: "Convolution"
    
   bottom: "conv5_4/depthwise"
    
   top: "conv5_4/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat5_4"
    
   type: "Concat"
    
   bottom: "conv5_4/project"
    
   bottom: "concat5_3"
    
   top: "concat5_4"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat5_4/scale_relu"
    
   type: "Scale"
    
   bottom: "concat5_4"
    
   top: "concat5_4/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat5_4/relu"
    
   type: "ReLU"
    
   bottom: "concat5_4/relu"
    
   top: "concat5_4/relu"
    
 }
    
 layer {
    
   name: "conv5_5/expand"
    
   type: "Convolution"
    
   bottom: "concat5_4/relu"
    
   top: "conv5_5/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv5_5/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv5_5/expand"
    
   top: "conv5_5/expand"
    
 }
    
 layer {
    
   name: "conv5_5/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv5_5/expand"
    
   top: "conv5_5/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv5_5/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv5_5/depthwise"
    
   top: "conv5_5/depthwise"
    
 }
    
 layer {
    
   name: "conv5_5/project"
    
   type: "Convolution"
    
   bottom: "conv5_5/depthwise"
    
   top: "conv5_5/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 32
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat5_5"
    
   type: "Concat"
    
   bottom: "conv5_5/project"
    
   bottom: "concat5_4"
    
   top: "concat5_5"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "concat5_5/scale_relu"
    
   type: "Scale"
    
   bottom: "concat5_5"
    
   top: "concat5_5/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "concat5_5/relu"
    
   type: "ReLU"
    
   bottom: "concat5_5/relu"
    
   top: "concat5_5/relu"
    
 }
    
 layer {
    
   name: "transition5_0"
    
   type: "Convolution"
    
   bottom: "concat5_5/relu"
    
   top: "transition5_0"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 256
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling5_1"
    
   type: "Pooling"
    
   bottom: "second"
    
   top: "pooling5_1"
    
   pooling_param {
    
     pool: MAX
    
     kernel_size: 2
    
     stride: 2
    
   }
    
 }
    
 layer {
    
   name: "pooling5_1/scale_relu"
    
   type: "Scale"
    
   bottom: "pooling5_1"
    
   top: "pooling5_1/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling5_1/relu"
    
   type: "ReLU"
    
   bottom: "pooling5_1/relu"
    
   top: "pooling5_1/relu"
    
 }
    
 layer {
    
   name: "transition5_1"
    
   type: "Convolution"
    
   bottom: "pooling5_1/relu"
    
   top: "transition5_1"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 256
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "third"
    
   type: "Concat"
    
   bottom: "transition5_1"
    
   bottom: "transition5_0"
    
   top: "third"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "third/scale_relu"
    
   type: "Scale"
    
   bottom: "third"
    
   top: "third/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "third/relu"
    
   type: "ReLU"
    
   bottom: "third/relu"
    
   top: "third/relu"
    
 }
    
 layer {
    
   name: "conv6/expand"
    
   type: "Convolution"
    
   bottom: "third/relu"
    
   top: "conv6/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv6/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv6/expand"
    
   top: "conv6/expand"
    
 }
    
 layer {
    
   name: "conv6/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv6/expand"
    
   top: "conv6/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     stride: 2
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv6/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv6/depthwise"
    
   top: "conv6/depthwise"
    
 }
    
 layer {
    
   name: "conv6/project"
    
   type: "Convolution"
    
   bottom: "conv6/depthwise"
    
   top: "conv6/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling6_0"
    
   type: "Pooling"
    
   bottom: "third"
    
   top: "pooling6_0"
    
   pooling_param {
    
     pool: MAX
    
     kernel_size: 2
    
     stride: 2
    
   }
    
 }
    
 layer {
    
   name: "pooling6_0/scale_relu"
    
   type: "Scale"
    
   bottom: "pooling6_0"
    
   top: "pooling6_0/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling6_0/relu"
    
   type: "ReLU"
    
   bottom: "pooling6_0/relu"
    
   top: "pooling6_0/relu"
    
 }
    
 layer {
    
   name: "transition6_0"
    
   type: "Convolution"
    
   bottom: "pooling6_0/relu"
    
   top: "transition6_0"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "fourth"
    
   type: "Concat"
    
   bottom: "transition6_0"
    
   bottom: "conv6/project"
    
   top: "fourth"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "fourth/scale_relu"
    
   type: "Scale"
    
   bottom: "fourth"
    
   top: "fourth/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "fourth/relu"
    
   type: "ReLU"
    
   bottom: "fourth/relu"
    
   top: "fourth/relu"
    
 }
    
 layer {
    
   name: "conv7/expand"
    
   type: "Convolution"
    
   bottom: "fourth/relu"
    
   top: "conv7/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv7/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv7/expand"
    
   top: "conv7/expand"
    
 }
    
 layer {
    
   name: "conv7/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv7/expand"
    
   top: "conv7/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     stride: 2
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv7/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv7/depthwise"
    
   top: "conv7/depthwise"
    
 }
    
 layer {
    
   name: "conv7/project"
    
   type: "Convolution"
    
   bottom: "conv7/depthwise"
    
   top: "conv7/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling7_0"
    
   type: "Pooling"
    
   bottom: "fourth"
    
   top: "pooling7_0"
    
   pooling_param {
    
     pool: MAX
    
     kernel_size: 2
    
     stride: 2
    
   }
    
 }
    
 layer {
    
   name: "pooling7_0/scale_relu"
    
   type: "Scale"
    
   bottom: "pooling7_0"
    
   top: "pooling7_0/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling7_0/relu"
    
   type: "ReLU"
    
   bottom: "pooling7_0/relu"
    
   top: "pooling7_0/relu"
    
 }
    
 layer {
    
   name: "transition7_0"
    
   type: "Convolution"
    
   bottom: "pooling7_0/relu"
    
   top: "transition7_0"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "fifth"
    
   type: "Concat"
    
   bottom: "transition7_0"
    
   bottom: "conv7/project"
    
   top: "fifth"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "fifth/scale_relu"
    
   type: "Scale"
    
   bottom: "fifth"
    
   top: "fifth/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "fifth/relu"
    
   type: "ReLU"
    
   bottom: "fifth/relu"
    
   top: "fifth/relu"
    
 }
    
 layer {
    
   name: "conv8/expand"
    
   type: "Convolution"
    
   bottom: "fifth/relu"
    
   top: "conv8/expand"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv8/expand/relu"
    
   type: "ReLU"
    
   bottom: "conv8/expand"
    
   top: "conv8/expand"
    
 }
    
 layer {
    
   name: "conv8/depthwise"
    
   type: "DepthwiseConvolution"
    
   bottom: "conv8/expand"
    
   top: "conv8/depthwise"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     pad: 1
    
     kernel_size: 3
    
     group: 128
    
     stride: 2
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "conv8/depthwise/relu"
    
   type: "ReLU"
    
   bottom: "conv8/depthwise"
    
   top: "conv8/depthwise"
    
 }
    
 layer {
    
   name: "conv8/project"
    
   type: "Convolution"
    
   bottom: "conv8/depthwise"
    
   top: "conv8/project"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling8_0"
    
   type: "Pooling"
    
   bottom: "fifth"
    
   top: "pooling8_0"
    
   pooling_param {
    
     pool: MAX
    
     kernel_size: 2
    
     stride: 2
    
   }
    
 }
    
 layer {
    
   name: "pooling8_0/scale_relu"
    
   type: "Scale"
    
   bottom: "pooling8_0"
    
   top: "pooling8_0/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "pooling8_0/relu"
    
   type: "ReLU"
    
   bottom: "pooling8_0/relu"
    
   top: "pooling8_0/relu"
    
 }
    
 layer {
    
   name: "transition8_0"
    
   type: "Convolution"
    
   bottom: "pooling8_0/relu"
    
   top: "transition8_0"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "sixth"
    
   type: "Concat"
    
   bottom: "transition8_0"
    
   bottom: "conv8/project"
    
   top: "sixth"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "sixth/scale_relu"
    
   type: "Scale"
    
   bottom: "sixth"
    
   top: "sixth/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "sixth/relu"
    
   type: "ReLU"
    
   bottom: "sixth/relu"
    
   top: "sixth/relu"
    
 }
    
 layer {
    
   name: "upsampling1"
    
   type: "Deconvolution"
    
   bottom: "sixth/relu"
    
   top: "upsampling1"
    
   param {
    
     lr_mult: 0.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 256
    
     bias_term: false
    
     pad: 0
    
     kernel_size: 2
    
     group: 256
    
     stride: 2
    
     weight_filler {
    
       type: "bilinear"
    
     }
    
     dilation: 1
    
   }
    
 }
    
 layer {
    
   name: "upsampling1/scale_relu"
    
   type: "Scale"
    
   bottom: "upsampling1"
    
   top: "upsampling1/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "upsampling1/relu"
    
   type: "ReLU"
    
   bottom: "upsampling1/relu"
    
   top: "upsampling1/relu"
    
 }
    
 layer {
    
   name: "transition9_0"
    
   type: "Convolution"
    
   bottom: "upsampling1/relu"
    
   top: "transition9_0"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "transition9_1"
    
   type: "Convolution"
    
   bottom: "fifth"
    
   top: "transition9_1"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "comb_fifth"
    
   type: "Concat"
    
   bottom: "transition9_1"
    
   bottom: "transition9_0"
    
   top: "comb_fifth"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "comb_fifth/scale_relu"
    
   type: "Scale"
    
   bottom: "comb_fifth"
    
   top: "comb_fifth/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "comb_fifth/relu"
    
   type: "ReLU"
    
   bottom: "comb_fifth/relu"
    
   top: "comb_fifth/relu"
    
 }
    
 layer {
    
   name: "upsampling2"
    
   type: "Deconvolution"
    
   bottom: "comb_fifth/relu"
    
   top: "upsampling2"
    
   param {
    
     lr_mult: 0.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 256
    
     bias_term: false
    
     pad: 1
    
     kernel_size: 3
    
     group: 256
    
     stride: 2
    
     weight_filler {
    
       type: "bilinear"
    
     }
    
     dilation: 1
    
   }
    
 }
    
 layer {
    
   name: "upsampling2/scale_relu"
    
   type: "Scale"
    
   bottom: "upsampling2"
    
   top: "upsampling2/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "upsampling2/relu"
    
   type: "ReLU"
    
   bottom: "upsampling2/relu"
    
   top: "upsampling2/relu"
    
 }
    
 layer {
    
   name: "transition10_0"
    
   type: "Convolution"
    
   bottom: "upsampling2/relu"
    
   top: "transition10_0"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "transition10_1"
    
   type: "Convolution"
    
   bottom: "fourth"
    
   top: "transition10_1"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 128
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "comb_fourth"
    
   type: "Concat"
    
   bottom: "transition10_1"
    
   bottom: "transition10_0"
    
   top: "comb_fourth"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "comb_fourth/scale_relu"
    
   type: "Scale"
    
   bottom: "comb_fourth"
    
   top: "comb_fourth/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "comb_fourth/relu"
    
   type: "ReLU"
    
   bottom: "comb_fourth/relu"
    
   top: "comb_fourth/relu"
    
 }
    
 layer {
    
   name: "upsampling3"
    
   type: "Deconvolution"
    
   bottom: "comb_fourth/relu"
    
   top: "upsampling3"
    
   param {
    
     lr_mult: 0.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 256
    
     bias_term: false
    
     pad: 1
    
     kernel_size: 3
    
     group: 256
    
     stride: 2
    
     weight_filler {
    
       type: "bilinear"
    
     }
    
     dilation: 1
    
   }
    
 }
    
 layer {
    
   name: "upsampling3/scale_relu"
    
   type: "Scale"
    
   bottom: "upsampling3"
    
   top: "upsampling3/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "upsampling3/relu"
    
   type: "ReLU"
    
   bottom: "upsampling3/relu"
    
   top: "upsampling3/relu"
    
 }
    
 layer {
    
   name: "transition11_0"
    
   type: "Convolution"
    
   bottom: "upsampling3/relu"
    
   top: "transition11_0"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 256
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "transition11_1"
    
   type: "Convolution"
    
   bottom: "third"
    
   top: "transition11_1"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 256
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "comb_third"
    
   type: "Concat"
    
   bottom: "transition11_1"
    
   bottom: "transition11_0"
    
   top: "comb_third"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "comb_third/scale_relu"
    
   type: "Scale"
    
   bottom: "comb_third"
    
   top: "comb_third/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "comb_third/relu"
    
   type: "ReLU"
    
   bottom: "comb_third/relu"
    
   top: "comb_third/relu"
    
 }
    
 layer {
    
   name: "upsampling4"
    
   type: "Deconvolution"
    
   bottom: "comb_third/relu"
    
   top: "upsampling4"
    
   param {
    
     lr_mult: 0.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 512
    
     bias_term: false
    
     pad: 0
    
     kernel_size: 2
    
     group: 512
    
     stride: 2
    
     weight_filler {
    
       type: "bilinear"
    
     }
    
     dilation: 1
    
   }
    
 }
    
 layer {
    
   name: "upsampling4/scale_relu"
    
   type: "Scale"
    
   bottom: "upsampling4"
    
   top: "upsampling4/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "upsampling4/relu"
    
   type: "ReLU"
    
   bottom: "upsampling4/relu"
    
   top: "upsampling4/relu"
    
 }
    
 layer {
    
   name: "transition12_0"
    
   type: "Convolution"
    
   bottom: "upsampling4/relu"
    
   top: "transition12_0"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 256
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "transition12_1"
    
   type: "Convolution"
    
   bottom: "second"
    
   top: "transition12_1"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 256
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "comb_second"
    
   type: "Concat"
    
   bottom: "transition12_1"
    
   bottom: "transition12_0"
    
   top: "comb_second"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "comb_second/scale_relu"
    
   type: "Scale"
    
   bottom: "comb_second"
    
   top: "comb_second/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "comb_second/relu"
    
   type: "ReLU"
    
   bottom: "comb_second/relu"
    
   top: "comb_second/relu"
    
 }
    
 layer {
    
   name: "upsampling5"
    
   type: "Deconvolution"
    
   bottom: "comb_second/relu"
    
   top: "upsampling5"
    
   param {
    
     lr_mult: 0.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 512
    
     bias_term: false
    
     pad: 0
    
     kernel_size: 2
    
     group: 512
    
     stride: 2
    
     weight_filler {
    
       type: "bilinear"
    
     }
    
     dilation: 1
    
   }
    
 }
    
 layer {
    
   name: "upsampling5/scale_relu"
    
   type: "Scale"
    
   bottom: "upsampling5"
    
   top: "upsampling5/relu"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   scale_param {
    
     filler {
    
       value: 1.0
    
     }
    
     bias_term: true
    
     bias_filler {
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "upsampling5/relu"
    
   type: "ReLU"
    
   bottom: "upsampling5/relu"
    
   top: "upsampling5/relu"
    
 }
    
 layer {
    
   name: "transition13_0"
    
   type: "Convolution"
    
   bottom: "upsampling5/relu"
    
   top: "transition13_0"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 256
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "transition13_1"
    
   type: "Convolution"
    
   bottom: "first"
    
   top: "transition13_1"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 256
    
     kernel_size: 1
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "comb_first"
    
   type: "Concat"
    
   bottom: "transition13_1"
    
   bottom: "transition13_0"
    
   top: "comb_first"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "first_norm"
    
   type: "Normalize"
    
   bottom: "comb_first"
    
   top: "first_norm"
    
   norm_param {
    
     across_spatial: false
    
     scale_filler {
    
       type: "constant"
    
       value: 20.0
    
     }
    
     channel_shared: false
    
   }
    
 }
    
 layer {
    
   name: "second_norm"
    
   type: "Normalize"
    
   bottom: "comb_second"
    
   top: "second_norm"
    
   norm_param {
    
     across_spatial: false
    
     scale_filler {
    
       type: "constant"
    
       value: 20.0
    
     }
    
     channel_shared: false
    
   }
    
 }
    
 layer {
    
   name: "third_norm"
    
   type: "Normalize"
    
   bottom: "comb_third"
    
   top: "third_norm"
    
   norm_param {
    
     across_spatial: false
    
     scale_filler {
    
       type: "constant"
    
       value: 20.0
    
     }
    
     channel_shared: false
    
   }
    
 }
    
 layer {
    
   name: "fourth_norm"
    
   type: "Normalize"
    
   bottom: "comb_fourth"
    
   top: "fourth_norm"
    
   norm_param {
    
     across_spatial: false
    
     scale_filler {
    
       type: "constant"
    
       value: 20.0
    
     }
    
     channel_shared: false
    
   }
    
 }
    
 layer {
    
   name: "fifth_norm"
    
   type: "Normalize"
    
   bottom: "comb_fifth"
    
   top: "fifth_norm"
    
   norm_param {
    
     across_spatial: false
    
     scale_filler {
    
       type: "constant"
    
       value: 20.0
    
     }
    
     channel_shared: false
    
   }
    
 }
    
 layer {
    
   name: "sixth_norm"
    
   type: "Normalize"
    
   bottom: "sixth"
    
   top: "sixth_norm"
    
   norm_param {
    
     across_spatial: false
    
     scale_filler {
    
       type: "constant"
    
       value: 20.0
    
     }
    
     channel_shared: false
    
   }
    
 }
    
 layer {
    
   name: "first_norm_mbox_loc"
    
   type: "Convolution"
    
   bottom: "first_norm"
    
   top: "first_norm_mbox_loc"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 16
    
     pad: 1
    
     kernel_size: 3
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "first_norm_mbox_loc_perm"
    
   type: "Permute"
    
   bottom: "first_norm_mbox_loc"
    
   top: "first_norm_mbox_loc_perm"
    
   permute_param {
    
     order: 0
    
     order: 2
    
     order: 3
    
     order: 1
    
   }
    
 }
    
 layer {
    
   name: "first_norm_mbox_loc_flat"
    
   type: "Flatten"
    
   bottom: "first_norm_mbox_loc_perm"
    
   top: "first_norm_mbox_loc_flat"
    
   flatten_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "first_norm_mbox_conf"
    
   type: "Convolution"
    
   bottom: "first_norm"
    
   top: "first_norm_mbox_conf"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 20
    
     pad: 1
    
     kernel_size: 3
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "first_norm_mbox_conf_perm"
    
   type: "Permute"
    
   bottom: "first_norm_mbox_conf"
    
   top: "first_norm_mbox_conf_perm"
    
   permute_param {
    
     order: 0
    
     order: 2
    
     order: 3
    
     order: 1
    
   }
    
 }
    
 layer {
    
   name: "first_norm_mbox_conf_flat"
    
   type: "Flatten"
    
   bottom: "first_norm_mbox_conf_perm"
    
   top: "first_norm_mbox_conf_flat"
    
   flatten_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "first_norm_mbox_priorbox"
    
   type: "PriorBox"
    
   bottom: "first_norm"
    
   bottom: "data"
    
   top: "first_norm_mbox_priorbox"
    
   prior_box_param {
    
     min_size: 41.6
    
     max_size: 61.1
    
     aspect_ratio: 2.0
    
     flip: true
    
     clip: false
    
     variance: 0.1
    
     variance: 0.1
    
     variance: 0.2
    
     variance: 0.2
    
     offset: 0.5
    
   }
    
 }
    
 layer {
    
   name: "second_norm_mbox_loc"
    
   type: "Convolution"
    
   bottom: "second_norm"
    
   top: "second_norm_mbox_loc"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 24
    
     pad: 1
    
     kernel_size: 3
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "second_norm_mbox_loc_perm"
    
   type: "Permute"
    
   bottom: "second_norm_mbox_loc"
    
   top: "second_norm_mbox_loc_perm"
    
   permute_param {
    
     order: 0
    
     order: 2
    
     order: 3
    
     order: 1
    
   }
    
 }
    
 layer {
    
   name: "second_norm_mbox_loc_flat"
    
   type: "Flatten"
    
   bottom: "second_norm_mbox_loc_perm"
    
   top: "second_norm_mbox_loc_flat"
    
   flatten_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "second_norm_mbox_conf"
    
   type: "Convolution"
    
   bottom: "second_norm"
    
   top: "second_norm_mbox_conf"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 30
    
     pad: 1
    
     kernel_size: 3
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "second_norm_mbox_conf_perm"
    
   type: "Permute"
    
   bottom: "second_norm_mbox_conf"
    
   top: "second_norm_mbox_conf_perm"
    
   permute_param {
    
     order: 0
    
     order: 2
    
     order: 3
    
     order: 1
    
   }
    
 }
    
 layer {
    
   name: "second_norm_mbox_conf_flat"
    
   type: "Flatten"
    
   bottom: "second_norm_mbox_conf_perm"
    
   top: "second_norm_mbox_conf_flat"
    
   flatten_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "second_norm_mbox_priorbox"
    
   type: "PriorBox"
    
   bottom: "second_norm"
    
   bottom: "data"
    
   top: "second_norm_mbox_priorbox"
    
   prior_box_param {
    
     min_size: 61.1
    
     max_size: 89.6
    
     aspect_ratio: 2.0
    
     aspect_ratio: 3.0
    
     flip: true
    
     clip: false
    
     variance: 0.1
    
     variance: 0.1
    
     variance: 0.2
    
     variance: 0.2
    
     offset: 0.5
    
   }
    
 }
    
 layer {
    
   name: "third_norm_mbox_loc"
    
   type: "Convolution"
    
   bottom: "third_norm"
    
   top: "third_norm_mbox_loc"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 24
    
     pad: 1
    
     kernel_size: 3
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "third_norm_mbox_loc_perm"
    
   type: "Permute"
    
   bottom: "third_norm_mbox_loc"
    
   top: "third_norm_mbox_loc_perm"
    
   permute_param {
    
     order: 0
    
     order: 2
    
     order: 3
    
     order: 1
    
   }
    
 }
    
 layer {
    
   name: "third_norm_mbox_loc_flat"
    
   type: "Flatten"
    
   bottom: "third_norm_mbox_loc_perm"
    
   top: "third_norm_mbox_loc_flat"
    
   flatten_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "third_norm_mbox_conf"
    
   type: "Convolution"
    
   bottom: "third_norm"
    
   top: "third_norm_mbox_conf"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 30
    
     pad: 1
    
     kernel_size: 3
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "third_norm_mbox_conf_perm"
    
   type: "Permute"
    
   bottom: "third_norm_mbox_conf"
    
   top: "third_norm_mbox_conf_perm"
    
   permute_param {
    
     order: 0
    
     order: 2
    
     order: 3
    
     order: 1
    
   }
    
 }
    
 layer {
    
   name: "third_norm_mbox_conf_flat"
    
   type: "Flatten"
    
   bottom: "third_norm_mbox_conf_perm"
    
   top: "third_norm_mbox_conf_flat"
    
   flatten_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "third_norm_mbox_priorbox"
    
   type: "PriorBox"
    
   bottom: "third_norm"
    
   bottom: "data"
    
   top: "third_norm_mbox_priorbox"
    
   prior_box_param {
    
     min_size: 89.6
    
     max_size: 131.6
    
     aspect_ratio: 2.0
    
     aspect_ratio: 3.0
    
     flip: true
    
     clip: false
    
     variance: 0.1
    
     variance: 0.1
    
     variance: 0.2
    
     variance: 0.2
    
     offset: 0.5
    
   }
    
 }
    
 layer {
    
   name: "fourth_norm_mbox_loc"
    
   type: "Convolution"
    
   bottom: "fourth_norm"
    
   top: "fourth_norm_mbox_loc"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 24
    
     pad: 1
    
     kernel_size: 3
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "fourth_norm_mbox_loc_perm"
    
   type: "Permute"
    
   bottom: "fourth_norm_mbox_loc"
    
   top: "fourth_norm_mbox_loc_perm"
    
   permute_param {
    
     order: 0
    
     order: 2
    
     order: 3
    
     order: 1
    
   }
    
 }
    
 layer {
    
   name: "fourth_norm_mbox_loc_flat"
    
   type: "Flatten"
    
   bottom: "fourth_norm_mbox_loc_perm"
    
   top: "fourth_norm_mbox_loc_flat"
    
   flatten_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "fourth_norm_mbox_conf"
    
   type: "Convolution"
    
   bottom: "fourth_norm"
    
   top: "fourth_norm_mbox_conf"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 30
    
     pad: 1
    
     kernel_size: 3
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "fourth_norm_mbox_conf_perm"
    
   type: "Permute"
    
   bottom: "fourth_norm_mbox_conf"
    
   top: "fourth_norm_mbox_conf_perm"
    
   permute_param {
    
     order: 0
    
     order: 2
    
     order: 3
    
     order: 1
    
   }
    
 }
    
 layer {
    
   name: "fourth_norm_mbox_conf_flat"
    
   type: "Flatten"
    
   bottom: "fourth_norm_mbox_conf_perm"
    
   top: "fourth_norm_mbox_conf_flat"
    
   flatten_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "fourth_norm_mbox_priorbox"
    
   type: "PriorBox"
    
   bottom: "fourth_norm"
    
   bottom: "data"
    
   top: "fourth_norm_mbox_priorbox"
    
   prior_box_param {
    
     min_size: 131.6
    
     max_size: 193.1
    
     aspect_ratio: 2.0
    
     aspect_ratio: 3.0
    
     flip: true
    
     clip: false
    
     variance: 0.1
    
     variance: 0.1
    
     variance: 0.2
    
     variance: 0.2
    
     offset: 0.5
    
   }
    
 }
    
 layer {
    
   name: "fifth_norm_mbox_loc"
    
   type: "Convolution"
    
   bottom: "fifth_norm"
    
   top: "fifth_norm_mbox_loc"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 16
    
     pad: 1
    
     kernel_size: 3
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "fifth_norm_mbox_loc_perm"
    
   type: "Permute"
    
   bottom: "fifth_norm_mbox_loc"
    
   top: "fifth_norm_mbox_loc_perm"
    
   permute_param {
    
     order: 0
    
     order: 2
    
     order: 3
    
     order: 1
    
   }
    
 }
    
 layer {
    
   name: "fifth_norm_mbox_loc_flat"
    
   type: "Flatten"
    
   bottom: "fifth_norm_mbox_loc_perm"
    
   top: "fifth_norm_mbox_loc_flat"
    
   flatten_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "fifth_norm_mbox_conf"
    
   type: "Convolution"
    
   bottom: "fifth_norm"
    
   top: "fifth_norm_mbox_conf"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 20
    
     pad: 1
    
     kernel_size: 3
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "fifth_norm_mbox_conf_perm"
    
   type: "Permute"
    
   bottom: "fifth_norm_mbox_conf"
    
   top: "fifth_norm_mbox_conf_perm"
    
   permute_param {
    
     order: 0
    
     order: 2
    
     order: 3
    
     order: 1
    
   }
    
 }
    
 layer {
    
   name: "fifth_norm_mbox_conf_flat"
    
   type: "Flatten"
    
   bottom: "fifth_norm_mbox_conf_perm"
    
   top: "fifth_norm_mbox_conf_flat"
    
   flatten_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "fifth_norm_mbox_priorbox"
    
   type: "PriorBox"
    
   bottom: "fifth_norm"
    
   bottom: "data"
    
   top: "fifth_norm_mbox_priorbox"
    
   prior_box_param {
    
     min_size: 193.1
    
     max_size: 283.4
    
     aspect_ratio: 2.0
    
     flip: true
    
     clip: false
    
     variance: 0.1
    
     variance: 0.1
    
     variance: 0.2
    
     variance: 0.2
    
     offset: 0.5
    
   }
    
 }
    
 layer {
    
   name: "sixth_norm_mbox_loc"
    
   type: "Convolution"
    
   bottom: "sixth_norm"
    
   top: "sixth_norm_mbox_loc"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 16
    
     pad: 1
    
     kernel_size: 3
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "sixth_norm_mbox_loc_perm"
    
   type: "Permute"
    
   bottom: "sixth_norm_mbox_loc"
    
   top: "sixth_norm_mbox_loc_perm"
    
   permute_param {
    
     order: 0
    
     order: 2
    
     order: 3
    
     order: 1
    
   }
    
 }
    
 layer {
    
   name: "sixth_norm_mbox_loc_flat"
    
   type: "Flatten"
    
   bottom: "sixth_norm_mbox_loc_perm"
    
   top: "sixth_norm_mbox_loc_flat"
    
   flatten_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "sixth_norm_mbox_conf"
    
   type: "Convolution"
    
   bottom: "sixth_norm"
    
   top: "sixth_norm_mbox_conf"
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 1.0
    
   }
    
   param {
    
     lr_mult: 1.0
    
     decay_mult: 0.0
    
   }
    
   convolution_param {
    
     num_output: 20
    
     pad: 1
    
     kernel_size: 3
    
     weight_filler {
    
       type: "msra"
    
     }
    
     bias_filler {
    
       type: "constant"
    
       value: 0.0
    
     }
    
   }
    
 }
    
 layer {
    
   name: "sixth_norm_mbox_conf_perm"
    
   type: "Permute"
    
   bottom: "sixth_norm_mbox_conf"
    
   top: "sixth_norm_mbox_conf_perm"
    
   permute_param {
    
     order: 0
    
     order: 2
    
     order: 3
    
     order: 1
    
   }
    
 }
    
 layer {
    
   name: "sixth_norm_mbox_conf_flat"
    
   type: "Flatten"
    
   bottom: "sixth_norm_mbox_conf_perm"
    
   top: "sixth_norm_mbox_conf_flat"
    
   flatten_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "sixth_norm_mbox_priorbox"
    
   type: "PriorBox"
    
   bottom: "sixth_norm"
    
   bottom: "data"
    
   top: "sixth_norm_mbox_priorbox"
    
   prior_box_param {
    
     min_size: 283.4
    
     max_size: 416.0
    
     aspect_ratio: 2.0
    
     flip: true
    
     clip: false
    
     variance: 0.1
    
     variance: 0.1
    
     variance: 0.2
    
     variance: 0.2
    
     offset: 0.5
    
   }
    
 }
    
 layer {
    
   name: "mbox_loc"
    
   type: "Concat"
    
   bottom: "first_norm_mbox_loc_flat"
    
   bottom: "second_norm_mbox_loc_flat"
    
   bottom: "third_norm_mbox_loc_flat"
    
   bottom: "fourth_norm_mbox_loc_flat"
    
   bottom: "fifth_norm_mbox_loc_flat"
    
   bottom: "sixth_norm_mbox_loc_flat"
    
   top: "mbox_loc"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "mbox_conf"
    
   type: "Concat"
    
   bottom: "first_norm_mbox_conf_flat"
    
   bottom: "second_norm_mbox_conf_flat"
    
   bottom: "third_norm_mbox_conf_flat"
    
   bottom: "fourth_norm_mbox_conf_flat"
    
   bottom: "fifth_norm_mbox_conf_flat"
    
   bottom: "sixth_norm_mbox_conf_flat"
    
   top: "mbox_conf"
    
   concat_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "mbox_priorbox"
    
   type: "Concat"
    
   bottom: "first_norm_mbox_priorbox"
    
   bottom: "second_norm_mbox_priorbox"
    
   bottom: "third_norm_mbox_priorbox"
    
   bottom: "fourth_norm_mbox_priorbox"
    
   bottom: "fifth_norm_mbox_priorbox"
    
   bottom: "sixth_norm_mbox_priorbox"
    
   top: "mbox_priorbox"
    
   concat_param {
    
     axis: 2
    
   }
    
 }
    
 layer {
    
   name: "mbox_conf_reshape"
    
   type: "Reshape"
    
   bottom: "mbox_conf"
    
   top: "mbox_conf_reshape"
    
   reshape_param {
    
     shape {
    
       dim: 0
    
       dim: -1
    
       dim: 5
    
     }
    
   }
    
 }
    
 layer {
    
   name: "mbox_conf_softmax"
    
   type: "Softmax"
    
   bottom: "mbox_conf_reshape"
    
   top: "mbox_conf_softmax"
    
   softmax_param {
    
     axis: 2
    
   }
    
 }
    
 layer {
    
   name: "mbox_conf_flatten"
    
   type: "Flatten"
    
   bottom: "mbox_conf_softmax"
    
   top: "mbox_conf_flatten"
    
   flatten_param {
    
     axis: 1
    
   }
    
 }
    
 layer {
    
   name: "detection_out"
    
   type: "DetectionOutput"
    
   bottom: "mbox_loc"
    
   bottom: "mbox_conf_flatten"
    
   bottom: "mbox_priorbox"
    
   top: "detection_out"
    
   include {
    
     phase: TEST
    
   }
    
   detection_output_param {
    
     num_classes: 5
    
     share_location: true
    
     background_label_id: 0
    
     nms_param {
    
       nms_threshold: 0.25
    
       top_k: 400
    
     }
    
     code_type: CENTER_SIZE
    
     keep_top_k: 200
    
     confidence_threshold: 0.91
    
   }
    
 }
    
    
    
    
        全部评论 (0)
 还没有任何评论哟~ 
