Skip to content

Instantly share code, notes, and snippets.

@sriharsha0806
Last active December 24, 2017 10:23
Show Gist options
  • Select an option

  • Save sriharsha0806/a731e3b615b3caec6774654c0598f226 to your computer and use it in GitHub Desktop.

Select an option

Save sriharsha0806/a731e3b615b3caec6774654c0598f226 to your computer and use it in GitHub Desktop.

Revisions

  1. sriharsha0806 revised this gist Dec 24, 2017. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions icnet
    Original file line number Diff line number Diff line change
    @@ -2,8 +2,8 @@
    input: "data"
    input_dim: 1
    input_dim: 3
    input_dim: 1025
    input_dim: 2049
    input_dim: 1024
    input_dim: 2048

    layer {
    name: "data_sub1"
  2. sriharsha0806 revised this gist Dec 24, 2017. No changes.
  3. sriharsha0806 created this gist Dec 14, 2017.
    1,927 changes: 1,927 additions & 0 deletions icnet
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,1927 @@
    #
    input: "data"
    input_dim: 1
    input_dim: 3
    input_dim: 1025
    input_dim: 2049

    layer {
    name: "data_sub1"
    type: "Scale"
    bottom: "data"
    top: "data_sub1"
    }
    layer {
    name: "data_sub2"
    type: "Interp"
    bottom: "data_sub1"
    top: "data_sub2"
    interp_param {
    shrink_factor: 2
    }
    }
    layer {
    name: "conv1_1_3x3_s2"
    type: "Convolution"
    bottom: "data_sub2"
    top: "conv1_1_3x3_s2"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 32
    pad: 1
    kernel_size: 3
    stride: 2
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv1_1_3x3_s2/relu"
    type: "ReLU"
    bottom: "conv1_1_3x3_s2"
    top: "conv1_1_3x3_s2"
    }
    layer {
    name: "conv1_2_3x3"
    type: "Convolution"
    bottom: "conv1_1_3x3_s2"
    top: "conv1_2_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 32
    pad: 1
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv1_2_3x3/relu"
    type: "ReLU"
    bottom: "conv1_2_3x3"
    top: "conv1_2_3x3"
    }
    layer {
    name: "conv1_3_3x3"
    type: "Convolution"
    bottom: "conv1_2_3x3"
    top: "conv1_3_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 64
    pad: 1
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv1_3_3x3/relu"
    type: "ReLU"
    bottom: "conv1_3_3x3"
    top: "conv1_3_3x3"
    }
    layer {
    name: "pool1_3x3_s2"
    type: "Pooling"
    bottom: "conv1_3_3x3"
    top: "pool1_3x3_s2"
    pooling_param {
    pool: MAX
    kernel_size: 3
    stride: 2
    pad: 1
    }
    }
    layer {
    name: "conv2_1_1x1_reduce"
    type: "Convolution"
    bottom: "pool1_3x3_s2"
    top: "conv2_1_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 32
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv2_1_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv2_1_1x1_reduce"
    top: "conv2_1_1x1_reduce"
    }
    layer {
    name: "conv2_1_3x3"
    type: "Convolution"
    bottom: "conv2_1_1x1_reduce"
    top: "conv2_1_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 32
    pad: 1
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv2_1_3x3/relu"
    type: "ReLU"
    bottom: "conv2_1_3x3"
    top: "conv2_1_3x3"
    }
    layer {
    name: "conv2_1_1x1_increase"
    type: "Convolution"
    bottom: "conv2_1_3x3"
    top: "conv2_1_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv2_1_1x1_proj"
    type: "Convolution"
    bottom: "pool1_3x3_s2"
    top: "conv2_1_1x1_proj"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv2_1"
    type: "Eltwise"
    bottom: "conv2_1_1x1_proj"
    bottom: "conv2_1_1x1_increase"
    top: "conv2_1"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv2_1/relu"
    type: "ReLU"
    bottom: "conv2_1"
    top: "conv2_1"
    }
    layer {
    name: "conv2_2_1x1_reduce"
    type: "Convolution"
    bottom: "conv2_1"
    top: "conv2_2_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 32
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv2_2_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv2_2_1x1_reduce"
    top: "conv2_2_1x1_reduce"
    }
    layer {
    name: "conv2_2_3x3"
    type: "Convolution"
    bottom: "conv2_2_1x1_reduce"
    top: "conv2_2_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 32
    pad: 1
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv2_2_3x3/relu"
    type: "ReLU"
    bottom: "conv2_2_3x3"
    top: "conv2_2_3x3"
    }
    layer {
    name: "conv2_2_1x1_increase"
    type: "Convolution"
    bottom: "conv2_2_3x3"
    top: "conv2_2_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv2_2"
    type: "Eltwise"
    bottom: "conv2_1"
    bottom: "conv2_2_1x1_increase"
    top: "conv2_2"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv2_2/relu"
    type: "ReLU"
    bottom: "conv2_2"
    top: "conv2_2"
    }
    layer {
    name: "conv2_3_1x1_reduce"
    type: "Convolution"
    bottom: "conv2_2"
    top: "conv2_3_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 32
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv2_3_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv2_3_1x1_reduce"
    top: "conv2_3_1x1_reduce"
    }
    layer {
    name: "conv2_3_3x3"
    type: "Convolution"
    bottom: "conv2_3_1x1_reduce"
    top: "conv2_3_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 32
    pad: 1
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv2_3_3x3/relu"
    type: "ReLU"
    bottom: "conv2_3_3x3"
    top: "conv2_3_3x3"
    }
    layer {
    name: "conv2_3_1x1_increase"
    type: "Convolution"
    bottom: "conv2_3_3x3"
    top: "conv2_3_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv2_3"
    type: "Eltwise"
    bottom: "conv2_2"
    bottom: "conv2_3_1x1_increase"
    top: "conv2_3"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv2_3/relu"
    type: "ReLU"
    bottom: "conv2_3"
    top: "conv2_3"
    }
    layer {
    name: "conv3_1_1x1_reduce"
    type: "Convolution"
    bottom: "conv2_3"
    top: "conv3_1_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 64
    pad: 0
    kernel_size: 1
    stride: 2
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_1_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv3_1_1x1_reduce"
    top: "conv3_1_1x1_reduce"
    }
    layer {
    name: "conv3_1_3x3"
    type: "Convolution"
    bottom: "conv3_1_1x1_reduce"
    top: "conv3_1_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 64
    pad: 1
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_1_3x3/relu"
    type: "ReLU"
    bottom: "conv3_1_3x3"
    top: "conv3_1_3x3"
    }
    layer {
    name: "conv3_1_1x1_increase"
    type: "Convolution"
    bottom: "conv3_1_3x3"
    top: "conv3_1_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 256
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_1_1x1_proj"
    type: "Convolution"
    bottom: "conv2_3"
    top: "conv3_1_1x1_proj"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 256
    pad: 0
    kernel_size: 1
    stride: 2
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_1"
    type: "Eltwise"
    bottom: "conv3_1_1x1_proj"
    bottom: "conv3_1_1x1_increase"
    top: "conv3_1"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv3_1/relu"
    type: "ReLU"
    bottom: "conv3_1"
    top: "conv3_1"
    }
    layer {
    name: "conv3_1_sub4"
    type: "Interp"
    bottom: "conv3_1"
    top: "conv3_1_sub4"
    interp_param {
    shrink_factor: 2
    }
    }
    layer {
    name: "conv3_2_1x1_reduce"
    type: "Convolution"
    bottom: "conv3_1_sub4"
    top: "conv3_2_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 64
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_2_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv3_2_1x1_reduce"
    top: "conv3_2_1x1_reduce"
    }
    layer {
    name: "conv3_2_3x3"
    type: "Convolution"
    bottom: "conv3_2_1x1_reduce"
    top: "conv3_2_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 64
    pad: 1
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_2_3x3/relu"
    type: "ReLU"
    bottom: "conv3_2_3x3"
    top: "conv3_2_3x3"
    }
    layer {
    name: "conv3_2_1x1_increase"
    type: "Convolution"
    bottom: "conv3_2_3x3"
    top: "conv3_2_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 256
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_2"
    type: "Eltwise"
    bottom: "conv3_1_sub4"
    bottom: "conv3_2_1x1_increase"
    top: "conv3_2"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv3_2/relu"
    type: "ReLU"
    bottom: "conv3_2"
    top: "conv3_2"
    }
    layer {
    name: "conv3_3_1x1_reduce"
    type: "Convolution"
    bottom: "conv3_2"
    top: "conv3_3_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 64
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_3_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv3_3_1x1_reduce"
    top: "conv3_3_1x1_reduce"
    }
    layer {
    name: "conv3_3_3x3"
    type: "Convolution"
    bottom: "conv3_3_1x1_reduce"
    top: "conv3_3_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 64
    pad: 1
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_3_3x3/relu"
    type: "ReLU"
    bottom: "conv3_3_3x3"
    top: "conv3_3_3x3"
    }
    layer {
    name: "conv3_3_1x1_increase"
    type: "Convolution"
    bottom: "conv3_3_3x3"
    top: "conv3_3_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 256
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_3"
    type: "Eltwise"
    bottom: "conv3_2"
    bottom: "conv3_3_1x1_increase"
    top: "conv3_3"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv3_3/relu"
    type: "ReLU"
    bottom: "conv3_3"
    top: "conv3_3"
    }
    layer {
    name: "conv3_4_1x1_reduce"
    type: "Convolution"
    bottom: "conv3_3"
    top: "conv3_4_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 64
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_4_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv3_4_1x1_reduce"
    top: "conv3_4_1x1_reduce"
    }
    layer {
    name: "conv3_4_3x3"
    type: "Convolution"
    bottom: "conv3_4_1x1_reduce"
    top: "conv3_4_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 64
    pad: 1
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_4_3x3/relu"
    type: "ReLU"
    bottom: "conv3_4_3x3"
    top: "conv3_4_3x3"
    }
    layer {
    name: "conv3_4_1x1_increase"
    type: "Convolution"
    bottom: "conv3_4_3x3"
    top: "conv3_4_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 256
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_4"
    type: "Eltwise"
    bottom: "conv3_3"
    bottom: "conv3_4_1x1_increase"
    top: "conv3_4"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv3_4/relu"
    type: "ReLU"
    bottom: "conv3_4"
    top: "conv3_4"
    }
    layer {
    name: "conv4_1_1x1_reduce"
    type: "Convolution"
    bottom: "conv3_4"
    top: "conv4_1_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv4_1_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv4_1_1x1_reduce"
    top: "conv4_1_1x1_reduce"
    }
    layer {
    name: "conv4_1_3x3"
    type: "Convolution"
    bottom: "conv4_1_1x1_reduce"
    top: "conv4_1_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 2
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    dilation: 2
    }
    }
    layer {
    name: "conv4_1_3x3/relu"
    type: "ReLU"
    bottom: "conv4_1_3x3"
    top: "conv4_1_3x3"
    }
    layer {
    name: "conv4_1_1x1_increase"
    type: "Convolution"
    bottom: "conv4_1_3x3"
    top: "conv4_1_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 512
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv4_1_1x1_proj"
    type: "Convolution"
    bottom: "conv3_4"
    top: "conv4_1_1x1_proj"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 512
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv4_1"
    type: "Eltwise"
    bottom: "conv4_1_1x1_proj"
    bottom: "conv4_1_1x1_increase"
    top: "conv4_1"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv4_1/relu"
    type: "ReLU"
    bottom: "conv4_1"
    top: "conv4_1"
    }
    layer {
    name: "conv4_2_1x1_reduce"
    type: "Convolution"
    bottom: "conv4_1"
    top: "conv4_2_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv4_2_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv4_2_1x1_reduce"
    top: "conv4_2_1x1_reduce"
    }
    layer {
    name: "conv4_2_3x3"
    type: "Convolution"
    bottom: "conv4_2_1x1_reduce"
    top: "conv4_2_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 2
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    dilation: 2
    }
    }
    layer {
    name: "conv4_2_3x3/relu"
    type: "ReLU"
    bottom: "conv4_2_3x3"
    top: "conv4_2_3x3"
    }
    layer {
    name: "conv4_2_1x1_increase"
    type: "Convolution"
    bottom: "conv4_2_3x3"
    top: "conv4_2_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 512
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv4_2"
    type: "Eltwise"
    bottom: "conv4_1"
    bottom: "conv4_2_1x1_increase"
    top: "conv4_2"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv4_2/relu"
    type: "ReLU"
    bottom: "conv4_2"
    top: "conv4_2"
    }
    layer {
    name: "conv4_3_1x1_reduce"
    type: "Convolution"
    bottom: "conv4_2"
    top: "conv4_3_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv4_3_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv4_3_1x1_reduce"
    top: "conv4_3_1x1_reduce"
    }
    layer {
    name: "conv4_3_3x3"
    type: "Convolution"
    bottom: "conv4_3_1x1_reduce"
    top: "conv4_3_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 2
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    dilation: 2
    }
    }
    layer {
    name: "conv4_3_3x3/relu"
    type: "ReLU"
    bottom: "conv4_3_3x3"
    top: "conv4_3_3x3"
    }
    layer {
    name: "conv4_3_1x1_increase"
    type: "Convolution"
    bottom: "conv4_3_3x3"
    top: "conv4_3_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 512
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv4_3"
    type: "Eltwise"
    bottom: "conv4_2"
    bottom: "conv4_3_1x1_increase"
    top: "conv4_3"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv4_3/relu"
    type: "ReLU"
    bottom: "conv4_3"
    top: "conv4_3"
    }
    layer {
    name: "conv4_4_1x1_reduce"
    type: "Convolution"
    bottom: "conv4_3"
    top: "conv4_4_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv4_4_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv4_4_1x1_reduce"
    top: "conv4_4_1x1_reduce"
    }
    layer {
    name: "conv4_4_3x3"
    type: "Convolution"
    bottom: "conv4_4_1x1_reduce"
    top: "conv4_4_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 2
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    dilation: 2
    }
    }
    layer {
    name: "conv4_4_3x3/relu"
    type: "ReLU"
    bottom: "conv4_4_3x3"
    top: "conv4_4_3x3"
    }
    layer {
    name: "conv4_4_1x1_increase"
    type: "Convolution"
    bottom: "conv4_4_3x3"
    top: "conv4_4_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 512
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv4_4"
    type: "Eltwise"
    bottom: "conv4_3"
    bottom: "conv4_4_1x1_increase"
    top: "conv4_4"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv4_4/relu"
    type: "ReLU"
    bottom: "conv4_4"
    top: "conv4_4"
    }
    layer {
    name: "conv4_5_1x1_reduce"
    type: "Convolution"
    bottom: "conv4_4"
    top: "conv4_5_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv4_5_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv4_5_1x1_reduce"
    top: "conv4_5_1x1_reduce"
    }
    layer {
    name: "conv4_5_3x3"
    type: "Convolution"
    bottom: "conv4_5_1x1_reduce"
    top: "conv4_5_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 2
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    dilation: 2
    }
    }
    layer {
    name: "conv4_5_3x3/relu"
    type: "ReLU"
    bottom: "conv4_5_3x3"
    top: "conv4_5_3x3"
    }
    layer {
    name: "conv4_5_1x1_increase"
    type: "Convolution"
    bottom: "conv4_5_3x3"
    top: "conv4_5_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 512
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv4_5"
    type: "Eltwise"
    bottom: "conv4_4"
    bottom: "conv4_5_1x1_increase"
    top: "conv4_5"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv4_5/relu"
    type: "ReLU"
    bottom: "conv4_5"
    top: "conv4_5"
    }
    layer {
    name: "conv4_6_1x1_reduce"
    type: "Convolution"
    bottom: "conv4_5"
    top: "conv4_6_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv4_6_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv4_6_1x1_reduce"
    top: "conv4_6_1x1_reduce"
    }
    layer {
    name: "conv4_6_3x3"
    type: "Convolution"
    bottom: "conv4_6_1x1_reduce"
    top: "conv4_6_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 2
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    dilation: 2
    }
    }
    layer {
    name: "conv4_6_3x3/relu"
    type: "ReLU"
    bottom: "conv4_6_3x3"
    top: "conv4_6_3x3"
    }
    layer {
    name: "conv4_6_1x1_increase"
    type: "Convolution"
    bottom: "conv4_6_3x3"
    top: "conv4_6_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 512
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv4_6"
    type: "Eltwise"
    bottom: "conv4_5"
    bottom: "conv4_6_1x1_increase"
    top: "conv4_6"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv4_6/relu"
    type: "ReLU"
    bottom: "conv4_6"
    top: "conv4_6"
    }
    layer {
    name: "conv5_1_1x1_reduce"
    type: "Convolution"
    bottom: "conv4_6"
    top: "conv5_1_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 256
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv5_1_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv5_1_1x1_reduce"
    top: "conv5_1_1x1_reduce"
    }
    layer {
    name: "conv5_1_3x3"
    type: "Convolution"
    bottom: "conv5_1_1x1_reduce"
    top: "conv5_1_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 256
    pad: 4
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    dilation: 4
    }
    }
    layer {
    name: "conv5_1_3x3/relu"
    type: "ReLU"
    bottom: "conv5_1_3x3"
    top: "conv5_1_3x3"
    }
    layer {
    name: "conv5_1_1x1_increase"
    type: "Convolution"
    bottom: "conv5_1_3x3"
    top: "conv5_1_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 1024
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv5_1_1x1_proj"
    type: "Convolution"
    bottom: "conv4_6"
    top: "conv5_1_1x1_proj"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 1024
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv5_1"
    type: "Eltwise"
    bottom: "conv5_1_1x1_proj"
    bottom: "conv5_1_1x1_increase"
    top: "conv5_1"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv5_1/relu"
    type: "ReLU"
    bottom: "conv5_1"
    top: "conv5_1"
    }
    layer {
    name: "conv5_2_1x1_reduce"
    type: "Convolution"
    bottom: "conv5_1"
    top: "conv5_2_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 256
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv5_2_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv5_2_1x1_reduce"
    top: "conv5_2_1x1_reduce"
    }
    layer {
    name: "conv5_2_3x3"
    type: "Convolution"
    bottom: "conv5_2_1x1_reduce"
    top: "conv5_2_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 256
    pad: 4
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    dilation: 4
    }
    }
    layer {
    name: "conv5_2_3x3/relu"
    type: "ReLU"
    bottom: "conv5_2_3x3"
    top: "conv5_2_3x3"
    }
    layer {
    name: "conv5_2_1x1_increase"
    type: "Convolution"
    bottom: "conv5_2_3x3"
    top: "conv5_2_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 1024
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv5_2"
    type: "Eltwise"
    bottom: "conv5_1"
    bottom: "conv5_2_1x1_increase"
    top: "conv5_2"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv5_2/relu"
    type: "ReLU"
    bottom: "conv5_2"
    top: "conv5_2"
    }
    layer {
    name: "conv5_3_1x1_reduce"
    type: "Convolution"
    bottom: "conv5_2"
    top: "conv5_3_1x1_reduce"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 256
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv5_3_1x1_reduce/relu"
    type: "ReLU"
    bottom: "conv5_3_1x1_reduce"
    top: "conv5_3_1x1_reduce"
    }
    layer {
    name: "conv5_3_3x3"
    type: "Convolution"
    bottom: "conv5_3_1x1_reduce"
    top: "conv5_3_3x3"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 256
    pad: 4
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    dilation: 4
    }
    }
    layer {
    name: "conv5_3_3x3/relu"
    type: "ReLU"
    bottom: "conv5_3_3x3"
    top: "conv5_3_3x3"
    }
    layer {
    name: "conv5_3_1x1_increase"
    type: "Convolution"
    bottom: "conv5_3_3x3"
    top: "conv5_3_1x1_increase"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 1024
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv5_3"
    type: "Eltwise"
    bottom: "conv5_2"
    bottom: "conv5_3_1x1_increase"
    top: "conv5_3"
    eltwise_param {
    operation: SUM
    }
    }
    layer {
    name: "conv5_3/relu"
    type: "ReLU"
    bottom: "conv5_3"
    top: "conv5_3"
    }
    layer {
    name: "conv5_3_pool1"
    type: "Pooling"
    bottom: "conv5_3"
    top: "conv5_3_pool1"
    pooling_param {
    pool: AVE
    kernel_h: 33
    kernel_w: 65
    stride_h: 33
    stride_w: 65
    }
    }
    layer {
    name: "conv5_3_pool1_interp"
    type: "Interp"
    bottom: "conv5_3_pool1"
    top: "conv5_3_pool1_interp"
    interp_param {
    height: 33
    width: 65
    }
    }
    layer {
    name: "conv5_3_pool2"
    type: "Pooling"
    bottom: "conv5_3"
    top: "conv5_3_pool2"
    pooling_param {
    pool: AVE
    kernel_h: 17
    kernel_w: 33
    stride_h: 16
    stride_w: 32
    }
    }
    layer {
    name: "conv5_3_pool2_interp"
    type: "Interp"
    bottom: "conv5_3_pool2"
    top: "conv5_3_pool2_interp"
    interp_param {
    height: 33
    width: 65
    }
    }
    layer {
    name: "conv5_3_pool3"
    type: "Pooling"
    bottom: "conv5_3"
    top: "conv5_3_pool3"
    pooling_param {
    pool: AVE
    kernel_h: 13
    kernel_w: 25
    stride_h: 10
    stride_w: 20
    }
    }
    layer {
    name: "conv5_3_pool3_interp"
    type: "Interp"
    bottom: "conv5_3_pool3"
    top: "conv5_3_pool3_interp"
    interp_param {
    height: 33
    width: 65
    }
    }
    layer {
    name: "conv5_3_pool6"
    type: "Pooling"
    bottom: "conv5_3"
    top: "conv5_3_pool6"
    pooling_param {
    pool: AVE
    kernel_h: 8
    kernel_w: 15
    stride_h: 5
    stride_w: 10
    }
    }
    layer {
    name: "conv5_3_pool6_interp"
    type: "Interp"
    bottom: "conv5_3_pool6"
    top: "conv5_3_pool6_interp"
    interp_param {
    height: 33
    width: 65
    }
    }
    layer {
    name: "conv5_3_sum"
    type: "Eltwise"
    bottom: "conv5_3"
    bottom: "conv5_3_pool6_interp"
    bottom: "conv5_3_pool3_interp"
    bottom: "conv5_3_pool2_interp"
    bottom: "conv5_3_pool1_interp"
    top: "conv5_3_sum"
    }
    layer {
    name: "conv5_4_k1"
    type: "Convolution"
    bottom: "conv5_3_sum"
    top: "conv5_4_k1"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 256
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv5_4_k1/relu"
    type: "ReLU"
    bottom: "conv5_4_k1"
    top: "conv5_4_k1"
    }
    layer {
    name: "conv5_4_interp"
    type: "Interp"
    bottom: "conv5_4_k1"
    top: "conv5_4_interp"
    interp_param {
    zoom_factor: 2
    }
    }
    layer {
    name: "conv_sub4"
    type: "Convolution"
    bottom: "conv5_4_interp"
    top: "conv_sub4"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 2
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    dilation: 2
    }
    }
    layer {
    name: "conv3_1_sub2_proj"
    type: "Convolution"
    bottom: "conv3_1"
    top: "conv3_1_sub2_proj"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "sub24_sum"
    type: "Eltwise"
    bottom: "conv3_1_sub2_proj"
    bottom: "conv_sub4"
    top: "sub24_sum"
    }
    layer {
    name: "sub24_sum/relu"
    type: "ReLU"
    bottom: "sub24_sum"
    top: "sub24_sum"
    }
    layer {
    name: "sub24_sum_interp"
    type: "Interp"
    bottom: "sub24_sum"
    top: "sub24_sum_interp"
    interp_param {
    zoom_factor: 2
    }
    }
    layer {
    name: "conv_sub2"
    type: "Convolution"
    bottom: "sub24_sum_interp"
    top: "conv_sub2"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 2
    kernel_size: 3
    stride: 1
    weight_filler {
    type: "msra"
    }
    dilation: 2
    }
    }
    layer {
    name: "conv1_sub1"
    type: "Convolution"
    bottom: "data_sub1"
    top: "conv1_sub1"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 32
    pad: 1
    kernel_size: 3
    stride: 2
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv1_sub1/relu"
    type: "ReLU"
    bottom: "conv1_sub1"
    top: "conv1_sub1"
    }
    layer {
    name: "conv2_sub1"
    type: "Convolution"
    bottom: "conv1_sub1"
    top: "conv2_sub1"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 32
    pad: 1
    kernel_size: 3
    stride: 2
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv2_sub1/relu"
    type: "ReLU"
    bottom: "conv2_sub1"
    top: "conv2_sub1"
    }
    layer {
    name: "conv3_sub1"
    type: "Convolution"
    bottom: "conv2_sub1"
    top: "conv3_sub1"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 64
    pad: 1
    kernel_size: 3
    stride: 2
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv3_sub1/relu"
    type: "ReLU"
    bottom: "conv3_sub1"
    top: "conv3_sub1"
    }
    layer {
    name: "conv3_sub1_proj"
    type: "Convolution"
    bottom: "conv3_sub1"
    top: "conv3_sub1_proj"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    convolution_param {
    num_output: 128
    pad: 0
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "sub12_sum"
    type: "Eltwise"
    bottom: "conv3_sub1_proj"
    bottom: "conv_sub2"
    top: "sub12_sum"
    }
    layer {
    name: "sub12_sum/relu"
    type: "ReLU"
    bottom: "sub12_sum"
    top: "sub12_sum"
    }
    layer {
    name: "sub12_sum_interp"
    type: "Interp"
    bottom: "sub12_sum"
    top: "sub12_sum_interp"
    interp_param {
    zoom_factor: 2
    }
    }
    layer {
    name: "conv6_cls"
    type: "Convolution"
    bottom: "sub12_sum_interp"
    top: "conv6_cls"
    param {
    lr_mult: 1
    decay_mult: 1
    }
    param {
    lr_mult: 2
    decay_mult: 1
    }
    convolution_param {
    num_output: 19
    kernel_size: 1
    stride: 1
    weight_filler {
    type: "msra"
    }
    }
    }
    layer {
    name: "conv6_interp"
    type: "Interp"
    bottom: "conv6_cls"
    top: "conv6_interp"
    interp_param {
    zoom_factor: 4
    }
    }