input: "data" input_shape { dim: 1 dim: 6 dim: 512 dim: 512 } layer { name: "Convolution1" type: "Convolution" bottom: "data" top: "Convolution1" convolution_param { num_output: 16 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm1" type: "BatchNorm" bottom: "Convolution1" top: "BatchNorm1" } layer { name: "Scale1" type: "Scale" bottom: "BatchNorm1" top: "BatchNorm1" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv_s1" type: "ReLU" bottom: "BatchNorm1" top: "BatchNorm1" } layer { name: "pool_s1" type: "Pooling" bottom: "BatchNorm1" top: "pool_s1" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "Convolution2" type: "Convolution" bottom: "pool_s1" top: "Convolution2" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm2" type: "BatchNorm" bottom: "Convolution2" top: "BatchNorm2" } layer { name: "Scale2" type: "Scale" bottom: "BatchNorm2" top: "BatchNorm2" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s2" type: "ReLU" bottom: "BatchNorm2" top: "BatchNorm2" } layer { name: "concat_s2" type: "Concat" bottom: "pool_s1" bottom: "BatchNorm2" top: "concat_s2" concat_param { axis: 1 } } layer { name: "pool_s2" type: "Pooling" bottom: "concat_s2" top: "pool_s2" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "Convolution3" type: "Convolution" bottom: "pool_s2" top: "Convolution3" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm3" type: "BatchNorm" bottom: "Convolution3" top: "BatchNorm3" } layer { name: "Scale3" type: "Scale" bottom: "BatchNorm3" top: "BatchNorm3" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s3" type: "ReLU" bottom: "BatchNorm3" top: "BatchNorm3" } layer { name: "concat_s3" type: "Concat" bottom: "pool_s2" bottom: "BatchNorm3" top: "concat_s3" concat_param { axis: 1 } } layer { name: "pool_s3" type: "Pooling" bottom: "concat_s3" top: "pool_s3" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "Convolution4" type: "Convolution" bottom: "pool_s3" top: "Convolution4" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm4" type: "BatchNorm" bottom: "Convolution4" top: "BatchNorm4" } layer { name: "Scale4" type: "Scale" bottom: "BatchNorm4" top: "BatchNorm4" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s4" type: "ReLU" bottom: "BatchNorm4" top: "BatchNorm4" } layer { name: "concat_s4" type: "Concat" bottom: "pool_s3" bottom: "BatchNorm4" top: "concat_s4" concat_param { axis: 1 } } layer { name: "pool_s4" type: "Pooling" bottom: "concat_s4" top: "pool_s4" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "Convolution5" type: "Convolution" bottom: "pool_s4" top: "Convolution5" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm5" type: "BatchNorm" bottom: "Convolution5" top: "BatchNorm5" } layer { name: "Scale5" type: "Scale" bottom: "BatchNorm5" top: "BatchNorm5" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s5" type: "ReLU" bottom: "BatchNorm5" top: "BatchNorm5" } layer { name: "concat_s5" type: "Concat" bottom: "pool_s4" bottom: "BatchNorm5" top: "concat_s5" concat_param { axis: 1 } } layer { name: "pool_s5" type: "Pooling" bottom: "concat_s5" top: "pool_s5" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "Convolution6" type: "Convolution" bottom: "pool_s5" top: "Convolution6" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm6" type: "BatchNorm" bottom: "Convolution6" top: "BatchNorm6" } layer { name: "Scale6" type: "Scale" bottom: "BatchNorm6" top: "BatchNorm6" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s6" type: "ReLU" bottom: "BatchNorm6" top: "BatchNorm6" } layer { name: "concat_s6" type: "Concat" bottom: "pool_s5" bottom: "BatchNorm6" top: "concat_s6" concat_param { axis: 1 } } layer { name: "pool_s6" type: "Pooling" bottom: "concat_s6" top: "pool_s6" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "Convolution7" type: "Convolution" bottom: "pool_s6" top: "Convolution7" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm7" type: "BatchNorm" bottom: "Convolution7" top: "BatchNorm7" } layer { name: "Scale7" type: "Scale" bottom: "BatchNorm7" top: "BatchNorm7" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s7" type: "ReLU" bottom: "BatchNorm7" top: "BatchNorm7" } layer { name: "concat_s7" type: "Concat" bottom: "pool_s6" bottom: "BatchNorm7" top: "concat_s7" concat_param { axis: 1 } } layer { name: "pool_s7" type: "Pooling" bottom: "concat_s7" top: "pool_s7" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "Convolution8" type: "Convolution" bottom: "pool_s7" top: "Convolution8" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm8" type: "BatchNorm" bottom: "Convolution8" top: "BatchNorm8" } layer { name: "Scale8" type: "Scale" bottom: "BatchNorm8" top: "BatchNorm8" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s8" type: "ReLU" bottom: "BatchNorm8" top: "BatchNorm8" } layer { name: "concat_s8" type: "Concat" bottom: "pool_s7" bottom: "BatchNorm8" top: "concat_s8" concat_param { axis: 1 } } layer { name: "pool_s8" type: "Pooling" bottom: "concat_s8" top: "pool_s8" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "Convolution9" type: "Convolution" bottom: "pool_s8" top: "Convolution9" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm9" type: "BatchNorm" bottom: "Convolution9" top: "BatchNorm9" } layer { name: "Scale9" type: "Scale" bottom: "BatchNorm9" top: "BatchNorm9" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s9" type: "ReLU" bottom: "BatchNorm9" top: "BatchNorm9" } layer { name: "concat_s9" type: "Concat" bottom: "pool_s8" bottom: "BatchNorm9" top: "concat_s9" concat_param { axis: 1 } } layer { name: "pool_s9" type: "Pooling" bottom: "concat_s9" top: "pool_s9" pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layer { name: "Convolution10" type: "Convolution" bottom: "pool_s9" top: "Convolution10" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm10" type: "BatchNorm" bottom: "Convolution10" top: "BatchNorm10" } layer { name: "Scale10" type: "Scale" bottom: "BatchNorm10" top: "BatchNorm10" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s10" type: "ReLU" bottom: "BatchNorm10" top: "BatchNorm10" } layer { name: "upsample_s10" type: "Deconvolution" bottom: "BatchNorm10" top: "upsample_s10" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 4 group: 16 stride: 2 weight_filler { type: "bilinear" } } } layer { name: "concat_s9d" type: "Concat" bottom: "upsample_s10" bottom: "concat_s9" top: "concat_s9d" concat_param { axis: 1 } } layer { name: "Convolution11" type: "Convolution" bottom: "concat_s9d" top: "Convolution11" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm11" type: "BatchNorm" bottom: "Convolution11" top: "BatchNorm11" } layer { name: "Scale11" type: "Scale" bottom: "BatchNorm11" top: "BatchNorm11" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s9d" type: "ReLU" bottom: "BatchNorm11" top: "BatchNorm11" } layer { name: "upsample_s9" type: "Deconvolution" bottom: "BatchNorm11" top: "upsample_s9" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 4 group: 16 stride: 2 weight_filler { type: "bilinear" } } } layer { name: "concat_s8d" type: "Concat" bottom: "upsample_s9" bottom: "concat_s8" top: "concat_s8d" concat_param { axis: 1 } } layer { name: "Convolution12" type: "Convolution" bottom: "concat_s8d" top: "Convolution12" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm12" type: "BatchNorm" bottom: "Convolution12" top: "BatchNorm12" } layer { name: "Scale12" type: "Scale" bottom: "BatchNorm12" top: "BatchNorm12" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s8d" type: "ReLU" bottom: "BatchNorm12" top: "BatchNorm12" } layer { name: "upsample_s8" type: "Deconvolution" bottom: "BatchNorm12" top: "upsample_s8" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 4 group: 16 stride: 2 weight_filler { type: "bilinear" } } } layer { name: "concat_s7d" type: "Concat" bottom: "upsample_s8" bottom: "concat_s7" top: "concat_s7d" concat_param { axis: 1 } } layer { name: "Convolution13" type: "Convolution" bottom: "concat_s7d" top: "Convolution13" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm13" type: "BatchNorm" bottom: "Convolution13" top: "BatchNorm13" } layer { name: "Scale13" type: "Scale" bottom: "BatchNorm13" top: "BatchNorm13" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s7d" type: "ReLU" bottom: "BatchNorm13" top: "BatchNorm13" } layer { name: "upsample_s7" type: "Deconvolution" bottom: "BatchNorm13" top: "upsample_s7" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 4 group: 16 stride: 2 weight_filler { type: "bilinear" } } } layer { name: "concat_s6d" type: "Concat" bottom: "upsample_s7" bottom: "concat_s6" top: "concat_s6d" concat_param { axis: 1 } } layer { name: "Convolution14" type: "Convolution" bottom: "concat_s6d" top: "Convolution14" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm14" type: "BatchNorm" bottom: "Convolution14" top: "BatchNorm14" } layer { name: "Scale14" type: "Scale" bottom: "BatchNorm14" top: "BatchNorm14" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s6d" type: "ReLU" bottom: "BatchNorm14" top: "BatchNorm14" } layer { name: "upsample_s6" type: "Deconvolution" bottom: "BatchNorm14" top: "upsample_s6" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 4 group: 16 stride: 2 weight_filler { type: "bilinear" } } } layer { name: "concat_s5d" type: "Concat" bottom: "upsample_s6" bottom: "concat_s5" top: "concat_s5d" concat_param { axis: 1 } } layer { name: "Convolution15" type: "Convolution" bottom: "concat_s5d" top: "Convolution15" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm15" type: "BatchNorm" bottom: "Convolution15" top: "BatchNorm15" } layer { name: "Scale15" type: "Scale" bottom: "BatchNorm15" top: "BatchNorm15" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s5d" type: "ReLU" bottom: "BatchNorm15" top: "BatchNorm15" } layer { name: "upsample_s5" type: "Deconvolution" bottom: "BatchNorm15" top: "upsample_s5" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 4 group: 16 stride: 2 weight_filler { type: "bilinear" } } } layer { name: "concat_s4d" type: "Concat" bottom: "upsample_s5" bottom: "concat_s4" top: "concat_s4d" concat_param { axis: 1 } } layer { name: "Convolution16" type: "Convolution" bottom: "concat_s4d" top: "Convolution16" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm16" type: "BatchNorm" bottom: "Convolution16" top: "BatchNorm16" } layer { name: "Scale16" type: "Scale" bottom: "BatchNorm16" top: "BatchNorm16" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s4d" type: "ReLU" bottom: "BatchNorm16" top: "BatchNorm16" } layer { name: "upsample_s4" type: "Deconvolution" bottom: "BatchNorm16" top: "upsample_s4" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 4 group: 16 stride: 2 weight_filler { type: "bilinear" } } } layer { name: "concat_s3d" type: "Concat" bottom: "upsample_s4" bottom: "concat_s3" top: "concat_s3d" concat_param { axis: 1 } } layer { name: "Convolution17" type: "Convolution" bottom: "concat_s3d" top: "Convolution17" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm17" type: "BatchNorm" bottom: "Convolution17" top: "BatchNorm17" } layer { name: "Scale17" type: "Scale" bottom: "BatchNorm17" top: "BatchNorm17" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s3d" type: "ReLU" bottom: "BatchNorm17" top: "BatchNorm17" } layer { name: "upsample_s3" type: "Deconvolution" bottom: "BatchNorm17" top: "upsample_s3" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 4 group: 16 stride: 2 weight_filler { type: "bilinear" } } } layer { name: "concat_s2d" type: "Concat" bottom: "upsample_s3" bottom: "concat_s2" top: "concat_s2d" concat_param { axis: 1 } } layer { name: "Convolution18" type: "Convolution" bottom: "concat_s2d" top: "Convolution18" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm18" type: "BatchNorm" bottom: "Convolution18" top: "BatchNorm18" } layer { name: "Scale18" type: "Scale" bottom: "BatchNorm18" top: "BatchNorm18" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "subnet_s2d" type: "ReLU" bottom: "BatchNorm18" top: "BatchNorm18" } layer { name: "upsample_s2" type: "Deconvolution" bottom: "BatchNorm18" top: "upsample_s2" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 4 group: 16 stride: 2 weight_filler { type: "bilinear" } } } layer { name: "concat_s1d" type: "Concat" bottom: "upsample_s2" bottom: "BatchNorm1" top: "concat_s1d" concat_param { axis: 1 } } layer { name: "Convolution19" type: "Convolution" bottom: "concat_s1d" top: "Convolution19" convolution_param { num_output: 16 bias_term: false pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } } } layer { name: "BatchNorm19" type: "BatchNorm" bottom: "Convolution19" top: "BatchNorm19" } layer { name: "Scale19" type: "Scale" bottom: "BatchNorm19" top: "BatchNorm19" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv_s1d" type: "ReLU" bottom: "BatchNorm19" top: "BatchNorm19" } layer { name: "score" type: "Convolution" bottom: "BatchNorm19" top: "score" convolution_param { num_output: 5 bias_term: true pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "prob" type: "Softmax" bottom: "score" top: "prob" }