name: "pytorch"
input: "data"
input_dim: 1
input_dim: 3
input_dim: 257
input_dim: 193

layer {
    name: "ConvNdBackward1"
    type: "Convolution"
    bottom: "data"
    top: "ConvNdBackward1"
    convolution_param {
        num_output: 16
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 2
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward2_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward1"
    top: "BatchNormBackward2"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward2_scale"
    type: "Scale"
    bottom: "BatchNormBackward2"
    top: "BatchNormBackward2"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward3"
    type: "ReLU"
    bottom: "BatchNormBackward2"
    top: "BatchNormBackward2"
}
layer {
    name: "ConvNdBackward4"
    type: "Convolution"
    bottom: "BatchNormBackward2"
    top: "ConvNdBackward4"
    convolution_param {
        num_output: 32
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 2
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward5_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward4"
    top: "BatchNormBackward5"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward5_scale"
    type: "Scale"
    bottom: "BatchNormBackward5"
    top: "BatchNormBackward5"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward6"
    type: "ReLU"
    bottom: "BatchNormBackward5"
    top: "BatchNormBackward5"
}
layer {
    name: "ConvNdBackward7"
    type: "Convolution"
    bottom: "BatchNormBackward5"
    top: "ConvNdBackward7"
    convolution_param {
        num_output: 32
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward8_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward7"
    top: "BatchNormBackward8"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward8_scale"
    type: "Scale"
    bottom: "BatchNormBackward8"
    top: "BatchNormBackward8"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ConvNdBackward10"
    type: "Convolution"
    bottom: "BatchNormBackward2"
    top: "ConvNdBackward10"
    convolution_param {
        num_output: 32
        pad_h: 0
        pad_w: 0
        kernel_h: 1
        kernel_w: 1
        stride: 2
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward11_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward10"
    top: "BatchNormBackward11"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward11_scale"
    type: "Scale"
    bottom: "BatchNormBackward11"
    top: "BatchNormBackward11"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "AddBackward12"
    type: "Eltwise"
    bottom: "BatchNormBackward8"
    bottom: "BatchNormBackward11"
    top: "AddBackward12"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ThresholdBackward13"
    type: "ReLU"
    bottom: "AddBackward12"
    top: "AddBackward12"
}
layer {
    name: "ConvNdBackward14"
    type: "Convolution"
    bottom: "AddBackward12"
    top: "ConvNdBackward14"
    convolution_param {
        num_output: 32
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward15_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward14"
    top: "BatchNormBackward15"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward15_scale"
    type: "Scale"
    bottom: "BatchNormBackward15"
    top: "BatchNormBackward15"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward16"
    type: "ReLU"
    bottom: "BatchNormBackward15"
    top: "BatchNormBackward15"
}
layer {
    name: "ConvNdBackward17"
    type: "Convolution"
    bottom: "BatchNormBackward15"
    top: "ConvNdBackward17"
    convolution_param {
        num_output: 32
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward18_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward17"
    top: "BatchNormBackward18"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward18_scale"
    type: "Scale"
    bottom: "BatchNormBackward18"
    top: "BatchNormBackward18"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "AddBackward20"
    type: "Eltwise"
    bottom: "BatchNormBackward18"
    bottom: "AddBackward12"
    top: "AddBackward20"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ThresholdBackward21"
    type: "ReLU"
    bottom: "AddBackward20"
    top: "AddBackward20"
}
layer {
    name: "ConvNdBackward22"
    type: "Convolution"
    bottom: "AddBackward20"
    top: "ConvNdBackward22"
    convolution_param {
        num_output: 32
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 2
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward23_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward22"
    top: "BatchNormBackward23"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward23_scale"
    type: "Scale"
    bottom: "BatchNormBackward23"
    top: "BatchNormBackward23"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward24"
    type: "ReLU"
    bottom: "BatchNormBackward23"
    top: "BatchNormBackward23"
}
layer {
    name: "ConvNdBackward25"
    type: "Convolution"
    bottom: "BatchNormBackward23"
    top: "ConvNdBackward25"
    convolution_param {
        num_output: 32
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward26_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward25"
    top: "BatchNormBackward26"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward26_scale"
    type: "Scale"
    bottom: "BatchNormBackward26"
    top: "BatchNormBackward26"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ConvNdBackward28"
    type: "Convolution"
    bottom: "AddBackward20"
    top: "ConvNdBackward28"
    convolution_param {
        num_output: 32
        pad_h: 0
        pad_w: 0
        kernel_h: 1
        kernel_w: 1
        stride: 2
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward29_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward28"
    top: "BatchNormBackward29"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward29_scale"
    type: "Scale"
    bottom: "BatchNormBackward29"
    top: "BatchNormBackward29"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "AddBackward30"
    type: "Eltwise"
    bottom: "BatchNormBackward26"
    bottom: "BatchNormBackward29"
    top: "AddBackward30"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ThresholdBackward31"
    type: "ReLU"
    bottom: "AddBackward30"
    top: "AddBackward30"
}
layer {
    name: "ConvNdBackward32"
    type: "Convolution"
    bottom: "AddBackward30"
    top: "ConvNdBackward32"
    convolution_param {
        num_output: 32
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward33_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward32"
    top: "BatchNormBackward33"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward33_scale"
    type: "Scale"
    bottom: "BatchNormBackward33"
    top: "BatchNormBackward33"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward34"
    type: "ReLU"
    bottom: "BatchNormBackward33"
    top: "BatchNormBackward33"
}
layer {
    name: "ConvNdBackward35"
    type: "Convolution"
    bottom: "BatchNormBackward33"
    top: "ConvNdBackward35"
    convolution_param {
        num_output: 32
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward36_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward35"
    top: "BatchNormBackward36"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward36_scale"
    type: "Scale"
    bottom: "BatchNormBackward36"
    top: "BatchNormBackward36"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "AddBackward38"
    type: "Eltwise"
    bottom: "BatchNormBackward36"
    bottom: "AddBackward30"
    top: "AddBackward38"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ThresholdBackward39"
    type: "ReLU"
    bottom: "AddBackward38"
    top: "AddBackward38"
}
layer {
    name: "ConvNdBackward40"
    type: "Convolution"
    bottom: "AddBackward38"
    top: "ConvNdBackward40"
    convolution_param {
        num_output: 64
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward41_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward40"
    top: "BatchNormBackward41"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward41_scale"
    type: "Scale"
    bottom: "BatchNormBackward41"
    top: "BatchNormBackward41"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward42"
    type: "ReLU"
    bottom: "BatchNormBackward41"
    top: "BatchNormBackward41"
}
layer {
    name: "ConvNdBackward43"
    type: "Convolution"
    bottom: "BatchNormBackward41"
    top: "ConvNdBackward43"
    convolution_param {
        num_output: 64
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward44_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward43"
    top: "BatchNormBackward44"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward44_scale"
    type: "Scale"
    bottom: "BatchNormBackward44"
    top: "BatchNormBackward44"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ConvNdBackward46"
    type: "Convolution"
    bottom: "AddBackward38"
    top: "ConvNdBackward46"
    convolution_param {
        num_output: 64
        pad_h: 0
        pad_w: 0
        kernel_h: 1
        kernel_w: 1
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward47_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward46"
    top: "BatchNormBackward47"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward47_scale"
    type: "Scale"
    bottom: "BatchNormBackward47"
    top: "BatchNormBackward47"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "AddBackward48"
    type: "Eltwise"
    bottom: "BatchNormBackward44"
    bottom: "BatchNormBackward47"
    top: "AddBackward48"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ThresholdBackward49"
    type: "ReLU"
    bottom: "AddBackward48"
    top: "AddBackward48"
}
layer {
    name: "ConvNdBackward50"
    type: "Convolution"
    bottom: "AddBackward48"
    top: "ConvNdBackward50"
    convolution_param {
        num_output: 64
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward51_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward50"
    top: "BatchNormBackward51"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward51_scale"
    type: "Scale"
    bottom: "BatchNormBackward51"
    top: "BatchNormBackward51"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward52"
    type: "ReLU"
    bottom: "BatchNormBackward51"
    top: "BatchNormBackward51"
}
layer {
    name: "ConvNdBackward53"
    type: "Convolution"
    bottom: "BatchNormBackward51"
    top: "ConvNdBackward53"
    convolution_param {
        num_output: 64
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward54_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward53"
    top: "BatchNormBackward54"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward54_scale"
    type: "Scale"
    bottom: "BatchNormBackward54"
    top: "BatchNormBackward54"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "AddBackward56"
    type: "Eltwise"
    bottom: "BatchNormBackward54"
    bottom: "AddBackward48"
    top: "AddBackward56"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ThresholdBackward57"
    type: "ReLU"
    bottom: "AddBackward56"
    top: "AddBackward56"
}
layer {
    name: "ConvNdBackward58"
    type: "Convolution"
    bottom: "AddBackward56"
    top: "ConvNdBackward58"
    convolution_param {
        num_output: 128
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward59_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward58"
    top: "BatchNormBackward59"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward59_scale"
    type: "Scale"
    bottom: "BatchNormBackward59"
    top: "BatchNormBackward59"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward60"
    type: "ReLU"
    bottom: "BatchNormBackward59"
    top: "BatchNormBackward59"
}
layer {
    name: "ConvNdBackward61"
    type: "Convolution"
    bottom: "BatchNormBackward59"
    top: "ConvNdBackward61"
    convolution_param {
        num_output: 128
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward62_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward61"
    top: "BatchNormBackward62"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward62_scale"
    type: "Scale"
    bottom: "BatchNormBackward62"
    top: "BatchNormBackward62"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ConvNdBackward64"
    type: "Convolution"
    bottom: "AddBackward56"
    top: "ConvNdBackward64"
    convolution_param {
        num_output: 128
        pad_h: 0
        pad_w: 0
        kernel_h: 1
        kernel_w: 1
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward65_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward64"
    top: "BatchNormBackward65"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward65_scale"
    type: "Scale"
    bottom: "BatchNormBackward65"
    top: "BatchNormBackward65"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "AddBackward66"
    type: "Eltwise"
    bottom: "BatchNormBackward62"
    bottom: "BatchNormBackward65"
    top: "AddBackward66"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ThresholdBackward67"
    type: "ReLU"
    bottom: "AddBackward66"
    top: "AddBackward66"
}
layer {
    name: "ConvNdBackward68"
    type: "Convolution"
    bottom: "AddBackward66"
    top: "ConvNdBackward68"
    convolution_param {
        num_output: 128
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 2
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward69_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward68"
    top: "BatchNormBackward69"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward69_scale"
    type: "Scale"
    bottom: "BatchNormBackward69"
    top: "BatchNormBackward69"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward70"
    type: "ReLU"
    bottom: "BatchNormBackward69"
    top: "BatchNormBackward69"
}
layer {
    name: "ConvNdBackward71"
    type: "Convolution"
    bottom: "BatchNormBackward69"
    top: "ConvNdBackward71"
    convolution_param {
        num_output: 128
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward72_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward71"
    top: "BatchNormBackward72"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward72_scale"
    type: "Scale"
    bottom: "BatchNormBackward72"
    top: "BatchNormBackward72"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ConvNdBackward74"
    type: "Convolution"
    bottom: "AddBackward66"
    top: "ConvNdBackward74"
    convolution_param {
        num_output: 128
        pad_h: 0
        pad_w: 0
        kernel_h: 1
        kernel_w: 1
        stride: 2
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward75_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward74"
    top: "BatchNormBackward75"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward75_scale"
    type: "Scale"
    bottom: "BatchNormBackward75"
    top: "BatchNormBackward75"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "AddBackward76"
    type: "Eltwise"
    bottom: "BatchNormBackward72"
    bottom: "BatchNormBackward75"
    top: "AddBackward76"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ThresholdBackward77"
    type: "ReLU"
    bottom: "AddBackward76"
    top: "AddBackward76"
}
layer {
    name: "ConvNdBackward78"
    type: "Convolution"
    bottom: "AddBackward76"
    top: "ConvNdBackward78"
    convolution_param {
        num_output: 128
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward79_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward78"
    top: "BatchNormBackward79"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward79_scale"
    type: "Scale"
    bottom: "BatchNormBackward79"
    top: "BatchNormBackward79"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward80"
    type: "ReLU"
    bottom: "BatchNormBackward79"
    top: "BatchNormBackward79"
}
layer {
    name: "ConvNdBackward81"
    type: "Convolution"
    bottom: "BatchNormBackward79"
    top: "ConvNdBackward81"
    convolution_param {
        num_output: 128
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward82_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward81"
    top: "BatchNormBackward82"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward82_scale"
    type: "Scale"
    bottom: "BatchNormBackward82"
    top: "BatchNormBackward82"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "AddBackward84"
    type: "Eltwise"
    bottom: "BatchNormBackward82"
    bottom: "AddBackward76"
    top: "AddBackward84"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ThresholdBackward85"
    type: "ReLU"
    bottom: "AddBackward84"
    top: "AddBackward84"
}
layer {
    name: "ConvNdBackward86"
    type: "Convolution"
    bottom: "AddBackward84"
    top: "ConvNdBackward86"
    convolution_param {
        num_output: 128
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward87_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward86"
    top: "BatchNormBackward87"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward87_scale"
    type: "Scale"
    bottom: "BatchNormBackward87"
    top: "BatchNormBackward87"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward88"
    type: "ReLU"
    bottom: "BatchNormBackward87"
    top: "BatchNormBackward87"
}
layer {
    name: "ConvNdBackward89"
    type: "Convolution"
    bottom: "BatchNormBackward87"
    top: "ConvNdBackward89"
    convolution_param {
        num_output: 128
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward90_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward89"
    top: "BatchNormBackward90"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward90_scale"
    type: "Scale"
    bottom: "BatchNormBackward90"
    top: "BatchNormBackward90"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "AddBackward92"
    type: "Eltwise"
    bottom: "BatchNormBackward90"
    bottom: "AddBackward84"
    top: "AddBackward92"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ThresholdBackward93"
    type: "ReLU"
    bottom: "AddBackward92"
    top: "AddBackward92"
}
layer {
    name: "ConvNdBackward94"
    type: "Convolution"
    bottom: "AddBackward92"
    top: "ConvNdBackward94"
    convolution_param {
        num_output: 128
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward95_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward94"
    top: "BatchNormBackward95"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward95_scale"
    type: "Scale"
    bottom: "BatchNormBackward95"
    top: "BatchNormBackward95"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward96"
    type: "ReLU"
    bottom: "BatchNormBackward95"
    top: "BatchNormBackward95"
}
layer {
    name: "ConvNdBackward97"
    type: "Convolution"
    bottom: "BatchNormBackward95"
    top: "ConvNdBackward97"
    convolution_param {
        num_output: 128
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward98_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward97"
    top: "BatchNormBackward98"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward98_scale"
    type: "Scale"
    bottom: "BatchNormBackward98"
    top: "BatchNormBackward98"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "AddBackward100"
    type: "Eltwise"
    bottom: "BatchNormBackward98"
    bottom: "AddBackward92"
    top: "AddBackward100"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ThresholdBackward101"
    type: "ReLU"
    bottom: "AddBackward100"
    top: "AddBackward100"
}
layer {
    name: "ConvNdBackward102"
    type: "Convolution"
    bottom: "AddBackward100"
    top: "ConvNdBackward102"
    convolution_param {
        num_output: 256
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 2
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward103_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward102"
    top: "BatchNormBackward103"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward103_scale"
    type: "Scale"
    bottom: "BatchNormBackward103"
    top: "BatchNormBackward103"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward104"
    type: "ReLU"
    bottom: "BatchNormBackward103"
    top: "BatchNormBackward103"
}
layer {
    name: "ConvNdBackward105"
    type: "Convolution"
    bottom: "BatchNormBackward103"
    top: "ConvNdBackward105"
    convolution_param {
        num_output: 256
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward106_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward105"
    top: "BatchNormBackward106"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward106_scale"
    type: "Scale"
    bottom: "BatchNormBackward106"
    top: "BatchNormBackward106"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ConvNdBackward108"
    type: "Convolution"
    bottom: "AddBackward100"
    top: "ConvNdBackward108"
    convolution_param {
        num_output: 256
        pad_h: 0
        pad_w: 0
        kernel_h: 1
        kernel_w: 1
        stride: 2
        dilation: 1
        bias_term: false
    }
}
layer {
    name: "BatchNormBackward109_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward108"
    top: "BatchNormBackward109"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward109_scale"
    type: "Scale"
    bottom: "BatchNormBackward109"
    top: "BatchNormBackward109"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "AddBackward110"
    type: "Eltwise"
    bottom: "BatchNormBackward106"
    bottom: "BatchNormBackward109"
    top: "AddBackward110"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ThresholdBackward111"
    type: "ReLU"
    bottom: "AddBackward110"
    top: "AddBackward110"
}
layer {
    name: "ConvNdBackward112"
    type: "Convolution"
    bottom: "AddBackward110"
    top: "ConvNdBackward112"
    convolution_param {
        num_output: 64
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
    }
}
layer {
    name: "BatchNormBackward113_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward112"
    top: "BatchNormBackward113"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward113_scale"
    type: "Scale"
    bottom: "BatchNormBackward113"
    top: "BatchNormBackward113"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward114"
    type: "ReLU"
    bottom: "BatchNormBackward113"
    top: "BatchNormBackward113"
}
layer {
    name: "UpsamplingBilinear2d115"
    type: "Interp"
    bottom: "BatchNormBackward113"
    top: "UpsamplingBilinear2d115"
    interp_param {
        height: 17
        width: 13
    }
}
layer {
    name: "ConvNdBackward116"
    type: "Convolution"
    bottom: "UpsamplingBilinear2d115"
    top: "ConvNdBackward116"
    convolution_param {
        num_output: 64
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
    }
}
layer {
    name: "BatchNormBackward117_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward116"
    top: "BatchNormBackward117"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward117_scale"
    type: "Scale"
    bottom: "BatchNormBackward117"
    top: "BatchNormBackward117"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward118"
    type: "ReLU"
    bottom: "BatchNormBackward117"
    top: "BatchNormBackward117"
}
layer {
    name: "UpsamplingBilinear2d119"
    type: "Interp"
    bottom: "BatchNormBackward117"
    top: "UpsamplingBilinear2d119"
    interp_param {
        height: 33
        width: 25
    }
}
layer {
    name: "ConvNdBackward120"
    type: "Convolution"
    bottom: "UpsamplingBilinear2d119"
    top: "ConvNdBackward120"
    convolution_param {
        num_output: 64
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
    }
}
layer {
    name: "BatchNormBackward121_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward120"
    top: "BatchNormBackward121"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward121_scale"
    type: "Scale"
    bottom: "BatchNormBackward121"
    top: "BatchNormBackward121"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward122"
    type: "ReLU"
    bottom: "BatchNormBackward121"
    top: "BatchNormBackward121"
}
layer {
    name: "UpsamplingBilinear2d123"
    type: "Interp"
    bottom: "BatchNormBackward121"
    top: "UpsamplingBilinear2d123"
    interp_param {
        height: 65
        width: 49
    }
}
layer {
    name: "ConvNdBackward125"
    type: "Convolution"
    bottom: "AddBackward100"
    top: "ConvNdBackward125"
    convolution_param {
        num_output: 64
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
    }
}
layer {
    name: "BatchNormBackward126_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward125"
    top: "BatchNormBackward126"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward126_scale"
    type: "Scale"
    bottom: "BatchNormBackward126"
    top: "BatchNormBackward126"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward127"
    type: "ReLU"
    bottom: "BatchNormBackward126"
    top: "BatchNormBackward126"
}
layer {
    name: "UpsamplingBilinear2d128"
    type: "Interp"
    bottom: "BatchNormBackward126"
    top: "UpsamplingBilinear2d128"
    interp_param {
        height: 33
        width: 25
    }
}
layer {
    name: "ConvNdBackward129"
    type: "Convolution"
    bottom: "UpsamplingBilinear2d128"
    top: "ConvNdBackward129"
    convolution_param {
        num_output: 64
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
    }
}
layer {
    name: "BatchNormBackward130_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward129"
    top: "BatchNormBackward130"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward130_scale"
    type: "Scale"
    bottom: "BatchNormBackward130"
    top: "BatchNormBackward130"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward131"
    type: "ReLU"
    bottom: "BatchNormBackward130"
    top: "BatchNormBackward130"
}
layer {
    name: "UpsamplingBilinear2d132"
    type: "Interp"
    bottom: "BatchNormBackward130"
    top: "UpsamplingBilinear2d132"
    interp_param {
        height: 65
        width: 49
    }
}
layer {
    name: "AddBackward133"
    type: "Eltwise"
    bottom: "UpsamplingBilinear2d123"
    bottom: "UpsamplingBilinear2d132"
    top: "AddBackward133"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ConvNdBackward135"
    type: "Convolution"
    bottom: "AddBackward66"
    top: "ConvNdBackward135"
    convolution_param {
        num_output: 64
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
    }
}
layer {
    name: "BatchNormBackward136_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward135"
    top: "BatchNormBackward136"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward136_scale"
    type: "Scale"
    bottom: "BatchNormBackward136"
    top: "BatchNormBackward136"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward137"
    type: "ReLU"
    bottom: "BatchNormBackward136"
    top: "BatchNormBackward136"
}
layer {
    name: "UpsamplingBilinear2d138"
    type: "Interp"
    bottom: "BatchNormBackward136"
    top: "UpsamplingBilinear2d138"
    interp_param {
        height: 65
        width: 49
    }
}
layer {
    name: "AddBackward139"
    type: "Eltwise"
    bottom: "AddBackward133"
    bottom: "UpsamplingBilinear2d138"
    top: "AddBackward139"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ConvNdBackward141"
    type: "Convolution"
    bottom: "AddBackward20"
    top: "ConvNdBackward141"
    convolution_param {
        num_output: 64
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
    }
}
layer {
    name: "BatchNormBackward142_bn"
    type: "BatchNorm"
    bottom: "ConvNdBackward141"
    top: "BatchNormBackward142"
    batch_norm_param {
        use_global_stats: true
        eps: 1e-05
    }
}
layer {
    name: "BatchNormBackward142_scale"
    type: "Scale"
    bottom: "BatchNormBackward142"
    top: "BatchNormBackward142"
    scale_param {
        bias_term: true
    }
}
layer {
    name: "ThresholdBackward143"
    type: "ReLU"
    bottom: "BatchNormBackward142"
    top: "BatchNormBackward142"
}
layer {
    name: "AddBackward144"
    type: "Eltwise"
    bottom: "AddBackward139"
    bottom: "BatchNormBackward142"
    top: "AddBackward144"
    eltwise_param {
        operation: SUM
    }
}
layer {
    name: "ConvNdBackward145"
    type: "Convolution"
    bottom: "AddBackward144"
    top: "ConvNdBackward145"
    convolution_param {
        num_output: 15
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
    }
}
################################ other outputs ################################
###################### uv ######################
layer {
    name: "ann_argmax"
    type: "ArgMax"
    bottom: "ConvNdBackward145"
    top: "ann_argmax"
    argmax_param {
        axis: 1
    }
}
layer {
    name: "index"
    type: "Convolution"
    bottom: "AddBackward144"
    top: "index"
    convolution_param {
        num_output: 25
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
    }
}
layer {
    name: "index_argmax"
    type: "ArgMax"
    bottom: "index"
    top: "index_argmax"
    argmax_param {
        axis: 1
    }
}
layer {
    name: "u"
    type: "Convolution"
    bottom: "AddBackward144"
    top: "u"
    convolution_param {
        num_output: 4
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
    }
}
layer {
    name: "v"
    type: "Convolution"
    bottom: "AddBackward144"
    top: "v"
    convolution_param {
        num_output: 4
        pad_h: 1
        pad_w: 1
        kernel_h: 3
        kernel_w: 3
        stride: 1
        dilation: 1
    }
}
###################### mask ######################
# x0
layer {
    name: "mask_head_conv"
    type: "Convolution"
    bottom: "BatchNormBackward2"
    top: "mask_head_conv"
    convolution_param {
        num_output: 64
        pad_h: 0
        pad_w: 0
        kernel_h: 1
        kernel_w: 1
        stride: 1
        dilation: 1
    }
}
# x1
layer {
    name: "mask_conv_interp"
    type: "Interp"
    bottom: "AddBackward144"
    top: "mask_conv_interp"
    interp_param {
        height: 129
        width: 97
    }
}
# x0 + x1
layer {
    name: "mask_conv_add"
    type: "Eltwise"
    bottom: "mask_head_conv"
    bottom: "mask_conv_interp"
    top: "mask_conv_add"
    eltwise_param {
        operation: SUM
    }
}
# mask output
layer {
    name: "mask"
    type: "Convolution"
    bottom: "mask_conv_add"
    top: "mask"
    convolution_param {
        num_output: 1
        pad_h: 0
        pad_w: 0
        kernel_h: 1
        kernel_w: 1
        stride: 1
        dilation: 1
    }
}
