name: "shufflenet_v2" input: "data" input_shape { dim: 1 dim: 3 dim: 224 dim: 224 } layer { name: "conv1" type: "Convolution" bottom: "data" top: "conv1" convolution_param { num_output: 24 pad: 1 kernel_size: 3 stride: 2 bias_term: false weight_filler { type: "msra" } } } layer { name: "conv1_bn" type: "BatchNorm" bottom: "conv1" top: "conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv1_scale" bottom: "conv1" top: "conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv1_relu" type: "ReLU" bottom: "conv1" top: "conv1" } layer { name: "pool1" type: "Pooling" bottom: "conv1" top: "pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "branch1_1_conv1" type: "ConvolutionDepthwise" bottom: "pool1" top: "branch1_1_conv1" convolution_param { num_output: 24 kernel_size: 3 stride: 2 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch1_1_conv1_bn" type: "BatchNorm" bottom: "branch1_1_conv1" top: "branch1_1_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch1_1_conv1_scale" bottom: "branch1_1_conv1" top: "branch1_1_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch1_1_conv2" type: "Convolution" bottom: "branch1_1_conv1" top: "branch1_1_conv2" convolution_param { num_output: 58 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch1_1_conv2_bn" type: "BatchNorm" bottom: "branch1_1_conv2" top: "branch1_1_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch1_1_conv2_scale" bottom: "branch1_1_conv2" top: "branch1_1_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch1_1_conv2_relu" type: "ReLU" bottom: "branch1_1_conv2" top: "branch1_1_conv2" } layer { name: "branch1_2_conv1" type: "Convolution" bottom: "pool1" top: "branch1_2_conv1" convolution_param { num_output: 58 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch1_2_conv1_bn" type: "BatchNorm" bottom: "branch1_2_conv1" top: "branch1_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch1_2_conv1_scale" bottom: "branch1_2_conv1" top: "branch1_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch1_2_conv1_relu" type: "ReLU" bottom: "branch1_2_conv1" top: "branch1_2_conv1" } layer { name: "branch1_2_conv2" type: "ConvolutionDepthwise" bottom: "branch1_2_conv1" top: "branch1_2_conv2" convolution_param { num_output: 58 kernel_size: 3 stride: 2 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch1_2_conv2_bn" type: "BatchNorm" bottom: "branch1_2_conv2" top: "branch1_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch1_2_conv2_scale" bottom: "branch1_2_conv2" top: "branch1_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch1_2_conv3" type: "Convolution" bottom: "branch1_2_conv2" top: "branch1_2_conv3" convolution_param { num_output: 58 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch1_2_conv3_bn" type: "BatchNorm" bottom: "branch1_2_conv3" top: "branch1_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch1_2_conv3_scale" bottom: "branch1_2_conv3" top: "branch1_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch1_2_conv3_relu" type: "ReLU" bottom: "branch1_2_conv3" top: "branch1_2_conv3" } layer { name: "concat1" type: "Concat" bottom: "branch1_1_conv2" bottom: "branch1_2_conv3" top: "concat1" } layer { name: "shuffle1" type: "ShuffleChannel" bottom: "concat1" top: "shuffle1" shuffle_channel_param { group: 2 } } layer { name: "slice2" type: "Slice" bottom: "shuffle1" top: "branch2_1" top: "branch2_2" slice_param { slice_point: 58 axis: 1 } } layer { name: "branch2_2_conv1" type: "Convolution" bottom: "branch2_2" top: "branch2_2_conv1" convolution_param { num_output: 58 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch2_2_conv1_bn" type: "BatchNorm" bottom: "branch2_2_conv1" top: "branch2_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch2_2_conv1_scale" bottom: "branch2_2_conv1" top: "branch2_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch2_2_conv1_relu" type: "ReLU" bottom: "branch2_2_conv1" top: "branch2_2_conv1" } layer { name: "branch2_2_conv2" type: "ConvolutionDepthwise" bottom: "branch2_2_conv1" top: "branch2_2_conv2" convolution_param { num_output: 58 kernel_size: 3 stride: 1 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch2_2_conv2_bn" type: "BatchNorm" bottom: "branch2_2_conv2" top: "branch2_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch2_2_conv2_scale" bottom: "branch2_2_conv2" top: "branch2_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch2_2_conv3" type: "Convolution" bottom: "branch2_2_conv2" top: "branch2_2_conv3" convolution_param { num_output: 58 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch2_2_conv3_bn" type: "BatchNorm" bottom: "branch2_2_conv3" top: "branch2_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch2_2_conv3_scale" bottom: "branch2_2_conv3" top: "branch2_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch2_2_conv3_relu" type: "ReLU" bottom: "branch2_2_conv3" top: "branch2_2_conv3" } layer { name: "concat2" type: "Concat" bottom: "branch2_1" bottom: "branch2_2_conv3" top: "concat2" } layer { name: "shuffle2" type: "ShuffleChannel" bottom: "concat2" top: "shuffle2" shuffle_channel_param { group: 2 } } layer { name: "slice3" type: "Slice" bottom: "shuffle2" top: "branch3_1" top: "branch3_2" slice_param { slice_point: 58 axis: 1 } } layer { name: "branch3_2_conv1" type: "Convolution" bottom: "branch3_2" top: "branch3_2_conv1" convolution_param { num_output: 58 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch3_2_conv1_bn" type: "BatchNorm" bottom: "branch3_2_conv1" top: "branch3_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch3_2_conv1_scale" bottom: "branch3_2_conv1" top: "branch3_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch3_2_conv1_relu" type: "ReLU" bottom: "branch3_2_conv1" top: "branch3_2_conv1" } layer { name: "branch3_2_conv2" type: "ConvolutionDepthwise" bottom: "branch3_2_conv1" top: "branch3_2_conv2" convolution_param { num_output: 58 kernel_size: 3 stride: 1 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch3_2_conv2_bn" type: "BatchNorm" bottom: "branch3_2_conv2" top: "branch3_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch3_2_conv2_scale" bottom: "branch3_2_conv2" top: "branch3_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch3_2_conv3" type: "Convolution" bottom: "branch3_2_conv2" top: "branch3_2_conv3" convolution_param { num_output: 58 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch3_2_conv3_bn" type: "BatchNorm" bottom: "branch3_2_conv3" top: "branch3_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch3_2_conv3_scale" bottom: "branch3_2_conv3" top: "branch3_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch3_2_conv3_relu" type: "ReLU" bottom: "branch3_2_conv3" top: "branch3_2_conv3" } layer { name: "concat3" type: "Concat" bottom: "branch3_1" bottom: "branch3_2_conv3" top: "concat3" } layer { name: "shuffle3" type: "ShuffleChannel" bottom: "concat3" top: "shuffle3" shuffle_channel_param { group: 2 } } layer { name: "slice4" type: "Slice" bottom: "shuffle3" top: "branch4_1" top: "branch4_2" slice_param { slice_point: 58 axis: 1 } } layer { name: "branch4_2_conv1" type: "Convolution" bottom: "branch4_2" top: "branch4_2_conv1" convolution_param { num_output: 58 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch4_2_conv1_bn" type: "BatchNorm" bottom: "branch4_2_conv1" top: "branch4_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch4_2_conv1_scale" bottom: "branch4_2_conv1" top: "branch4_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch4_2_conv1_relu" type: "ReLU" bottom: "branch4_2_conv1" top: "branch4_2_conv1" } layer { name: "branch4_2_conv2" type: "ConvolutionDepthwise" bottom: "branch4_2_conv1" top: "branch4_2_conv2" convolution_param { num_output: 58 kernel_size: 3 stride: 1 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch4_2_conv2_bn" type: "BatchNorm" bottom: "branch4_2_conv2" top: "branch4_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch4_2_conv2_scale" bottom: "branch4_2_conv2" top: "branch4_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch4_2_conv3" type: "Convolution" bottom: "branch4_2_conv2" top: "branch4_2_conv3" convolution_param { num_output: 58 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch4_2_conv3_bn" type: "BatchNorm" bottom: "branch4_2_conv3" top: "branch4_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch4_2_conv3_scale" bottom: "branch4_2_conv3" top: "branch4_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch4_2_conv3_relu" type: "ReLU" bottom: "branch4_2_conv3" top: "branch4_2_conv3" } layer { name: "concat4" type: "Concat" bottom: "branch4_1" bottom: "branch4_2_conv3" top: "concat4" } layer { name: "shuffle4" type: "ShuffleChannel" bottom: "concat4" top: "shuffle4" shuffle_channel_param { group: 2 } } layer { name: "branch5_1_conv1" type: "ConvolutionDepthwise" bottom: "shuffle4" top: "branch5_1_conv1" convolution_param { num_output: 116 kernel_size: 3 stride: 2 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch5_1_conv1_bn" type: "BatchNorm" bottom: "branch5_1_conv1" top: "branch5_1_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch5_1_conv1_scale" bottom: "branch5_1_conv1" top: "branch5_1_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch5_1_conv2" type: "Convolution" bottom: "branch5_1_conv1" top: "branch5_1_conv2" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch5_1_conv2_bn" type: "BatchNorm" bottom: "branch5_1_conv2" top: "branch5_1_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch5_1_conv2_scale" bottom: "branch5_1_conv2" top: "branch5_1_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch5_1_conv2_relu" type: "ReLU" bottom: "branch5_1_conv2" top: "branch5_1_conv2" } layer { name: "branch5_2_conv1" type: "Convolution" bottom: "shuffle4" top: "branch5_2_conv1" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch5_2_conv1_bn" type: "BatchNorm" bottom: "branch5_2_conv1" top: "branch5_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch5_2_conv1_scale" bottom: "branch5_2_conv1" top: "branch5_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch5_2_conv1_relu" type: "ReLU" bottom: "branch5_2_conv1" top: "branch5_2_conv1" } layer { name: "branch5_2_conv2" type: "ConvolutionDepthwise" bottom: "branch5_2_conv1" top: "branch5_2_conv2" convolution_param { num_output: 116 kernel_size: 3 stride: 2 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch5_2_conv2_bn" type: "BatchNorm" bottom: "branch5_2_conv2" top: "branch5_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch5_2_conv2_scale" bottom: "branch5_2_conv2" top: "branch5_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch5_2_conv3" type: "Convolution" bottom: "branch5_2_conv2" top: "branch5_2_conv3" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch5_2_conv3_bn" type: "BatchNorm" bottom: "branch5_2_conv3" top: "branch5_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch5_2_conv3_scale" bottom: "branch5_2_conv3" top: "branch5_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch5_2_conv3_relu" type: "ReLU" bottom: "branch5_2_conv3" top: "branch5_2_conv3" } layer { name: "concat5" type: "Concat" bottom: "branch5_1_conv2" bottom: "branch5_2_conv3" top: "concat5" } layer { name: "shuffle5" type: "ShuffleChannel" bottom: "concat5" top: "shuffle5" shuffle_channel_param { group: 2 } } layer { name: "slice6" type: "Slice" bottom: "shuffle5" top: "branch6_1" top: "branch6_2" slice_param { slice_point: 116 axis: 1 } } layer { name: "branch6_2_conv1" type: "Convolution" bottom: "branch6_2" top: "branch6_2_conv1" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch6_2_conv1_bn" type: "BatchNorm" bottom: "branch6_2_conv1" top: "branch6_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch6_2_conv1_scale" bottom: "branch6_2_conv1" top: "branch6_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch6_2_conv1_relu" type: "ReLU" bottom: "branch6_2_conv1" top: "branch6_2_conv1" } layer { name: "branch6_2_conv2" type: "ConvolutionDepthwise" bottom: "branch6_2_conv1" top: "branch6_2_conv2" convolution_param { num_output: 116 kernel_size: 3 stride: 1 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch6_2_conv2_bn" type: "BatchNorm" bottom: "branch6_2_conv2" top: "branch6_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch6_2_conv2_scale" bottom: "branch6_2_conv2" top: "branch6_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch6_2_conv3" type: "Convolution" bottom: "branch6_2_conv2" top: "branch6_2_conv3" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch6_2_conv3_bn" type: "BatchNorm" bottom: "branch6_2_conv3" top: "branch6_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch6_2_conv3_scale" bottom: "branch6_2_conv3" top: "branch6_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch6_2_conv3_relu" type: "ReLU" bottom: "branch6_2_conv3" top: "branch6_2_conv3" } layer { name: "concat6" type: "Concat" bottom: "branch6_1" bottom: "branch6_2_conv3" top: "concat6" } layer { name: "shuffle6" type: "ShuffleChannel" bottom: "concat6" top: "shuffle6" shuffle_channel_param { group: 2 } } layer { name: "slice7" type: "Slice" bottom: "shuffle6" top: "branch7_1" top: "branch7_2" slice_param { slice_point: 116 axis: 1 } } layer { name: "branch7_2_conv1" type: "Convolution" bottom: "branch7_2" top: "branch7_2_conv1" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch7_2_conv1_bn" type: "BatchNorm" bottom: "branch7_2_conv1" top: "branch7_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch7_2_conv1_scale" bottom: "branch7_2_conv1" top: "branch7_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch7_2_conv1_relu" type: "ReLU" bottom: "branch7_2_conv1" top: "branch7_2_conv1" } layer { name: "branch7_2_conv2" type: "ConvolutionDepthwise" bottom: "branch7_2_conv1" top: "branch7_2_conv2" convolution_param { num_output: 116 kernel_size: 3 stride: 1 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch7_2_conv2_bn" type: "BatchNorm" bottom: "branch7_2_conv2" top: "branch7_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch7_2_conv2_scale" bottom: "branch7_2_conv2" top: "branch7_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch7_2_conv3" type: "Convolution" bottom: "branch7_2_conv2" top: "branch7_2_conv3" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch7_2_conv3_bn" type: "BatchNorm" bottom: "branch7_2_conv3" top: "branch7_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch7_2_conv3_scale" bottom: "branch7_2_conv3" top: "branch7_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch7_2_conv3_relu" type: "ReLU" bottom: "branch7_2_conv3" top: "branch7_2_conv3" } layer { name: "concat7" type: "Concat" bottom: "branch7_1" bottom: "branch7_2_conv3" top: "concat7" } layer { name: "shuffle7" type: "ShuffleChannel" bottom: "concat7" top: "shuffle7" shuffle_channel_param { group: 2 } } layer { name: "slice8" type: "Slice" bottom: "shuffle7" top: "branch8_1" top: "branch8_2" slice_param { slice_point: 116 axis: 1 } } layer { name: "branch8_2_conv1" type: "Convolution" bottom: "branch8_2" top: "branch8_2_conv1" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch8_2_conv1_bn" type: "BatchNorm" bottom: "branch8_2_conv1" top: "branch8_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch8_2_conv1_scale" bottom: "branch8_2_conv1" top: "branch8_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch8_2_conv1_relu" type: "ReLU" bottom: "branch8_2_conv1" top: "branch8_2_conv1" } layer { name: "branch8_2_conv2" type: "ConvolutionDepthwise" bottom: "branch8_2_conv1" top: "branch8_2_conv2" convolution_param { num_output: 116 kernel_size: 3 stride: 1 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch8_2_conv2_bn" type: "BatchNorm" bottom: "branch8_2_conv2" top: "branch8_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch8_2_conv2_scale" bottom: "branch8_2_conv2" top: "branch8_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch8_2_conv3" type: "Convolution" bottom: "branch8_2_conv2" top: "branch8_2_conv3" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch8_2_conv3_bn" type: "BatchNorm" bottom: "branch8_2_conv3" top: "branch8_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch8_2_conv3_scale" bottom: "branch8_2_conv3" top: "branch8_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch8_2_conv3_relu" type: "ReLU" bottom: "branch8_2_conv3" top: "branch8_2_conv3" } layer { name: "concat8" type: "Concat" bottom: "branch8_1" bottom: "branch8_2_conv3" top: "concat8" } layer { name: "shuffle8" type: "ShuffleChannel" bottom: "concat8" top: "shuffle8" shuffle_channel_param { group: 2 } } layer { name: "slice9" type: "Slice" bottom: "shuffle8" top: "branch9_1" top: "branch9_2" slice_param { slice_point: 116 axis: 1 } } layer { name: "branch9_2_conv1" type: "Convolution" bottom: "branch9_2" top: "branch9_2_conv1" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch9_2_conv1_bn" type: "BatchNorm" bottom: "branch9_2_conv1" top: "branch9_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch9_2_conv1_scale" bottom: "branch9_2_conv1" top: "branch9_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch9_2_conv1_relu" type: "ReLU" bottom: "branch9_2_conv1" top: "branch9_2_conv1" } layer { name: "branch9_2_conv2" type: "ConvolutionDepthwise" bottom: "branch9_2_conv1" top: "branch9_2_conv2" convolution_param { num_output: 116 kernel_size: 3 stride: 1 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch9_2_conv2_bn" type: "BatchNorm" bottom: "branch9_2_conv2" top: "branch9_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch9_2_conv2_scale" bottom: "branch9_2_conv2" top: "branch9_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch9_2_conv3" type: "Convolution" bottom: "branch9_2_conv2" top: "branch9_2_conv3" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch9_2_conv3_bn" type: "BatchNorm" bottom: "branch9_2_conv3" top: "branch9_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch9_2_conv3_scale" bottom: "branch9_2_conv3" top: "branch9_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch9_2_conv3_relu" type: "ReLU" bottom: "branch9_2_conv3" top: "branch9_2_conv3" } layer { name: "concat9" type: "Concat" bottom: "branch9_1" bottom: "branch9_2_conv3" top: "concat9" } layer { name: "shuffle9" type: "ShuffleChannel" bottom: "concat9" top: "shuffle9" shuffle_channel_param { group: 2 } } layer { name: "slice10" type: "Slice" bottom: "shuffle9" top: "branch10_1" top: "branch10_2" slice_param { slice_point: 116 axis: 1 } } layer { name: "branch10_2_conv1" type: "Convolution" bottom: "branch10_2" top: "branch10_2_conv1" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch10_2_conv1_bn" type: "BatchNorm" bottom: "branch10_2_conv1" top: "branch10_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch10_2_conv1_scale" bottom: "branch10_2_conv1" top: "branch10_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch10_2_conv1_relu" type: "ReLU" bottom: "branch10_2_conv1" top: "branch10_2_conv1" } layer { name: "branch10_2_conv2" type: "ConvolutionDepthwise" bottom: "branch10_2_conv1" top: "branch10_2_conv2" convolution_param { num_output: 116 kernel_size: 3 stride: 1 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch10_2_conv2_bn" type: "BatchNorm" bottom: "branch10_2_conv2" top: "branch10_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch10_2_conv2_scale" bottom: "branch10_2_conv2" top: "branch10_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch10_2_conv3" type: "Convolution" bottom: "branch10_2_conv2" top: "branch10_2_conv3" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch10_2_conv3_bn" type: "BatchNorm" bottom: "branch10_2_conv3" top: "branch10_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch10_2_conv3_scale" bottom: "branch10_2_conv3" top: "branch10_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch10_2_conv3_relu" type: "ReLU" bottom: "branch10_2_conv3" top: "branch10_2_conv3" } layer { name: "concat10" type: "Concat" bottom: "branch10_1" bottom: "branch10_2_conv3" top: "concat10" } layer { name: "shuffle10" type: "ShuffleChannel" bottom: "concat10" top: "shuffle10" shuffle_channel_param { group: 2 } } layer { name: "slice11" type: "Slice" bottom: "shuffle10" top: "branch11_1" top: "branch11_2" slice_param { slice_point: 116 axis: 1 } } layer { name: "branch11_2_conv1" type: "Convolution" bottom: "branch11_2" top: "branch11_2_conv1" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch11_2_conv1_bn" type: "BatchNorm" bottom: "branch11_2_conv1" top: "branch11_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch11_2_conv1_scale" bottom: "branch11_2_conv1" top: "branch11_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch11_2_conv1_relu" type: "ReLU" bottom: "branch11_2_conv1" top: "branch11_2_conv1" } layer { name: "branch11_2_conv2" type: "ConvolutionDepthwise" bottom: "branch11_2_conv1" top: "branch11_2_conv2" convolution_param { num_output: 116 kernel_size: 3 stride: 1 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch11_2_conv2_bn" type: "BatchNorm" bottom: "branch11_2_conv2" top: "branch11_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch11_2_conv2_scale" bottom: "branch11_2_conv2" top: "branch11_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch11_2_conv3" type: "Convolution" bottom: "branch11_2_conv2" top: "branch11_2_conv3" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch11_2_conv3_bn" type: "BatchNorm" bottom: "branch11_2_conv3" top: "branch11_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch11_2_conv3_scale" bottom: "branch11_2_conv3" top: "branch11_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch11_2_conv3_relu" type: "ReLU" bottom: "branch11_2_conv3" top: "branch11_2_conv3" } layer { name: "concat11" type: "Concat" bottom: "branch11_1" bottom: "branch11_2_conv3" top: "concat11" } layer { name: "shuffle11" type: "ShuffleChannel" bottom: "concat11" top: "shuffle11" shuffle_channel_param { group: 2 } } layer { name: "slice12" type: "Slice" bottom: "shuffle11" top: "branch12_1" top: "branch12_2" slice_param { slice_point: 116 axis: 1 } } layer { name: "branch12_2_conv1" type: "Convolution" bottom: "branch12_2" top: "branch12_2_conv1" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch12_2_conv1_bn" type: "BatchNorm" bottom: "branch12_2_conv1" top: "branch12_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch12_2_conv1_scale" bottom: "branch12_2_conv1" top: "branch12_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch12_2_conv1_relu" type: "ReLU" bottom: "branch12_2_conv1" top: "branch12_2_conv1" } layer { name: "branch12_2_conv2" type: "ConvolutionDepthwise" bottom: "branch12_2_conv1" top: "branch12_2_conv2" convolution_param { num_output: 116 kernel_size: 3 stride: 1 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch12_2_conv2_bn" type: "BatchNorm" bottom: "branch12_2_conv2" top: "branch12_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch12_2_conv2_scale" bottom: "branch12_2_conv2" top: "branch12_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch12_2_conv3" type: "Convolution" bottom: "branch12_2_conv2" top: "branch12_2_conv3" convolution_param { num_output: 116 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch12_2_conv3_bn" type: "BatchNorm" bottom: "branch12_2_conv3" top: "branch12_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch12_2_conv3_scale" bottom: "branch12_2_conv3" top: "branch12_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch12_2_conv3_relu" type: "ReLU" bottom: "branch12_2_conv3" top: "branch12_2_conv3" } layer { name: "concat12" type: "Concat" bottom: "branch12_1" bottom: "branch12_2_conv3" top: "concat12" } layer { name: "shuffle12" type: "ShuffleChannel" bottom: "concat12" top: "shuffle12" shuffle_channel_param { group: 2 } } layer { name: "branch13_1_conv1" type: "ConvolutionDepthwise" bottom: "shuffle12" top: "branch13_1_conv1" convolution_param { num_output: 232 kernel_size: 3 stride: 2 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch13_1_conv1_bn" type: "BatchNorm" bottom: "branch13_1_conv1" top: "branch13_1_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch13_1_conv1_scale" bottom: "branch13_1_conv1" top: "branch13_1_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch13_1_conv2" type: "Convolution" bottom: "branch13_1_conv1" top: "branch13_1_conv2" convolution_param { num_output: 232 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch13_1_conv2_bn" type: "BatchNorm" bottom: "branch13_1_conv2" top: "branch13_1_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch13_1_conv2_scale" bottom: "branch13_1_conv2" top: "branch13_1_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch13_1_conv2_relu" type: "ReLU" bottom: "branch13_1_conv2" top: "branch13_1_conv2" } layer { name: "branch13_2_conv1" type: "Convolution" bottom: "shuffle12" top: "branch13_2_conv1" convolution_param { num_output: 232 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch13_2_conv1_bn" type: "BatchNorm" bottom: "branch13_2_conv1" top: "branch13_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch13_2_conv1_scale" bottom: "branch13_2_conv1" top: "branch13_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch13_2_conv1_relu" type: "ReLU" bottom: "branch13_2_conv1" top: "branch13_2_conv1" } layer { name: "branch13_2_conv2" type: "ConvolutionDepthwise" bottom: "branch13_2_conv1" top: "branch13_2_conv2" convolution_param { num_output: 232 kernel_size: 3 stride: 2 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch13_2_conv2_bn" type: "BatchNorm" bottom: "branch13_2_conv2" top: "branch13_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch13_2_conv2_scale" bottom: "branch13_2_conv2" top: "branch13_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch13_2_conv3" type: "Convolution" bottom: "branch13_2_conv2" top: "branch13_2_conv3" convolution_param { num_output: 232 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch13_2_conv3_bn" type: "BatchNorm" bottom: "branch13_2_conv3" top: "branch13_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch13_2_conv3_scale" bottom: "branch13_2_conv3" top: "branch13_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch13_2_conv3_relu" type: "ReLU" bottom: "branch13_2_conv3" top: "branch13_2_conv3" } layer { name: "concat13" type: "Concat" bottom: "branch13_1_conv2" bottom: "branch13_2_conv3" top: "concat13" } layer { name: "shuffle13" type: "ShuffleChannel" bottom: "concat13" top: "shuffle13" shuffle_channel_param { group: 2 } } layer { name: "slice14" type: "Slice" bottom: "shuffle13" top: "branch14_1" top: "branch14_2" slice_param { slice_point: 232 axis: 1 } } layer { name: "branch14_2_conv1" type: "Convolution" bottom: "branch14_2" top: "branch14_2_conv1" convolution_param { num_output: 232 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch14_2_conv1_bn" type: "BatchNorm" bottom: "branch14_2_conv1" top: "branch14_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch14_2_conv1_scale" bottom: "branch14_2_conv1" top: "branch14_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch14_2_conv1_relu" type: "ReLU" bottom: "branch14_2_conv1" top: "branch14_2_conv1" } layer { name: "branch14_2_conv2" type: "ConvolutionDepthwise" bottom: "branch14_2_conv1" top: "branch14_2_conv2" convolution_param { num_output: 232 kernel_size: 3 stride: 1 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch14_2_conv2_bn" type: "BatchNorm" bottom: "branch14_2_conv2" top: "branch14_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch14_2_conv2_scale" bottom: "branch14_2_conv2" top: "branch14_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch14_2_conv3" type: "Convolution" bottom: "branch14_2_conv2" top: "branch14_2_conv3" convolution_param { num_output: 232 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch14_2_conv3_bn" type: "BatchNorm" bottom: "branch14_2_conv3" top: "branch14_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch14_2_conv3_scale" bottom: "branch14_2_conv3" top: "branch14_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch14_2_conv3_relu" type: "ReLU" bottom: "branch14_2_conv3" top: "branch14_2_conv3" } layer { name: "concat14" type: "Concat" bottom: "branch14_1" bottom: "branch14_2_conv3" top: "concat14" } layer { name: "shuffle14" type: "ShuffleChannel" bottom: "concat14" top: "shuffle14" shuffle_channel_param { group: 2 } } layer { name: "slice15" type: "Slice" bottom: "shuffle14" top: "branch15_1" top: "branch15_2" slice_param { slice_point: 232 axis: 1 } } layer { name: "branch15_2_conv1" type: "Convolution" bottom: "branch15_2" top: "branch15_2_conv1" convolution_param { num_output: 232 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch15_2_conv1_bn" type: "BatchNorm" bottom: "branch15_2_conv1" top: "branch15_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch15_2_conv1_scale" bottom: "branch15_2_conv1" top: "branch15_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch15_2_conv1_relu" type: "ReLU" bottom: "branch15_2_conv1" top: "branch15_2_conv1" } layer { name: "branch15_2_conv2" type: "ConvolutionDepthwise" bottom: "branch15_2_conv1" top: "branch15_2_conv2" convolution_param { num_output: 232 kernel_size: 3 stride: 1 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch15_2_conv2_bn" type: "BatchNorm" bottom: "branch15_2_conv2" top: "branch15_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch15_2_conv2_scale" bottom: "branch15_2_conv2" top: "branch15_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch15_2_conv3" type: "Convolution" bottom: "branch15_2_conv2" top: "branch15_2_conv3" convolution_param { num_output: 232 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch15_2_conv3_bn" type: "BatchNorm" bottom: "branch15_2_conv3" top: "branch15_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch15_2_conv3_scale" bottom: "branch15_2_conv3" top: "branch15_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch15_2_conv3_relu" type: "ReLU" bottom: "branch15_2_conv3" top: "branch15_2_conv3" } layer { name: "concat15" type: "Concat" bottom: "branch15_1" bottom: "branch15_2_conv3" top: "concat15" } layer { name: "shuffle15" type: "ShuffleChannel" bottom: "concat15" top: "shuffle15" shuffle_channel_param { group: 2 } } layer { name: "slice16" type: "Slice" bottom: "shuffle15" top: "branch16_1" top: "branch16_2" slice_param { slice_point: 232 axis: 1 } } layer { name: "branch16_2_conv1" type: "Convolution" bottom: "branch16_2" top: "branch16_2_conv1" convolution_param { num_output: 232 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch16_2_conv1_bn" type: "BatchNorm" bottom: "branch16_2_conv1" top: "branch16_2_conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch16_2_conv1_scale" bottom: "branch16_2_conv1" top: "branch16_2_conv1" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch16_2_conv1_relu" type: "ReLU" bottom: "branch16_2_conv1" top: "branch16_2_conv1" } layer { name: "branch16_2_conv2" type: "ConvolutionDepthwise" bottom: "branch16_2_conv1" top: "branch16_2_conv2" convolution_param { num_output: 232 kernel_size: 3 stride: 1 pad: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch16_2_conv2_bn" type: "BatchNorm" bottom: "branch16_2_conv2" top: "branch16_2_conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch16_2_conv2_scale" bottom: "branch16_2_conv2" top: "branch16_2_conv2" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch16_2_conv3" type: "Convolution" bottom: "branch16_2_conv2" top: "branch16_2_conv3" convolution_param { num_output: 232 kernel_size: 1 stride: 1 pad: 0 bias_term: false weight_filler { type: "msra" } } } layer { name: "branch16_2_conv3_bn" type: "BatchNorm" bottom: "branch16_2_conv3" top: "branch16_2_conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "branch16_2_conv3_scale" bottom: "branch16_2_conv3" top: "branch16_2_conv3" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "branch16_2_conv3_relu" type: "ReLU" bottom: "branch16_2_conv3" top: "branch16_2_conv3" } layer { name: "concat16" type: "Concat" bottom: "branch16_1" bottom: "branch16_2_conv3" top: "concat16" } layer { name: "shuffle16" type: "ShuffleChannel" bottom: "concat16" top: "shuffle16" shuffle_channel_param { group: 2 } } layer { name: "conv5" type: "Convolution" bottom: "shuffle16" top: "conv5" convolution_param { num_output: 1024 pad: 0 kernel_size: 1 stride: 1 bias_term: false weight_filler { type: "msra" } } } layer { name: "conv5_bn" type: "BatchNorm" bottom: "conv5" top: "conv5" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv5_scale" bottom: "conv5" top: "conv5" type: "Scale" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv5_relu" type: "ReLU" bottom: "conv5" top: "conv5" } layer { name: "pool_ave" type: "Pooling" bottom: "conv5" top: "pool_ave" pooling_param { global_pooling : true pool: AVE } } layer { name: "fc1000" type: "Convolution" bottom: "pool_ave" top: "fc1000" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 1000 kernel_size: 1 weight_filler { type: "msra" } bias_filler { type: "constant" value: 0 } } }