name: "res18-p" input: "data" input_dim: 1 input_dim: 3 input_dim: 288 input_dim: 288 layer { name: "stem_conv1_conv" type: "Convolution" bottom: "data" top: "Convolution1" convolution_param { num_output: 16 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "stem_conv1_bn" type: "BatchNorm" bottom: "Convolution1" top: "Convolution1" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "stem_conv1_sc" type: "Scale" bottom: "Convolution1" top: "Convolution1" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "stem_conv1_relu" type: "ReLU" bottom: "Convolution1" top: "Convolution1" } layer { name: "stem_conv2_conv" type: "Convolution" bottom: "Convolution1" top: "Convolution2" convolution_param { num_output: 24 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "stem_conv2_bn" type: "BatchNorm" bottom: "Convolution2" top: "Convolution2" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "stem_conv2_sc" type: "Scale" bottom: "Convolution2" top: "Convolution2" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "stem_conv2_relu" type: "ReLU" bottom: "Convolution2" top: "Convolution2" } layer { name: "stem_conv3_conv" type: "Convolution" bottom: "Convolution2" top: "Convolution3" convolution_param { num_output: 48 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "stem_conv3_bn" type: "BatchNorm" bottom: "Convolution3" top: "Convolution3" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "stem_conv3_sc" type: "Scale" bottom: "Convolution3" top: "Convolution3" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "stem_conv3_relu" type: "ReLU" bottom: "Convolution3" top: "Convolution3" } layer { name: "res2_1_stu_conv1_conv" type: "Convolution" bottom: "Convolution3" top: "Convolution4" convolution_param { num_output: 48 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res2_1_stu_conv1_bn" type: "BatchNorm" bottom: "Convolution4" top: "Convolution4" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res2_1_stu_conv1_sc" type: "Scale" bottom: "Convolution4" top: "Convolution4" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res2_1_stu_conv1_relu" type: "ReLU" bottom: "Convolution4" top: "Convolution4" } layer { name: "res2_1_stu_conv2_conv" type: "Convolution" bottom: "Convolution4" top: "Convolution5" convolution_param { num_output: 48 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res2_1_stu_conv2_bn" type: "BatchNorm" bottom: "Convolution5" top: "Convolution5" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res2_1_stu_conv2_sc" type: "Scale" bottom: "Convolution5" top: "Convolution5" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res2_1_stu_conv2_relu" type: "ReLU" bottom: "Convolution5" top: "Convolution5" } layer { name: "res2_1_stu_eltsum" type: "Eltwise" bottom: "Convolution5" bottom: "Convolution3" top: "Eltwise1" eltwise_param { operation: SUM } } layer { name: "res2_2_stu_conv1_conv" type: "Convolution" bottom: "Eltwise1" top: "Convolution6" convolution_param { num_output: 48 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res2_2_stu_conv1_bn" type: "BatchNorm" bottom: "Convolution6" top: "Convolution6" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res2_2_stu_conv1_sc" type: "Scale" bottom: "Convolution6" top: "Convolution6" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res2_2_stu_conv1_relu" type: "ReLU" bottom: "Convolution6" top: "Convolution6" } layer { name: "res2_2_stu_conv2_conv" type: "Convolution" bottom: "Convolution6" top: "Convolution7" convolution_param { num_output: 48 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res2_2_stu_conv2_bn" type: "BatchNorm" bottom: "Convolution7" top: "Convolution7" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res2_2_stu_conv2_sc" type: "Scale" bottom: "Convolution7" top: "Convolution7" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res2_2_stu_conv2_relu" type: "ReLU" bottom: "Convolution7" top: "Convolution7" } layer { name: "res2_2_stu_eltsum" type: "Eltwise" bottom: "Convolution7" bottom: "Eltwise1" top: "Eltwise2" eltwise_param { operation: SUM } } layer { name: "res3_1_stu_conv1_conv" type: "Convolution" bottom: "Eltwise2" top: "Convolution8" convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res3_1_stu_conv1_bn" type: "BatchNorm" bottom: "Convolution8" top: "Convolution8" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res3_1_stu_conv1_sc" type: "Scale" bottom: "Convolution8" top: "Convolution8" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res3_1_stu_conv1_relu" type: "ReLU" bottom: "Convolution8" top: "Convolution8" } layer { name: "res3_1_stu_conv2_conv" type: "Convolution" bottom: "Convolution8" top: "Convolution9" convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res3_1_stu_conv2_bn" type: "BatchNorm" bottom: "Convolution9" top: "Convolution9" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res3_1_stu_conv2_sc" type: "Scale" bottom: "Convolution9" top: "Convolution9" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res3_1_stu_conv2_relu" type: "ReLU" bottom: "Convolution9" top: "Convolution9" } layer { name: "res3_1_stu_projconv_conv" type: "Convolution" bottom: "Eltwise2" top: "Convolution10" convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 group: 1 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res3_1_stu_projconv_bn" type: "BatchNorm" bottom: "Convolution10" top: "Convolution10" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res3_1_stu_projconv_sc" type: "Scale" bottom: "Convolution10" top: "Convolution10" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res3_1_stu_projconv_relu" type: "ReLU" bottom: "Convolution10" top: "Convolution10" } layer { name: "res3_1_stu_eltsum" type: "Eltwise" bottom: "Convolution9" bottom: "Convolution10" top: "Eltwise3" eltwise_param { operation: SUM } } layer { name: "res3_2_stu_conv1_conv" type: "Convolution" bottom: "Eltwise3" top: "Convolution11" convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res3_2_stu_conv1_bn" type: "BatchNorm" bottom: "Convolution11" top: "Convolution11" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res3_2_stu_conv1_sc" type: "Scale" bottom: "Convolution11" top: "Convolution11" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res3_2_stu_conv1_relu" type: "ReLU" bottom: "Convolution11" top: "Convolution11" } layer { name: "res3_2_stu_conv2_conv" type: "Convolution" bottom: "Convolution11" top: "Convolution12" convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res3_2_stu_conv2_bn" type: "BatchNorm" bottom: "Convolution12" top: "Convolution12" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res3_2_stu_conv2_sc" type: "Scale" bottom: "Convolution12" top: "Convolution12" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res3_2_stu_conv2_relu" type: "ReLU" bottom: "Convolution12" top: "Convolution12" } layer { name: "res3_2_stu_eltsum" type: "Eltwise" bottom: "Convolution12" bottom: "Eltwise3" top: "Eltwise4" eltwise_param { operation: SUM } } layer { name: "res4_1_stu_conv1_conv" type: "Convolution" bottom: "Eltwise4" top: "Convolution13" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res4_1_stu_conv1_bn" type: "BatchNorm" bottom: "Convolution13" top: "Convolution13" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res4_1_stu_conv1_sc" type: "Scale" bottom: "Convolution13" top: "Convolution13" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res4_1_stu_conv1_relu" type: "ReLU" bottom: "Convolution13" top: "Convolution13" } layer { name: "res4_1_stu_conv2_conv" type: "Convolution" bottom: "Convolution13" top: "Convolution14" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res4_1_stu_conv2_bn" type: "BatchNorm" bottom: "Convolution14" top: "Convolution14" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res4_1_stu_conv2_sc" type: "Scale" bottom: "Convolution14" top: "Convolution14" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res4_1_stu_conv2_relu" type: "ReLU" bottom: "Convolution14" top: "Convolution14" } layer { name: "res4_1_stu_projconv_conv" type: "Convolution" bottom: "Eltwise4" top: "Convolution15" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 group: 1 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res4_1_stu_projconv_bn" type: "BatchNorm" bottom: "Convolution15" top: "Convolution15" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res4_1_stu_projconv_sc" type: "Scale" bottom: "Convolution15" top: "Convolution15" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res4_1_stu_projconv_relu" type: "ReLU" bottom: "Convolution15" top: "Convolution15" } layer { name: "res4_1_stu_eltsum" type: "Eltwise" bottom: "Convolution14" bottom: "Convolution15" top: "Eltwise5" eltwise_param { operation: SUM } } layer { name: "res4_2_stu_conv1_conv" type: "Convolution" bottom: "Eltwise5" top: "Convolution16" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res4_2_stu_conv1_bn" type: "BatchNorm" bottom: "Convolution16" top: "Convolution16" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res4_2_stu_conv1_sc" type: "Scale" bottom: "Convolution16" top: "Convolution16" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res4_2_stu_conv1_relu" type: "ReLU" bottom: "Convolution16" top: "Convolution16" } layer { name: "res4_2_stu_conv2_conv" type: "Convolution" bottom: "Convolution16" top: "Convolution17" convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res4_2_stu_conv2_bn" type: "BatchNorm" bottom: "Convolution17" top: "Convolution17" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res4_2_stu_conv2_sc" type: "Scale" bottom: "Convolution17" top: "Convolution17" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res4_2_stu_conv2_relu" type: "ReLU" bottom: "Convolution17" top: "Convolution17" } layer { name: "res4_2_stu_eltsum" type: "Eltwise" bottom: "Convolution17" bottom: "Eltwise5" top: "Eltwise6" eltwise_param { operation: SUM } } layer { name: "res5_1_stu_conv1_conv" type: "Convolution" bottom: "Eltwise6" top: "Convolution18" convolution_param { num_output: 192 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res5_1_stu_conv1_bn" type: "BatchNorm" bottom: "Convolution18" top: "Convolution18" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res5_1_stu_conv1_sc" type: "Scale" bottom: "Convolution18" top: "Convolution18" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res5_1_stu_conv1_relu" type: "ReLU" bottom: "Convolution18" top: "Convolution18" } layer { name: "res5_1_stu_conv2_conv" type: "Convolution" bottom: "Convolution18" top: "Convolution19" convolution_param { num_output: 192 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res5_1_stu_conv2_bn" type: "BatchNorm" bottom: "Convolution19" top: "Convolution19" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res5_1_stu_conv2_sc" type: "Scale" bottom: "Convolution19" top: "Convolution19" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res5_1_stu_conv2_relu" type: "ReLU" bottom: "Convolution19" top: "Convolution19" } layer { name: "res5_1_stu_projconv_conv" type: "Convolution" bottom: "Eltwise6" top: "Convolution20" convolution_param { num_output: 192 bias_term: false pad: 0 kernel_size: 1 group: 1 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res5_1_stu_projconv_bn" type: "BatchNorm" bottom: "Convolution20" top: "Convolution20" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res5_1_stu_projconv_sc" type: "Scale" bottom: "Convolution20" top: "Convolution20" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res5_1_stu_projconv_relu" type: "ReLU" bottom: "Convolution20" top: "Convolution20" } layer { name: "res5_1_stu_eltsum" type: "Eltwise" bottom: "Convolution19" bottom: "Convolution20" top: "Eltwise7" eltwise_param { operation: SUM } } layer { name: "res5_2_stu_conv1_conv" type: "Convolution" bottom: "Eltwise7" top: "Convolution21" convolution_param { num_output: 192 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res5_2_stu_conv1_bn" type: "BatchNorm" bottom: "Convolution21" top: "Convolution21" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res5_2_stu_conv1_sc" type: "Scale" bottom: "Convolution21" top: "Convolution21" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res5_2_stu_conv1_relu" type: "ReLU" bottom: "Convolution21" top: "Convolution21" } layer { name: "res5_2_stu_conv2_conv" type: "Convolution" bottom: "Convolution21" top: "Convolution22" convolution_param { num_output: 192 bias_term: false pad: 1 kernel_size: 3 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res5_2_stu_conv2_bn" type: "BatchNorm" bottom: "Convolution22" top: "Convolution22" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res5_2_stu_conv2_sc" type: "Scale" bottom: "Convolution22" top: "Convolution22" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "res5_2_stu_conv2_relu" type: "ReLU" bottom: "Convolution22" top: "Convolution22" } layer { name: "res5_2_stu_eltsum" type: "Eltwise" bottom: "Convolution22" bottom: "Eltwise7" top: "Eltwise8" eltwise_param { operation: SUM } } layer { name: "fcn_s32_pre_conv" type: "Convolution" bottom: "Eltwise8" top: "Convolution23" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "fcn_s32_pre_bn" type: "BatchNorm" bottom: "Convolution23" top: "Convolution23" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "fcn_s32_pre_sc" type: "Scale" bottom: "Convolution23" top: "Convolution23" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "fcn_s32_pre_relu" type: "ReLU" bottom: "Convolution23" top: "Convolution23" } layer { name: "fcn_s32_conv" type: "Convolution" bottom: "Convolution23" top: "Convolution24" convolution_param { num_output: 128 bias_term: false pad: 2 kernel_size: 5 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "fcn_s32_bn" type: "BatchNorm" bottom: "Convolution24" top: "Convolution24" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "fcn_s32_sc" type: "Scale" bottom: "Convolution24" top: "Convolution24" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } ########### 9x9 ################ layer { name: "res_1x1_conv" type: "Convolution" bottom: "Convolution24" top: "res_1x1_conv" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "res_1x1_conv_bn" type: "BatchNorm" bottom: "res_1x1_conv" top: "res_1x1_conv" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "res_1x1_conv_sc" type: "Scale" bottom: "res_1x1_conv" top: "res_1x1_conv" param { lr_mult: 1.0 decay_mult: 0 } param { lr_mult: 1.0 decay_mult: 0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "global_pool1" type: "Pooling" bottom: "Convolution24" top: "global_pool1" pooling_param { pool: AVE kernel_size: 9 stride: 9 pad: 0 } } layer { name: "gp_1x1_conv" type: "Convolution" bottom: "global_pool1" top: "gp_1x1_conv" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "gp_1x1_conv_bn" type: "BatchNorm" bottom: "gp_1x1_conv" top: "gp_1x1_conv" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "gp_1x1_conv_sc" type: "Scale" bottom: "gp_1x1_conv" top: "gp_1x1_conv" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "up_s32" type: "Interp" bottom: "gp_1x1_conv" top: "Interp_gp" interp_param { height: 9 width: 9 } } layer { name: "Eltwise_gp" type: "Eltwise" bottom: "res_1x1_conv" bottom: "Interp_gp" top: "Eltwise_gp" eltwise_param { operation: SUM } } ################################ layer { name: "up_s16" type: "Deconvolution" bottom: "Eltwise_gp" top: "Interp1" convolution_param { num_output: 128 bias_term: false kernel_size: 2 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "lat_s16_conv" type: "Convolution" bottom: "Eltwise6" top: "Convolution25" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "lat_s16_bn" type: "BatchNorm" bottom: "Convolution25" top: "Convolution25" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "lat_s16_sc" type: "Scale" bottom: "Convolution25" top: "Convolution25" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "Eltwise9" type: "Eltwise" bottom: "Interp1" bottom: "Convolution25" top: "Eltwise9" eltwise_param { operation: SUM } } layer { name: "ReLU24" type: "ReLU" bottom: "Eltwise9" top: "Eltwise9" } layer { name: "fcn_s16_pre_conv" type: "Convolution" bottom: "Eltwise9" top: "Convolution26" convolution_param { num_output: 96 bias_term: false pad: 0 kernel_size: 1 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "fcn_s16_pre_bn" type: "BatchNorm" bottom: "Convolution26" top: "Convolution26" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "fcn_s16_pre_sc" type: "Scale" bottom: "Convolution26" top: "Convolution26" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "fcn_s16_pre_relu" type: "ReLU" bottom: "Convolution26" top: "Convolution26" } layer { name: "fcn_s16_conv" type: "Convolution" bottom: "Convolution26" top: "Convolution27" convolution_param { num_output: 128 bias_term: false pad: 2 kernel_size: 5 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "fcn_s16_bn" type: "BatchNorm" bottom: "Convolution27" top: "Convolution27" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "fcn_s16_sc" type: "Scale" bottom: "Convolution27" top: "Convolution27" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "up_s8" type: "Deconvolution" bottom: "Convolution27" top: "Interp2" convolution_param { num_output: 128 bias_term: false kernel_size: 2 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "lat_s8_conv" type: "Convolution" bottom: "Eltwise4" top: "Convolution28" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "lat_s8_bn" type: "BatchNorm" bottom: "Convolution28" top: "Convolution28" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "lat_s8_sc" type: "Scale" bottom: "Convolution28" top: "Convolution28" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "Eltwise10" type: "Eltwise" bottom: "Interp2" bottom: "Convolution28" top: "Eltwise10" eltwise_param { operation: SUM } } layer { name: "ReLU26" type: "ReLU" bottom: "Eltwise10" top: "Eltwise10" } layer { name: "fcn_s8_pre_conv" type: "Convolution" bottom: "Eltwise10" top: "Convolution29" convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "fcn_s8_pre_bn" type: "BatchNorm" bottom: "Convolution29" top: "Convolution29" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "fcn_s8_pre_sc" type: "Scale" bottom: "Convolution29" top: "Convolution29" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "fcn_s8_pre_relu" type: "ReLU" bottom: "Convolution29" top: "Convolution29" } layer { name: "fcn_s8_conv" type: "Convolution" bottom: "Convolution29" top: "Convolution30" convolution_param { num_output: 128 bias_term: false pad: 2 kernel_size: 5 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "fcn_s8_bn" type: "BatchNorm" bottom: "Convolution30" top: "Convolution30" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "fcn_s8_sc" type: "Scale" bottom: "Convolution30" top: "Convolution30" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "up_s4" type: "Deconvolution" bottom: "Convolution30" top: "Interp3" convolution_param { num_output: 128 bias_term: false kernel_size: 2 stride: 2 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "lat_s4_conv" type: "Convolution" bottom: "Eltwise2" top: "Convolution31" convolution_param { num_output: 128 bias_term: false pad: 0 kernel_size: 1 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "lat_s4_bn" type: "BatchNorm" bottom: "Convolution31" top: "Convolution31" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "lat_s4_sc" type: "Scale" bottom: "Convolution31" top: "Convolution31" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "Eltwise11" type: "Eltwise" bottom: "Interp3" bottom: "Convolution31" top: "Eltwise11" eltwise_param { operation: SUM } } layer { name: "ReLU28" type: "ReLU" bottom: "Eltwise11" top: "Eltwise11" } ########################reduceChannels from 10C########################### layer { name: "fcn_s4_pre_conv" type: "Convolution" bottom: "Eltwise11" top: "fcn_s4_conv" convolution_param { num_output: 64 bias_term: false pad: 0 kernel_size: 1 group: 1 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" } } } layer { name: "fcn_s4_pre_bn" type: "BatchNorm" bottom: "fcn_s4_conv" top: "fcn_s4_conv" batch_norm_param { moving_average_fraction: 0.9 } } layer { name: "fcn_s4_pre_sc" type: "Scale" bottom: "fcn_s4_conv" top: "fcn_s4_conv" scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "fcn_s4_pre_relu" type: "ReLU" bottom: "fcn_s4_conv" top: "fcn_s4_conv" } ################################################################# layer { name: "conv10_b0_kx1_m_LeakyRelu_" type: "Convolution" bottom: "fcn_s4_conv" top: "Convolution0523I" convolution_param { num_output: 2 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" value: 0.0 } pad_h: 0 pad_w: 4 kernel_h: 1 kernel_w: 9 } } layer { name: "conv10_b0_1xk_m_LeakyRelu_" type: "Convolution" bottom: "fcn_s4_conv" top: "Convolution0523II" convolution_param { num_output: 2 stride: 1 weight_filler { type: "msra" } bias_filler { type: "constant" value: 0.0 } pad_h: 4 pad_w: 0 kernel_h: 9 kernel_w: 1 } } layer { name: "conv2c_lk_eltwise" type: "Eltwise" bottom: "Convolution0523I" bottom: "Convolution0523II" top: "score" eltwise_param { operation: SUM } }