input: "img0_img1"
input_shape {
  dim: 1
  dim: 6
#  dim: 448 XXX 20201013 lwt modified
#  dim: 256
  dim: 256
  dim: 256
}


layer {
  name: "stem_conv1_conv_"
  type: "Convolution"
  bottom: "img0_img1"
  top: "Convolution1"
  convolution_param {
    num_output: 16
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 2
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "stem_conv1_bn"
  type: "BatchNorm"
  bottom: "Convolution1"
  top: "Convolution1"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "stem_conv1_sc"
  type: "Scale"
  bottom: "Convolution1"
  top: "Convolution1"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "stem_conv1_relu"
  type: "ReLU"
  bottom: "Convolution1"
  top: "Convolution1"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "stem_conv2_conv"
  type: "Convolution"
  bottom: "Convolution1"
  top: "Convolution2"
  convolution_param {
    num_output: 24
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "stem_conv2_bn"
  type: "BatchNorm"
  bottom: "Convolution2"
  top: "Convolution2"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "stem_conv2_sc"
  type: "Scale"
  bottom: "Convolution2"
  top: "Convolution2"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "stem_conv2_relu"
  type: "ReLU"
  bottom: "Convolution2"
  top: "Convolution2"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "stem_conv3_conv"
  type: "Convolution"
  bottom: "Convolution2"
  top: "Convolution3"
  convolution_param {
    num_output: 32
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 2
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "stem_conv3_bn"
  type: "BatchNorm"
  bottom: "Convolution3"
  top: "Convolution3"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "stem_conv3_sc"
  type: "Scale"
  bottom: "Convolution3"
  top: "Convolution3"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "stem_conv3_relu"
  type: "ReLU"
  bottom: "Convolution3"
  top: "Convolution3"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res2_1_stu_conv1_conv"
  type: "Convolution"
  bottom: "Convolution3"
  top: "Convolution4"
  convolution_param {
    num_output: 32
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res2_1_stu_conv1_bn"
  type: "BatchNorm"
  bottom: "Convolution4"
  top: "Convolution4"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res2_1_stu_conv1_sc"
  type: "Scale"
  bottom: "Convolution4"
  top: "Convolution4"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res2_1_stu_conv1_relu"
  type: "ReLU"
  bottom: "Convolution4"
  top: "Convolution4"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res2_1_stu_conv2_conv"
  type: "Convolution"
  bottom: "Convolution4"
  top: "Convolution5"
  convolution_param {
    num_output: 32
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res2_1_stu_conv2_bn"
  type: "BatchNorm"
  bottom: "Convolution5"
  top: "Convolution5"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res2_1_stu_conv2_sc"
  type: "Scale"
  bottom: "Convolution5"
  top: "Convolution5"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res2_1_stu_conv2_relu"
  type: "ReLU"
  bottom: "Convolution5"
  top: "Convolution5"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res2_1_stu_eltsum"
  type: "Eltwise"
  bottom: "Convolution5"
  bottom: "Convolution3"
  top: "Eltwise1"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "res2_2_stu_conv1_conv"
  type: "Convolution"
  bottom: "Eltwise1"
  top: "Convolution6"
  convolution_param {
    num_output: 32
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res2_2_stu_conv1_bn"
  type: "BatchNorm"
  bottom: "Convolution6"
  top: "Convolution6"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res2_2_stu_conv1_sc"
  type: "Scale"
  bottom: "Convolution6"
  top: "Convolution6"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res2_2_stu_conv1_relu"
  type: "ReLU"
  bottom: "Convolution6"
  top: "Convolution6"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res2_2_stu_conv2_conv"
  type: "Convolution"
  bottom: "Convolution6"
  top: "Convolution7"
  convolution_param {
    num_output: 32
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res2_2_stu_conv2_bn"
  type: "BatchNorm"
  bottom: "Convolution7"
  top: "Convolution7"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res2_2_stu_conv2_sc"
  type: "Scale"
  bottom: "Convolution7"
  top: "Convolution7"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res2_2_stu_conv2_relu"
  type: "ReLU"
  bottom: "Convolution7"
  top: "Convolution7"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res2_2_stu_eltsum"
  type: "Eltwise"
  bottom: "Convolution7"
  bottom: "Eltwise1"
  top: "Eltwise2"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "res3_1_stu_conv1_conv"
  type: "Convolution"
  bottom: "Eltwise2"
  top: "Convolution8"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res3_1_stu_conv1_bn"
  type: "BatchNorm"
  bottom: "Convolution8"
  top: "Convolution8"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res3_1_stu_conv1_sc"
  type: "Scale"
  bottom: "Convolution8"
  top: "Convolution8"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res3_1_stu_conv1_relu"
  type: "ReLU"
  bottom: "Convolution8"
  top: "Convolution8"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res3_1_stu_conv2_conv"
  type: "Convolution"
  bottom: "Convolution8"
  top: "Convolution9"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 2
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res3_1_stu_conv2_bn"
  type: "BatchNorm"
  bottom: "Convolution9"
  top: "Convolution9"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res3_1_stu_conv2_sc"
  type: "Scale"
  bottom: "Convolution9"
  top: "Convolution9"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res3_1_stu_conv2_relu"
  type: "ReLU"
  bottom: "Convolution9"
  top: "Convolution9"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res3_1_stu_projconv_conv"
  type: "Convolution"
  bottom: "Eltwise2"
  top: "Convolution10"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 2
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res3_1_stu_projconv_bn"
  type: "BatchNorm"
  bottom: "Convolution10"
  top: "Convolution10"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res3_1_stu_projconv_sc"
  type: "Scale"
  bottom: "Convolution10"
  top: "Convolution10"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res3_1_stu_projconv_relu"
  type: "ReLU"
  bottom: "Convolution10"
  top: "Convolution10"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res3_1_stu_eltsum"
  type: "Eltwise"
  bottom: "Convolution9"
  bottom: "Convolution10"
  top: "Eltwise3"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "res3_2_stu_conv1_conv"
  type: "Convolution"
  bottom: "Eltwise3"
  top: "Convolution11"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res3_2_stu_conv1_bn"
  type: "BatchNorm"
  bottom: "Convolution11"
  top: "Convolution11"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res3_2_stu_conv1_sc"
  type: "Scale"
  bottom: "Convolution11"
  top: "Convolution11"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res3_2_stu_conv1_relu"
  type: "ReLU"
  bottom: "Convolution11"
  top: "Convolution11"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res3_2_stu_conv2_conv"
  type: "Convolution"
  bottom: "Convolution11"
  top: "Convolution12"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res3_2_stu_conv2_bn"
  type: "BatchNorm"
  bottom: "Convolution12"
  top: "Convolution12"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res3_2_stu_conv2_sc"
  type: "Scale"
  bottom: "Convolution12"
  top: "Convolution12"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res3_2_stu_conv2_relu"
  type: "ReLU"
  bottom: "Convolution12"
  top: "Convolution12"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res3_2_stu_eltsum"
  type: "Eltwise"
  bottom: "Convolution12"
  bottom: "Eltwise3"
  top: "Eltwise4"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "res4_1_stu_conv1_conv"
  type: "Convolution"
  bottom: "Eltwise4"
  top: "Convolution13"
  convolution_param {
    num_output: 128
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res4_1_stu_conv1_bn"
  type: "BatchNorm"
  bottom: "Convolution13"
  top: "Convolution13"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res4_1_stu_conv1_sc"
  type: "Scale"
  bottom: "Convolution13"
  top: "Convolution13"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res4_1_stu_conv1_relu"
  type: "ReLU"
  bottom: "Convolution13"
  top: "Convolution13"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res4_1_stu_conv2_conv"
  type: "Convolution"
  bottom: "Convolution13"
  top: "Convolution14"
  convolution_param {
    num_output: 128
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 2
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res4_1_stu_conv2_bn"
  type: "BatchNorm"
  bottom: "Convolution14"
  top: "Convolution14"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res4_1_stu_conv2_sc"
  type: "Scale"
  bottom: "Convolution14"
  top: "Convolution14"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res4_1_stu_conv2_relu"
  type: "ReLU"
  bottom: "Convolution14"
  top: "Convolution14"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res4_1_stu_projconv_conv"
  type: "Convolution"
  bottom: "Eltwise4"
  top: "Convolution15"
  convolution_param {
    num_output: 128
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 2
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res4_1_stu_projconv_bn"
  type: "BatchNorm"
  bottom: "Convolution15"
  top: "Convolution15"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res4_1_stu_projconv_sc"
  type: "Scale"
  bottom: "Convolution15"
  top: "Convolution15"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res4_1_stu_projconv_relu"
  type: "ReLU"
  bottom: "Convolution15"
  top: "Convolution15"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res4_1_stu_eltsum"
  type: "Eltwise"
  bottom: "Convolution14"
  bottom: "Convolution15"
  top: "Eltwise5"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "res4_2_stu_conv1_conv"
  type: "Convolution"
  bottom: "Eltwise5"
  top: "Convolution16"
  convolution_param {
    num_output: 128
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res4_2_stu_conv1_bn"
  type: "BatchNorm"
  bottom: "Convolution16"
  top: "Convolution16"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res4_2_stu_conv1_sc"
  type: "Scale"
  bottom: "Convolution16"
  top: "Convolution16"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res4_2_stu_conv1_relu"
  type: "ReLU"
  bottom: "Convolution16"
  top: "Convolution16"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res4_2_stu_conv2_conv"
  type: "Convolution"
  bottom: "Convolution16"
  top: "Convolution17"
  convolution_param {
    num_output: 128
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res4_2_stu_conv2_bn"
  type: "BatchNorm"
  bottom: "Convolution17"
  top: "Convolution17"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res4_2_stu_conv2_sc"
  type: "Scale"
  bottom: "Convolution17"
  top: "Convolution17"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res4_2_stu_conv2_relu"
  type: "ReLU"
  bottom: "Convolution17"
  top: "Convolution17"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res4_2_stu_eltsum"
  type: "Eltwise"
  bottom: "Convolution17"
  bottom: "Eltwise5"
  top: "Eltwise6"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "res5_1_stu_conv1_conv"
  type: "Convolution"
  bottom: "Eltwise6"
  top: "Convolution18"
  convolution_param {
    num_output: 192
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res5_1_stu_conv1_bn"
  type: "BatchNorm"
  bottom: "Convolution18"
  top: "Convolution18"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res5_1_stu_conv1_sc"
  type: "Scale"
  bottom: "Convolution18"
  top: "Convolution18"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res5_1_stu_conv1_relu"
  type: "ReLU"
  bottom: "Convolution18"
  top: "Convolution18"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res5_1_stu_conv2_conv"
  type: "Convolution"
  bottom: "Convolution18"
  top: "Convolution19"
  convolution_param {
    num_output: 192
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res5_1_stu_conv2_bn"
  type: "BatchNorm"
  bottom: "Convolution19"
  top: "Convolution19"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res5_1_stu_conv2_sc"
  type: "Scale"
  bottom: "Convolution19"
  top: "Convolution19"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res5_1_stu_conv2_relu"
  type: "ReLU"
  bottom: "Convolution19"
  top: "Convolution19"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res5_1_stu_projconv_conv"
  type: "Convolution"
  bottom: "Eltwise6"
  top: "Convolution20"
  convolution_param {
    num_output: 192
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res5_1_stu_projconv_bn"
  type: "BatchNorm"
  bottom: "Convolution20"
  top: "Convolution20"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res5_1_stu_projconv_sc"
  type: "Scale"
  bottom: "Convolution20"
  top: "Convolution20"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res5_1_stu_projconv_relu"
  type: "ReLU"
  bottom: "Convolution20"
  top: "Convolution20"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res5_1_stu_eltsum"
  type: "Eltwise"
  bottom: "Convolution19"
  bottom: "Convolution20"
  top: "Eltwise7"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "res5_2_stu_conv1_conv"
  type: "Convolution"
  bottom: "Eltwise7"
  top: "Convolution21"
  convolution_param {
    num_output: 192
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res5_2_stu_conv1_bn"
  type: "BatchNorm"
  bottom: "Convolution21"
  top: "Convolution21"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res5_2_stu_conv1_sc"
  type: "Scale"
  bottom: "Convolution21"
  top: "Convolution21"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res5_2_stu_conv1_relu"
  type: "ReLU"
  bottom: "Convolution21"
  top: "Convolution21"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res5_2_stu_conv2_conv"
  type: "Convolution"
  bottom: "Convolution21"
  top: "Convolution22"
  convolution_param {
    num_output: 192
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "res5_2_stu_conv2_bn"
  type: "BatchNorm"
  bottom: "Convolution22"
  top: "Convolution22"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "res5_2_stu_conv2_sc"
  type: "Scale"
  bottom: "Convolution22"
  top: "Convolution22"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "res5_2_stu_conv2_relu"
  type: "ReLU"
  bottom: "Convolution22"
  top: "Convolution22"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "res5_2_stu_eltsum"
  type: "Eltwise"
  bottom: "Convolution22"
  bottom: "Eltwise7"
  top: "Eltwise8"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "fcn_s32_pre_conv"
  type: "Convolution"
  bottom: "Eltwise8"
  top: "Convolution23"
  convolution_param {
    num_output: 128
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "fcn_s32_pre_bn"
  type: "BatchNorm"
  bottom: "Convolution23"
  top: "Convolution23"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "fcn_s32_pre_sc"
  type: "Scale"
  bottom: "Convolution23"
  top: "Convolution23"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "fcn_s32_pre_relu"
  type: "ReLU"
  bottom: "Convolution23"
  top: "Convolution23"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "fcn_s32_conv"
  type: "Convolution"
  bottom: "Convolution23"
  top: "Convolution24"
  convolution_param {
    num_output: 128
    bias_term: false
    pad: 2
    kernel_size: 5
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "fcn_s32_bn"
  type: "BatchNorm"
  bottom: "Convolution24"
  top: "Convolution24"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "fcn_s32_sc"
  type: "Scale"
  bottom: "Convolution24"
  top: "Convolution24"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}

layer {
  name: "deconv_s16"
  type: "Deconvolution"
  bottom: "Convolution24"
  top: "Interp1"
  param {
    lr_mult: 1
    decay_mult: 1
  }
  param {
    lr_mult: 1
    decay_mult: 0
  }
  convolution_param {
    num_output: 128
    pad: 1
    kernel_size: 4
    stride: 2
    bias_term: true
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}


layer {
  name: "lat_s16_conv_"
  type: "Convolution"
  bottom: "Eltwise4"
  top: "Convolution25"
  convolution_param {
    num_output: 128
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "lat_s16_bn_"
  type: "BatchNorm"
  bottom: "Convolution25"
  top: "Convolution25"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "lat_s16_sc_"
  type: "Scale"
  bottom: "Convolution25"
  top: "Convolution25"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "Eltwise9"
  type: "Eltwise"
  bottom: "Interp1"
  bottom: "Convolution25"
  top: "Eltwise9"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "ReLU24"
  type: "ReLU"
  bottom: "Eltwise9"
  top: "Eltwise9"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "fcn_s16_pre_conv"
  type: "Convolution"
  bottom: "Eltwise9"
  top: "Convolution26"
  convolution_param {
    num_output: 96
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "fcn_s16_pre_bn"
  type: "BatchNorm"
  bottom: "Convolution26"
  top: "Convolution26"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "fcn_s16_pre_sc"
  type: "Scale"
  bottom: "Convolution26"
  top: "Convolution26"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "fcn_s16_pre_relu"
  type: "ReLU"
  bottom: "Convolution26"
  top: "Convolution26"
  relu_param {
    negative_slope: 0.1
  }
}
layer {
  name: "fcn_s16_conv"
  type: "Convolution"
  bottom: "Convolution26"
  top: "Convolution27"
  convolution_param {
    num_output: 128
    bias_term: false
    pad: 2
    kernel_size: 5
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "fcn_s16_bn"
  type: "BatchNorm"
  bottom: "Convolution27"
  top: "Convolution27"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "fcn_s16_sc"
  type: "Scale"
  bottom: "Convolution27"
  top: "Convolution27"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}


layer {
  name: "deconv_s8"
  type: "Deconvolution"
  bottom: "Convolution27"
  top: "Interp2"
  param {
    lr_mult: 1
    decay_mult: 1
  }
  param {
    lr_mult: 1
    decay_mult: 0
  }
  convolution_param {
    num_output: 128
    pad: 1
    kernel_size: 4
    stride: 2
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}


layer {
  name: "lat_s8_conv_"
  type: "Convolution"
  bottom: "Eltwise2"
  top: "Convolution28"
  convolution_param {
    num_output: 128
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "lat_s8_bn_"
  type: "BatchNorm"
  bottom: "Convolution28"
  top: "Convolution28"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "lat_s8_sc_"
  type: "Scale"
  bottom: "Convolution28"
  top: "Convolution28"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "Eltwise10"
  type: "Eltwise"
  bottom: "Interp2"
  bottom: "Convolution28"
  top: "Eltwise10"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "ReLU26"
  type: "ReLU"
  bottom: "Eltwise10"
  top: "Eltwise10"
  relu_param {
    negative_slope: 0.1
  }
}



layer {
  name: "feat_pass_conv1"
  type: "Convolution"
  bottom: "Eltwise10"
  top: "feat_pass_conv1"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 1
    kernel_size: 3
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "feat_pass_conv1_bn"
  type: "BatchNorm"
  bottom: "feat_pass_conv1"
  top: "feat_pass_conv1"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "feat_pass_conv1_sc"
  type: "Scale"
  bottom: "feat_pass_conv1"
  top: "feat_pass_conv1"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "feat_pass_conv1_relu"
  type: "ReLU"
  bottom: "feat_pass_conv1"
  top: "feat_pass_conv1"
  relu_param {
    negative_slope: 0.1
  }
}


layer {
  name: "feat_pass_conv2"
  type: "Convolution"
  bottom: "feat_pass_conv1"
  top: "feat_pass_conv2"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 1
    kernel_size: 3
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}
layer {
  name: "feat_pass_conv2_bn"
  type: "BatchNorm"
  bottom: "feat_pass_conv2"
  top: "feat_pass_conv2"
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  param {
    lr_mult: 0
    decay_mult: 0
  }
  batch_norm_param {
    use_global_stats: true
    moving_average_fraction: 0.95
  }
}
layer {
  name: "feat_pass_conv2_sc"
  type: "Scale"
  bottom: "feat_pass_conv2"
  top: "feat_pass_conv2"
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  param {
    lr_mult: 1.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}
layer {
  name: "feat_pass_conv2_relu"
  type: "ReLU"
  bottom: "feat_pass_conv2"
  top: "feat_pass_conv2"
  relu_param {
    negative_slope: 0.1
  }
}





layer {
  name: "flow_out"
  type: "Convolution"
  bottom: "feat_pass_conv2"
  top: "class_out"
  param {
    lr_mult: 10
    decay_mult: 1
  }
  param {
    lr_mult: 20
    decay_mult: 1
  }
  convolution_param {
    num_output: 2
    bias_term: true
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
      type: "msra"
    }
    bias_filler {
      type: "constant"
    }
  }
}



################################### prob  ######################################
layer {
  name: "class_out_sc"
  type: "Scale"
  bottom: "class_out"
  top: "class_out_sc"
  param {
    lr_mult: 0.0
    decay_mult: 0
  }
  param {
    lr_mult: 0.0
    decay_mult: 0
  }
  scale_param {
    filler {
      value: 1
    }
    bias_term: true
    bias_filler {
      value: 0
    }
  }
}

