xiezheng-cs / PytorchToCaffe

A tool for PytorchToCaffe,fork form https://github.com/xxradon/PytorchToCaffe
MIT License
11 stars 2 forks source link

would you please provide your converted FaceFeatherNetB_se_prelu_checkpoint4.prototxt #6

Open vgg4resnet opened 3 years ago

vgg4resnet commented 3 years ago

HI, I successed in dumping out the prototxt and caffemodel ,I am having problems when loading prototxt and caffemodel in pycaffe interface , image or have you met the same problems ,thanks in advanced

vgg4resnet commented 3 years ago

by changing matmul with caffe scale may solve problem? pay an attention to two blobs shape when caffe is doing the scale operation?

name: "Semobile"
layer {
  name: "blob1"
  type: "Input"
  top: "blob1"
  input_param {
    shape {
      dim: 1
      dim: 3
      dim: 96
      dim: 96
    }
  }
}
layer {
  name: "conv1"
  type: "Convolution"
  bottom: "blob1"
  top: "conv_blob1"
  convolution_param {
    num_output: 32
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 1
    stride: 2
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm1"
  type: "BatchNorm"
  bottom: "conv_blob1"
  top: "batch_norm_blob1"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale1"
  type: "Scale"
  bottom: "batch_norm_blob1"
  top: "batch_norm_blob1"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu1"
  type: "ReLU"
  bottom: "batch_norm_blob1"
  top: "relu_blob1"
}
layer {
  name: "ave_pool1"
  type: "Pooling"
  bottom: "relu_blob1"
  top: "ave_pool_blob1"
  pooling_param {
    pool: AVE
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "batch_norm2"
  type: "BatchNorm"
  bottom: "ave_pool_blob1"
  top: "batch_norm_blob2"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale2"
  type: "Scale"
  bottom: "batch_norm_blob2"
  top: "batch_norm_blob2"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "conv2"
  type: "Convolution"
  bottom: "batch_norm_blob2"
  top: "conv_blob2"
  convolution_param {
    num_output: 32
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "conv3"
  type: "Convolution"
  bottom: "relu_blob1"
  top: "conv_blob3"
  convolution_param {
    num_output: 32
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 32
    stride: 2
    weight_filler {
      type: "xavier"
    }
    engine: CAFFE
    dilation: 1
  }
}
layer {
  name: "batch_norm3"
  type: "BatchNorm"
  bottom: "conv_blob3"
  top: "batch_norm_blob3"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale3"
  type: "Scale"
  bottom: "batch_norm_blob3"
  top: "batch_norm_blob3"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu2"
  type: "ReLU"
  bottom: "batch_norm_blob3"
  top: "relu_blob2"
}
layer {
  name: "conv4"
  type: "Convolution"
  bottom: "relu_blob2"
  top: "conv_blob4"
  convolution_param {
    num_output: 32
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm4"
  type: "BatchNorm"
  bottom: "conv_blob4"
  top: "batch_norm_blob4"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale4"
  type: "Scale"
  bottom: "batch_norm_blob4"
  top: "batch_norm_blob4"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "add1"
  type: "Eltwise"
  bottom: "conv_blob2"
  bottom: "batch_norm_blob4"
  top: "add_blob1"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "ave_pool2"
  type: "Pooling"
  bottom: "add_blob1"
  top: "ave_pool_blob2"
  pooling_param {
    pool: AVE
    kernel_size: 24
    stride: 24
  }
}
layer {
  name: "conv5"
  type: "Convolution"
  bottom: "ave_pool_blob2"
  top: "conv_blob5"
  convolution_param {
    num_output: 2
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "relu3"
  type: "ReLU"
  bottom: "conv_blob5"
  top: "relu_blob3"
}
layer {
  name: "conv6"
  type: "Convolution"
  bottom: "relu_blob3"
  top: "conv_blob6"
  convolution_param {
    num_output: 32
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "sigmoid1"
  type: "Sigmoid"
  bottom: "conv_blob6"
  top: "sigmoid_blob1"
}
layer {
  name: "view1"
  type: "Reshape"
  bottom: "sigmoid_blob1"
  top: "view_blob1"
  reshape_param {
    shape {
      dim: 0
      dim: 32
    }
  }
}
layer {
  name: "view2"
  type: "Reshape"
  bottom: "sigmoid_blob1"
  top: "view_blob2"
  reshape_param {
    shape {
      dim: 0
      dim: 32
      dim: 1
      dim: 1
    }
  }
}
layer {
  name: "mul1"
  type: "Scale"
  bottom: "add_blob1"
  bottom: "view_blob1"
  top: "mul_blob1"
  scale_param {
    axis: 0
    bias_term: false
  }
}
layer {
  name: "ave_pool3"
  type: "Pooling"
  bottom: "mul_blob1"
  top: "ave_pool_blob3"
  pooling_param {
    pool: AVE
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "batch_norm5"
  type: "BatchNorm"
  bottom: "ave_pool_blob3"
  top: "batch_norm_blob5"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale5"
  type: "Scale"
  bottom: "batch_norm_blob5"
  top: "batch_norm_blob5"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "conv7"
  type: "Convolution"
  bottom: "batch_norm_blob5"
  top: "conv_blob7"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "conv8"
  type: "Convolution"
  bottom: "mul_blob1"
  top: "conv_blob8"
  convolution_param {
    num_output: 192
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm6"
  type: "BatchNorm"
  bottom: "conv_blob8"
  top: "batch_norm_blob6"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale6"
  type: "Scale"
  bottom: "batch_norm_blob6"
  top: "batch_norm_blob6"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu4"
  type: "ReLU"
  bottom: "batch_norm_blob6"
  top: "relu_blob4"
}
layer {
  name: "conv9"
  type: "Convolution"
  bottom: "relu_blob4"
  top: "conv_blob9"
  convolution_param {
    num_output: 192
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 192
    stride: 2
    weight_filler {
      type: "xavier"
    }
    engine: CAFFE
    dilation: 1
  }
}
layer {
  name: "batch_norm7"
  type: "BatchNorm"
  bottom: "conv_blob9"
  top: "batch_norm_blob7"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale7"
  type: "Scale"
  bottom: "batch_norm_blob7"
  top: "batch_norm_blob7"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu5"
  type: "ReLU"
  bottom: "batch_norm_blob7"
  top: "relu_blob5"
}
layer {
  name: "conv10"
  type: "Convolution"
  bottom: "relu_blob5"
  top: "conv_blob10"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm8"
  type: "BatchNorm"
  bottom: "conv_blob10"
  top: "batch_norm_blob8"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale8"
  type: "Scale"
  bottom: "batch_norm_blob8"
  top: "batch_norm_blob8"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "add2"
  type: "Eltwise"
  bottom: "conv_blob7"
  bottom: "batch_norm_blob8"
  top: "add_blob2"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "conv11"
  type: "Convolution"
  bottom: "add_blob2"
  top: "conv_blob11"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm9"
  type: "BatchNorm"
  bottom: "conv_blob11"
  top: "batch_norm_blob9"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale9"
  type: "Scale"
  bottom: "batch_norm_blob9"
  top: "batch_norm_blob9"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu6"
  type: "ReLU"
  bottom: "batch_norm_blob9"
  top: "relu_blob6"
}
layer {
  name: "conv12"
  type: "Convolution"
  bottom: "relu_blob6"
  top: "conv_blob12"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 384
    stride: 1
    weight_filler {
      type: "xavier"
    }
    engine: CAFFE
    dilation: 1
  }
}
layer {
  name: "batch_norm10"
  type: "BatchNorm"
  bottom: "conv_blob12"
  top: "batch_norm_blob10"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale10"
  type: "Scale"
  bottom: "batch_norm_blob10"
  top: "batch_norm_blob10"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu7"
  type: "ReLU"
  bottom: "batch_norm_blob10"
  top: "relu_blob7"
}
layer {
  name: "conv13"
  type: "Convolution"
  bottom: "relu_blob7"
  top: "conv_blob13"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm11"
  type: "BatchNorm"
  bottom: "conv_blob13"
  top: "batch_norm_blob11"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale11"
  type: "Scale"
  bottom: "batch_norm_blob11"
  top: "batch_norm_blob11"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "add3"
  type: "Eltwise"
  bottom: "add_blob2"
  bottom: "batch_norm_blob11"
  top: "add_blob3"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "ave_pool4"
  type: "Pooling"
  bottom: "add_blob3"
  top: "ave_pool_blob4"
  pooling_param {
    pool: AVE
    kernel_size: 12
    stride: 12
  }
}
layer {
  name: "conv14"
  type: "Convolution"
  bottom: "ave_pool_blob4"
  top: "conv_blob14"
  convolution_param {
    num_output: 4
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "relu8"
  type: "ReLU"
  bottom: "conv_blob14"
  top: "relu_blob8"
}
layer {
  name: "conv15"
  type: "Convolution"
  bottom: "relu_blob8"
  top: "conv_blob15"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "sigmoid2"
  type: "Sigmoid"
  bottom: "conv_blob15"
  top: "sigmoid_blob2"
}
layer {
  name: "view3"
  type: "Reshape"
  bottom: "sigmoid_blob2"
  top: "view_blob3"
  reshape_param {
    shape {
      dim: 0
      dim: 64
    }
  }
}
layer {
  name: "view4"
  type: "Reshape"
  bottom: "sigmoid_blob2"
  top: "view_blob4"
  reshape_param {
    shape {
      dim: 0
      dim: 64
      dim: 1
      dim: 1
    }
  }
}
layer {
  name: "mul2"
  type: "Scale"
  bottom: "add_blob3"
  bottom: "view_blob3"
  top: "mul_blob2"
  scale_param {
    axis: 0
    bias_term: false
  }
}
layer {
  name: "ave_pool5"
  type: "Pooling"
  bottom: "mul_blob2"
  top: "ave_pool_blob5"
  pooling_param {
    pool: AVE
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "batch_norm12"
  type: "BatchNorm"
  bottom: "ave_pool_blob5"
  top: "batch_norm_blob12"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale12"
  type: "Scale"
  bottom: "batch_norm_blob12"
  top: "batch_norm_blob12"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "conv16"
  type: "Convolution"
  bottom: "batch_norm_blob12"
  top: "conv_blob16"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "conv17"
  type: "Convolution"
  bottom: "mul_blob2"
  top: "conv_blob17"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm13"
  type: "BatchNorm"
  bottom: "conv_blob17"
  top: "batch_norm_blob13"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale13"
  type: "Scale"
  bottom: "batch_norm_blob13"
  top: "batch_norm_blob13"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu9"
  type: "ReLU"
  bottom: "batch_norm_blob13"
  top: "relu_blob9"
}
layer {
  name: "conv18"
  type: "Convolution"
  bottom: "relu_blob9"
  top: "conv_blob18"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 384
    stride: 2
    weight_filler {
      type: "xavier"
    }
    engine: CAFFE
    dilation: 1
  }
}
layer {
  name: "batch_norm14"
  type: "BatchNorm"
  bottom: "conv_blob18"
  top: "batch_norm_blob14"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale14"
  type: "Scale"
  bottom: "batch_norm_blob14"
  top: "batch_norm_blob14"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu10"
  type: "ReLU"
  bottom: "batch_norm_blob14"
  top: "relu_blob10"
}
layer {
  name: "conv19"
  type: "Convolution"
  bottom: "relu_blob10"
  top: "conv_blob19"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm15"
  type: "BatchNorm"
  bottom: "conv_blob19"
  top: "batch_norm_blob15"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale15"
  type: "Scale"
  bottom: "batch_norm_blob15"
  top: "batch_norm_blob15"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "add4"
  type: "Eltwise"
  bottom: "conv_blob16"
  bottom: "batch_norm_blob15"
  top: "add_blob4"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "conv20"
  type: "Convolution"
  bottom: "add_blob4"
  top: "conv_blob20"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm16"
  type: "BatchNorm"
  bottom: "conv_blob20"
  top: "batch_norm_blob16"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale16"
  type: "Scale"
  bottom: "batch_norm_blob16"
  top: "batch_norm_blob16"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu11"
  type: "ReLU"
  bottom: "batch_norm_blob16"
  top: "relu_blob11"
}
layer {
  name: "conv21"
  type: "Convolution"
  bottom: "relu_blob11"
  top: "conv_blob21"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 384
    stride: 1
    weight_filler {
      type: "xavier"
    }
    engine: CAFFE
    dilation: 1
  }
}
layer {
  name: "batch_norm17"
  type: "BatchNorm"
  bottom: "conv_blob21"
  top: "batch_norm_blob17"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale17"
  type: "Scale"
  bottom: "batch_norm_blob17"
  top: "batch_norm_blob17"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu12"
  type: "ReLU"
  bottom: "batch_norm_blob17"
  top: "relu_blob12"
}
layer {
  name: "conv22"
  type: "Convolution"
  bottom: "relu_blob12"
  top: "conv_blob22"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm18"
  type: "BatchNorm"
  bottom: "conv_blob22"
  top: "batch_norm_blob18"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale18"
  type: "Scale"
  bottom: "batch_norm_blob18"
  top: "batch_norm_blob18"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "add5"
  type: "Eltwise"
  bottom: "add_blob4"
  bottom: "batch_norm_blob18"
  top: "add_blob5"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "conv23"
  type: "Convolution"
  bottom: "add_blob5"
  top: "conv_blob23"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm19"
  type: "BatchNorm"
  bottom: "conv_blob23"
  top: "batch_norm_blob19"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale19"
  type: "Scale"
  bottom: "batch_norm_blob19"
  top: "batch_norm_blob19"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu13"
  type: "ReLU"
  bottom: "batch_norm_blob19"
  top: "relu_blob13"
}
layer {
  name: "conv24"
  type: "Convolution"
  bottom: "relu_blob13"
  top: "conv_blob24"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 384
    stride: 1
    weight_filler {
      type: "xavier"
    }
    engine: CAFFE
    dilation: 1
  }
}
layer {
  name: "batch_norm20"
  type: "BatchNorm"
  bottom: "conv_blob24"
  top: "batch_norm_blob20"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale20"
  type: "Scale"
  bottom: "batch_norm_blob20"
  top: "batch_norm_blob20"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu14"
  type: "ReLU"
  bottom: "batch_norm_blob20"
  top: "relu_blob14"
}
layer {
  name: "conv25"
  type: "Convolution"
  bottom: "relu_blob14"
  top: "conv_blob25"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm21"
  type: "BatchNorm"
  bottom: "conv_blob25"
  top: "batch_norm_blob21"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale21"
  type: "Scale"
  bottom: "batch_norm_blob21"
  top: "batch_norm_blob21"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "add6"
  type: "Eltwise"
  bottom: "add_blob5"
  bottom: "batch_norm_blob21"
  top: "add_blob6"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "conv26"
  type: "Convolution"
  bottom: "add_blob6"
  top: "conv_blob26"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm22"
  type: "BatchNorm"
  bottom: "conv_blob26"
  top: "batch_norm_blob22"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale22"
  type: "Scale"
  bottom: "batch_norm_blob22"
  top: "batch_norm_blob22"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu15"
  type: "ReLU"
  bottom: "batch_norm_blob22"
  top: "relu_blob15"
}
layer {
  name: "conv27"
  type: "Convolution"
  bottom: "relu_blob15"
  top: "conv_blob27"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 384
    stride: 1
    weight_filler {
      type: "xavier"
    }
    engine: CAFFE
    dilation: 1
  }
}
layer {
  name: "batch_norm23"
  type: "BatchNorm"
  bottom: "conv_blob27"
  top: "batch_norm_blob23"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale23"
  type: "Scale"
  bottom: "batch_norm_blob23"
  top: "batch_norm_blob23"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu16"
  type: "ReLU"
  bottom: "batch_norm_blob23"
  top: "relu_blob16"
}
layer {
  name: "conv28"
  type: "Convolution"
  bottom: "relu_blob16"
  top: "conv_blob28"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm24"
  type: "BatchNorm"
  bottom: "conv_blob28"
  top: "batch_norm_blob24"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale24"
  type: "Scale"
  bottom: "batch_norm_blob24"
  top: "batch_norm_blob24"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "add7"
  type: "Eltwise"
  bottom: "add_blob6"
  bottom: "batch_norm_blob24"
  top: "add_blob7"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "conv29"
  type: "Convolution"
  bottom: "add_blob7"
  top: "conv_blob29"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm25"
  type: "BatchNorm"
  bottom: "conv_blob29"
  top: "batch_norm_blob25"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale25"
  type: "Scale"
  bottom: "batch_norm_blob25"
  top: "batch_norm_blob25"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu17"
  type: "ReLU"
  bottom: "batch_norm_blob25"
  top: "relu_blob17"
}
layer {
  name: "conv30"
  type: "Convolution"
  bottom: "relu_blob17"
  top: "conv_blob30"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 384
    stride: 1
    weight_filler {
      type: "xavier"
    }
    engine: CAFFE
    dilation: 1
  }
}
layer {
  name: "batch_norm26"
  type: "BatchNorm"
  bottom: "conv_blob30"
  top: "batch_norm_blob26"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale26"
  type: "Scale"
  bottom: "batch_norm_blob26"
  top: "batch_norm_blob26"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu18"
  type: "ReLU"
  bottom: "batch_norm_blob26"
  top: "relu_blob18"
}
layer {
  name: "conv31"
  type: "Convolution"
  bottom: "relu_blob18"
  top: "conv_blob31"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm27"
  type: "BatchNorm"
  bottom: "conv_blob31"
  top: "batch_norm_blob27"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale27"
  type: "Scale"
  bottom: "batch_norm_blob27"
  top: "batch_norm_blob27"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "add8"
  type: "Eltwise"
  bottom: "add_blob7"
  bottom: "batch_norm_blob27"
  top: "add_blob8"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "conv32"
  type: "Convolution"
  bottom: "add_blob8"
  top: "conv_blob32"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm28"
  type: "BatchNorm"
  bottom: "conv_blob32"
  top: "batch_norm_blob28"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale28"
  type: "Scale"
  bottom: "batch_norm_blob28"
  top: "batch_norm_blob28"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu19"
  type: "ReLU"
  bottom: "batch_norm_blob28"
  top: "relu_blob19"
}
layer {
  name: "conv33"
  type: "Convolution"
  bottom: "relu_blob19"
  top: "conv_blob33"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 384
    stride: 1
    weight_filler {
      type: "xavier"
    }
    engine: CAFFE
    dilation: 1
  }
}
layer {
  name: "batch_norm29"
  type: "BatchNorm"
  bottom: "conv_blob33"
  top: "batch_norm_blob29"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale29"
  type: "Scale"
  bottom: "batch_norm_blob29"
  top: "batch_norm_blob29"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu20"
  type: "ReLU"
  bottom: "batch_norm_blob29"
  top: "relu_blob20"
}
layer {
  name: "conv34"
  type: "Convolution"
  bottom: "relu_blob20"
  top: "conv_blob34"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm30"
  type: "BatchNorm"
  bottom: "conv_blob34"
  top: "batch_norm_blob30"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale30"
  type: "Scale"
  bottom: "batch_norm_blob30"
  top: "batch_norm_blob30"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "add9"
  type: "Eltwise"
  bottom: "add_blob8"
  bottom: "batch_norm_blob30"
  top: "add_blob9"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "ave_pool6"
  type: "Pooling"
  bottom: "add_blob9"
  top: "ave_pool_blob6"
  pooling_param {
    pool: AVE
    kernel_size: 6
    stride: 6
  }
}
layer {
  name: "conv35"
  type: "Convolution"
  bottom: "ave_pool_blob6"
  top: "conv_blob35"
  convolution_param {
    num_output: 4
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "relu21"
  type: "ReLU"
  bottom: "conv_blob35"
  top: "relu_blob21"
}
layer {
  name: "conv36"
  type: "Convolution"
  bottom: "relu_blob21"
  top: "conv_blob36"
  convolution_param {
    num_output: 64
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "sigmoid3"
  type: "Sigmoid"
  bottom: "conv_blob36"
  top: "sigmoid_blob3"
}
layer {
  name: "view5"
  type: "Reshape"
  bottom: "sigmoid_blob3"
  top: "view_blob5"
  reshape_param {
    shape {
      dim: 0
      dim: 64
    }
  }
}
layer {
  name: "view6"
  type: "Reshape"
  bottom: "sigmoid_blob3"
  top: "view_blob6"
  reshape_param {
    shape {
      dim: 0
      dim: 64
      dim: 1
      dim: 1
    }
  }
}
layer {
  name: "mul3"
  type: "Scale"
  bottom: "add_blob9"
  bottom: "view_blob5"
  top: "mul_blob3"
  scale_param {
    axis: 0
    bias_term: false
  }
}
layer {
  name: "ave_pool7"
  type: "Pooling"
  bottom: "mul_blob3"
  top: "ave_pool_blob7"
  pooling_param {
    pool: AVE
    kernel_size: 2
    stride: 2
  }
}
layer {
  name: "batch_norm31"
  type: "BatchNorm"
  bottom: "ave_pool_blob7"
  top: "batch_norm_blob31"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale31"
  type: "Scale"
  bottom: "batch_norm_blob31"
  top: "batch_norm_blob31"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "conv37"
  type: "Convolution"
  bottom: "batch_norm_blob31"
  top: "conv_blob37"
  convolution_param {
    num_output: 96
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "conv38"
  type: "Convolution"
  bottom: "mul_blob3"
  top: "conv_blob38"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm32"
  type: "BatchNorm"
  bottom: "conv_blob38"
  top: "batch_norm_blob32"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale32"
  type: "Scale"
  bottom: "batch_norm_blob32"
  top: "batch_norm_blob32"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu22"
  type: "ReLU"
  bottom: "batch_norm_blob32"
  top: "relu_blob22"
}
layer {
  name: "conv39"
  type: "Convolution"
  bottom: "relu_blob22"
  top: "conv_blob39"
  convolution_param {
    num_output: 384
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 384
    stride: 2
    weight_filler {
      type: "xavier"
    }
    engine: CAFFE
    dilation: 1
  }
}
layer {
  name: "batch_norm33"
  type: "BatchNorm"
  bottom: "conv_blob39"
  top: "batch_norm_blob33"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale33"
  type: "Scale"
  bottom: "batch_norm_blob33"
  top: "batch_norm_blob33"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu23"
  type: "ReLU"
  bottom: "batch_norm_blob33"
  top: "relu_blob23"
}
layer {
  name: "conv40"
  type: "Convolution"
  bottom: "relu_blob23"
  top: "conv_blob40"
  convolution_param {
    num_output: 96
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm34"
  type: "BatchNorm"
  bottom: "conv_blob40"
  top: "batch_norm_blob34"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale34"
  type: "Scale"
  bottom: "batch_norm_blob34"
  top: "batch_norm_blob34"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "add10"
  type: "Eltwise"
  bottom: "conv_blob37"
  bottom: "batch_norm_blob34"
  top: "add_blob10"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "conv41"
  type: "Convolution"
  bottom: "add_blob10"
  top: "conv_blob41"
  convolution_param {
    num_output: 576
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm35"
  type: "BatchNorm"
  bottom: "conv_blob41"
  top: "batch_norm_blob35"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale35"
  type: "Scale"
  bottom: "batch_norm_blob35"
  top: "batch_norm_blob35"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu24"
  type: "ReLU"
  bottom: "batch_norm_blob35"
  top: "relu_blob24"
}
layer {
  name: "conv42"
  type: "Convolution"
  bottom: "relu_blob24"
  top: "conv_blob42"
  convolution_param {
    num_output: 576
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 576
    stride: 1
    weight_filler {
      type: "xavier"
    }
    engine: CAFFE
    dilation: 1
  }
}
layer {
  name: "batch_norm36"
  type: "BatchNorm"
  bottom: "conv_blob42"
  top: "batch_norm_blob36"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale36"
  type: "Scale"
  bottom: "batch_norm_blob36"
  top: "batch_norm_blob36"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu25"
  type: "ReLU"
  bottom: "batch_norm_blob36"
  top: "relu_blob25"
}
layer {
  name: "conv43"
  type: "Convolution"
  bottom: "relu_blob25"
  top: "conv_blob43"
  convolution_param {
    num_output: 96
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm37"
  type: "BatchNorm"
  bottom: "conv_blob43"
  top: "batch_norm_blob37"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale37"
  type: "Scale"
  bottom: "batch_norm_blob37"
  top: "batch_norm_blob37"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "add11"
  type: "Eltwise"
  bottom: "add_blob10"
  bottom: "batch_norm_blob37"
  top: "add_blob11"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "conv44"
  type: "Convolution"
  bottom: "add_blob11"
  top: "conv_blob44"
  convolution_param {
    num_output: 576
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm38"
  type: "BatchNorm"
  bottom: "conv_blob44"
  top: "batch_norm_blob38"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale38"
  type: "Scale"
  bottom: "batch_norm_blob38"
  top: "batch_norm_blob38"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu26"
  type: "ReLU"
  bottom: "batch_norm_blob38"
  top: "relu_blob26"
}
layer {
  name: "conv45"
  type: "Convolution"
  bottom: "relu_blob26"
  top: "conv_blob45"
  convolution_param {
    num_output: 576
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 576
    stride: 1
    weight_filler {
      type: "xavier"
    }
    engine: CAFFE
    dilation: 1
  }
}
layer {
  name: "batch_norm39"
  type: "BatchNorm"
  bottom: "conv_blob45"
  top: "batch_norm_blob39"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale39"
  type: "Scale"
  bottom: "batch_norm_blob39"
  top: "batch_norm_blob39"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "relu27"
  type: "ReLU"
  bottom: "batch_norm_blob39"
  top: "relu_blob27"
}
layer {
  name: "conv46"
  type: "Convolution"
  bottom: "relu_blob27"
  top: "conv_blob46"
  convolution_param {
    num_output: 96
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "batch_norm40"
  type: "BatchNorm"
  bottom: "conv_blob46"
  top: "batch_norm_blob40"
  batch_norm_param {
    use_global_stats: true
    eps: 1e-05
  }
}
layer {
  name: "bn_scale40"
  type: "Scale"
  bottom: "batch_norm_blob40"
  top: "batch_norm_blob40"
  scale_param {
    bias_term: true
  }
}
layer {
  name: "add12"
  type: "Eltwise"
  bottom: "add_blob11"
  bottom: "batch_norm_blob40"
  top: "add_blob12"
  eltwise_param {
    operation: SUM
  }
}
layer {
  name: "ave_pool8"
  type: "Pooling"
  bottom: "add_blob12"
  top: "ave_pool_blob8"
  pooling_param {
    pool: AVE
    kernel_size: 3
    stride: 3
  }
}
layer {
  name: "conv47"
  type: "Convolution"
  bottom: "ave_pool_blob8"
  top: "conv_blob47"
  convolution_param {
    num_output: 6
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "relu28"
  type: "ReLU"
  bottom: "conv_blob47"
  top: "relu_blob28"
}
layer {
  name: "conv48"
  type: "Convolution"
  bottom: "relu_blob28"
  top: "conv_blob48"
  convolution_param {
    num_output: 96
    bias_term: false
    pad: 0
    kernel_size: 1
    group: 1
    stride: 1
    weight_filler {
      type: "xavier"
    }
    dilation: 1
  }
}
layer {
  name: "sigmoid4"
  type: "Sigmoid"
  bottom: "conv_blob48"
  top: "sigmoid_blob4"
}
layer {
  name: "view7"
  type: "Reshape"
  bottom: "sigmoid_blob4"
  top: "view_blob7"
  reshape_param {
    shape {
      dim: 0
      dim: 96
    }
  }
}
layer {
  name: "view8"
  type: "Reshape"
  bottom: "sigmoid_blob4"
  top: "view_blob8"
  reshape_param {
    shape {
      dim: 0
      dim: 96
      dim: 1
      dim: 1
    }
  }
}
layer {
  name: "mul4"
  type: "Scale"
  bottom: "add_blob12"
  bottom: "view_blob7"
  top: "mul_blob4"
  scale_param {
    axis: 0
    bias_term: false
  }
}
layer {
  name: "conv49"
  type: "Convolution"
  bottom: "mul_blob4"
  top: "conv_blob49"
  convolution_param {
    num_output: 96
    bias_term: false
    pad: 1
    kernel_size: 3
    group: 96
    stride: 2
    weight_filler {
      type: "xavier"
    }
    engine: CAFFE
    dilation: 1
  }
}