Created
September 17, 2017 09:14
-
-
Save zeakey/425ac1eee4366a6b06b94c013596bcdb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### dual top-down path network for instance-level salient object detection | |
name: "LERG" | |
layer { | |
name: "data" | |
type: "Python" | |
top: "data" | |
top: "label" | |
python_param { | |
module: "pylayer" | |
layer: "ImageLabelMapDataLayer" | |
param_str: "{\'phase\': \'train\', \'source\': \'list_shuffled.txt\', \'root\': \'data/SK-LARGE/\', \'shuffle\': False, \'mean\': (104.00699, 116.66877, 122.67892)}" | |
} | |
} | |
layer { | |
bottom: "data" | |
top: "conv1_1" | |
name: "conv1_1" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 | |
} | |
param { | |
lr_mult: 2 | |
decay_mult: 0 | |
} | |
convolution_param { | |
num_output: 64 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layer { | |
bottom: "conv1_1" | |
top: "conv1_1" | |
name: "relu1_1" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv1_1" | |
top: "conv1_2" | |
name: "conv1_2" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 | |
} | |
param { | |
lr_mult: 2 | |
decay_mult: 0 | |
} | |
convolution_param { | |
num_output: 64 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layer { | |
bottom: "conv1_2" | |
top: "conv1_2" | |
name: "relu1_2" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv1_2" | |
top: "pool1" | |
name: "pool1" | |
type: "Pooling" | |
pooling_param { | |
pool: MAX | |
kernel_size: 3 | |
stride: 2 | |
pad: 1 | |
} | |
} | |
layer { | |
bottom: "pool1" | |
top: "conv2_1" | |
name: "conv2_1" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 | |
} | |
param { | |
lr_mult: 2 | |
decay_mult: 0 | |
} | |
convolution_param { | |
num_output: 128 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layer { | |
bottom: "conv2_1" | |
top: "conv2_1" | |
name: "relu2_1" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv2_1" | |
top: "conv2_2" | |
name: "conv2_2" | |
type: "Convolution" | |
convolution_param { | |
num_output: 128 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layer { | |
bottom: "conv2_2" | |
top: "conv2_2" | |
name: "relu2_2" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv2_2" | |
top: "pool2" | |
name: "pool2" | |
type: "Pooling" | |
pooling_param { | |
pool: MAX | |
kernel_size: 3 | |
stride: 2 | |
pad: 1 | |
} | |
} | |
layer { | |
bottom: "pool2" | |
top: "conv3_1" | |
name: "conv3_1" | |
type: "Convolution" | |
convolution_param { | |
num_output: 256 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layer { | |
bottom: "conv3_1" | |
top: "conv3_1" | |
name: "relu3_1" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv3_1" | |
top: "conv3_2" | |
name: "conv3_2" | |
type: "Convolution" | |
convolution_param { | |
num_output: 256 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layer { | |
bottom: "conv3_2" | |
top: "conv3_2" | |
name: "relu3_2" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv3_2" | |
top: "conv3_3" | |
name: "conv3_3" | |
type: "Convolution" | |
convolution_param { | |
num_output: 256 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layer { | |
bottom: "conv3_3" | |
top: "conv3_3" | |
name: "relu3_3" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv3_3" | |
top: "pool3" | |
name: "pool3" | |
type: "Pooling" | |
pooling_param { | |
pool: MAX | |
kernel_size: 3 | |
stride: 2 | |
pad: 1 | |
} | |
} | |
layer { | |
bottom: "pool3" | |
top: "conv4_1" | |
name: "conv4_1" | |
type: "Convolution" | |
convolution_param { | |
num_output: 512 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layer { | |
bottom: "conv4_1" | |
top: "conv4_1" | |
name: "relu4_1" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv4_1" | |
top: "conv4_2" | |
name: "conv4_2" | |
type: "Convolution" | |
convolution_param { | |
num_output: 512 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layer { | |
bottom: "conv4_2" | |
top: "conv4_2" | |
name: "relu4_2" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv4_2" | |
top: "conv4_3" | |
name: "conv4_3" | |
type: "Convolution" | |
convolution_param { | |
num_output: 512 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layer { | |
bottom: "conv4_3" | |
top: "conv4_3" | |
name: "relu4_3" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv4_3" | |
top: "pool4" | |
name: "pool4" | |
type: "Pooling" | |
pooling_param { | |
pool: MAX | |
kernel_size: 3 | |
stride: 2 | |
pad: 1 | |
} | |
} | |
layer { | |
bottom: "pool4" | |
top: "conv5_1" | |
name: "conv5_1" | |
type: "Convolution" | |
convolution_param { | |
num_output: 512 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layer { | |
bottom: "conv5_1" | |
top: "conv5_1" | |
name: "relu5_1" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv5_1" | |
top: "conv5_2" | |
name: "conv5_2" | |
type: "Convolution" | |
convolution_param { | |
num_output: 512 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layer { | |
bottom: "conv5_2" | |
top: "conv5_2" | |
name: "relu5_2" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv5_2" | |
top: "conv5_3" | |
name: "conv5_3" | |
type: "Convolution" | |
convolution_param { | |
num_output: 512 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layer { | |
bottom: "conv5_3" | |
top: "conv5_3" | |
name: "relu5_3" | |
type: "ReLU" | |
} | |
####################Part 1###################### | |
layer { | |
bottom: "conv1_2" | |
top: "conv_11" | |
name: "conv_11" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 64 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
bottom: "conv2_2" | |
top: "conv_21" | |
name: "conv_21" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 64 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
name: "conv_21_up" | |
type: "Deconvolution" | |
bottom: "conv_21" | |
top: "conv_21_up" | |
param { | |
lr_mult: 0 | |
decay_mult: 1 | |
} | |
convolution_param { | |
kernel_size: 4 | |
stride: 2 | |
pad: 1 | |
num_output: 64 | |
group: 64 | |
weight_filler { type: "bilinear" } | |
bias_term: false | |
} | |
} | |
layer { | |
name: "crop21" | |
type: "Crop" | |
bottom: "conv_21_up" | |
bottom: "conv_11" | |
top: "crop21" | |
} | |
layer { | |
bottom: "conv3_3" | |
top: "conv_31" | |
name: "conv_31" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 64 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
name: "conv_31_up" | |
type: "Deconvolution" | |
bottom: "conv_31" | |
top: "conv_31_up" | |
param { | |
lr_mult: 0 | |
decay_mult: 1 | |
} | |
convolution_param { | |
kernel_size: 8 | |
stride: 4 | |
pad: 2 | |
group: 64 | |
num_output: 64 | |
weight_filler { type: "bilinear" } | |
bias_term: false | |
} | |
} | |
layer { | |
name: "crop31" | |
type: "Crop" | |
bottom: "conv_31_up" | |
bottom: "conv_11" | |
top: "crop31" | |
} | |
layer { | |
bottom: "conv4_3" | |
top: "conv_41" | |
name: "conv_41" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 64 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
name: "conv_41_up" | |
type: "Deconvolution" | |
bottom: "conv_41" | |
top: "conv_41_up" | |
param { | |
lr_mult: 0 | |
decay_mult: 1 | |
} | |
convolution_param { | |
kernel_size: 16 | |
stride: 8 | |
pad: 4 | |
group: 64 | |
num_output: 64 | |
weight_filler { type: "bilinear" } | |
bias_term: false | |
} | |
} | |
layer { | |
name: "crop41" | |
type: "Crop" | |
bottom: "conv_41_up" | |
bottom: "conv_11" | |
top: "crop41" | |
} | |
layer { | |
bottom: "conv5_3" | |
top: "conv_51" | |
name: "conv_51" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 64 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
name: "conv_51_up" | |
type: "Deconvolution" | |
bottom: "conv_51" | |
top: "conv_51_up" | |
param { | |
lr_mult: 0 | |
decay_mult: 1 | |
} | |
convolution_param { | |
kernel_size: 32 | |
stride: 16 | |
pad: 8 | |
group: 64 | |
num_output: 64 | |
weight_filler { type: "bilinear" } | |
bias_term: false | |
} | |
} | |
layer { | |
name: "crop51" | |
type: "Crop" | |
bottom: "conv_51_up" | |
bottom: "conv_11" | |
top: "crop51" | |
} | |
layer { | |
name: "conv1_sum" | |
type: "Eltwise" | |
bottom: "conv_11" | |
bottom: "crop21" | |
bottom: "crop31" | |
bottom: "crop41" | |
bottom: "crop51" | |
top: "conv1_sum" | |
} | |
layer { | |
bottom: "conv1_sum" | |
top: "conv1_sum" | |
name: "relu1_sum" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv1_sum" | |
top: "conv1_sum_c1" | |
name: "conv1_sum_c1" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 21 | |
pad: 1 | |
kernel_size: 3 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
bottom: "conv1_sum_c1" | |
top: "conv1_sum_c1" | |
name: "relu1_sum_c1" | |
type: "ReLU" | |
} | |
####################Part 2.1###################### | |
####################Part 2.2###################### | |
layer { | |
bottom: "conv2_2" | |
top: "conv_22" | |
name: "conv_22" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 128 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
bottom: "conv3_3" | |
top: "conv_32" | |
name: "conv_32" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 128 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
name: "conv_32_up" | |
type: "Deconvolution" | |
bottom: "conv_32" | |
top: "conv_32_up" | |
param { | |
lr_mult: 0 | |
decay_mult: 1 | |
} | |
convolution_param { | |
kernel_size: 4 | |
stride: 2 | |
pad: 1 | |
group: 128 | |
num_output: 128 | |
weight_filler { type: "bilinear" } | |
bias_term: false | |
} | |
} | |
layer { | |
name: "crop32" | |
type: "Crop" | |
bottom: "conv_32_up" | |
bottom: "conv_22" | |
top: "crop32" | |
} | |
layer { | |
bottom: "conv4_3" | |
top: "conv_42" | |
name: "conv_42" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 128 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
name: "conv_42_up" | |
type: "Deconvolution" | |
bottom: "conv_42" | |
top: "conv_42_up" | |
param { | |
lr_mult: 0 | |
decay_mult: 1 | |
} | |
convolution_param { | |
kernel_size: 8 | |
stride: 4 | |
pad: 2 | |
group: 128 | |
num_output: 128 | |
weight_filler { type: "bilinear" } | |
bias_term: false | |
} | |
} | |
layer { | |
name: "crop42" | |
type: "Crop" | |
bottom: "conv_42_up" | |
bottom: "conv_22" | |
top: "crop42" | |
} | |
layer { | |
bottom: "conv5_3" | |
top: "conv_52" | |
name: "conv_52" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 128 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
name: "conv_52_up" | |
type: "Deconvolution" | |
bottom: "conv_52" | |
top: "conv_52_up" | |
param { | |
lr_mult: 0 | |
decay_mult: 1 | |
} | |
convolution_param { | |
kernel_size: 16 | |
stride: 8 | |
pad: 4 | |
group: 128 | |
num_output: 128 | |
weight_filler { type: "bilinear" } | |
bias_term: false | |
} | |
} | |
layer { | |
name: "crop52" | |
type: "Crop" | |
bottom: "conv_52_up" | |
bottom: "conv_22" | |
top: "crop52" | |
} | |
layer { | |
name: "conv2_sum" | |
type: "Eltwise" | |
bottom: "conv_22" | |
bottom: "crop32" | |
bottom: "crop42" | |
bottom: "crop52" | |
top: "conv2_sum" | |
} | |
layer { | |
bottom: "conv2_sum" | |
top: "conv2_sum" | |
name: "relu2_sum" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv2_sum" | |
top: "conv2_sum_c1" | |
name: "conv2_sum_c1" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 21 | |
kernel_size: 3 | |
pad: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
bottom: "conv2_sum_c1" | |
top: "conv2_sum_c1" | |
name: "relu2_sum_c1" | |
type: "ReLU" | |
} | |
####################Part 2.3###################### | |
layer { | |
bottom: "conv3_3" | |
top: "conv_33" | |
name: "conv_33" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 256 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
bottom: "conv4_3" | |
top: "conv_43" | |
name: "conv_43" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 256 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
name: "conv_43_up" | |
type: "Deconvolution" | |
bottom: "conv_43" | |
top: "conv_43_up" | |
param { | |
lr_mult: 0 | |
decay_mult: 1 | |
} | |
convolution_param { | |
kernel_size: 4 | |
stride: 2 | |
pad: 1 | |
group: 256 | |
num_output: 256 | |
weight_filler { type: "bilinear" } | |
bias_term: false | |
} | |
} | |
layer { | |
name: "crop43" | |
type: "Crop" | |
bottom: "conv_43_up" | |
bottom: "conv_33" | |
top: "crop43" | |
} | |
layer { | |
bottom: "conv5_3" | |
top: "conv_53" | |
name: "conv_53" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 256 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
name: "conv_53_up" | |
type: "Deconvolution" | |
bottom: "conv_53" | |
top: "conv_53_up" | |
param { | |
lr_mult: 0 | |
decay_mult: 1 | |
} | |
convolution_param { | |
kernel_size: 8 | |
stride: 4 | |
pad: 2 | |
group: 256 | |
num_output: 256 | |
weight_filler { type: "bilinear" } | |
bias_term: false | |
} | |
} | |
layer { | |
name: "crop53" | |
type: "Crop" | |
bottom: "conv_53_up" | |
bottom: "conv_33" | |
top: "crop53" | |
} | |
layer { | |
name: "conv3_sum" | |
type: "Eltwise" | |
bottom: "conv_33" | |
bottom: "crop43" | |
bottom: "crop53" | |
top: "conv3_sum" | |
} | |
layer { | |
bottom: "conv3_sum" | |
top: "conv3_sum" | |
name: "relu3_sum" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv3_sum" | |
top: "conv3_sum_c1" | |
name: "conv3_sum_c1" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 21 | |
pad: 1 | |
kernel_size: 3 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
bottom: "conv3_sum_c1" | |
top: "conv3_sum_c1" | |
name: "relu3_sum_c1" | |
type: "ReLU" | |
} | |
####################Part 2.4###################### | |
layer { | |
bottom: "conv4_3" | |
top: "conv4_trans" | |
name: "conv4_trans" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 256 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
bottom: "conv5_3" | |
top: "conv5_trans" | |
name: "conv5_trans" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 256 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
name: "conv5_trans_up" | |
type: "Deconvolution" | |
bottom: "conv5_trans" | |
top: "conv5_trans_up" | |
param { | |
lr_mult: 0 | |
decay_mult: 1 | |
} | |
convolution_param { | |
kernel_size: 4 | |
stride: 2 | |
pad: 1 | |
group: 256 | |
num_output: 256 | |
weight_filler { type: "bilinear" } | |
bias_term: false | |
} | |
} | |
layer { | |
name: "conv5_trans_crop" | |
type: "Crop" | |
bottom: "conv5_trans_up" | |
bottom: "conv4_trans" | |
top: "conv5_trans_crop" | |
} | |
layer { | |
name: "conv4_sum" | |
type: "Eltwise" | |
bottom: "conv4_trans" | |
bottom: "conv5_trans_crop" | |
top: "conv4_sum" | |
eltwise_param { | |
operation: SUM | |
} | |
} | |
layer { | |
bottom: "conv4_sum" | |
top: "conv4_sum" | |
name: "relu4_sum" | |
type: "ReLU" | |
} | |
layer { | |
bottom: "conv4_sum" | |
top: "conv4_sum_c1" | |
name: "conv4_sum_c1" | |
type: "Convolution" | |
param { | |
lr_mult: 1 | |
decay_mult: 1 } | |
convolution_param { | |
num_output: 21 | |
pad: 1 | |
kernel_size: 3 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_term: false | |
} | |
} | |
layer { | |
bottom: "conv4_sum_c1" | |
top: "conv4_sum_c1" | |
name: "relu4_sum_c1" | |
type: "ReLU" | |
} | |
####################Part 2.5###################### | |
#---- | |
layer { name: 'score-dsn1' type: "Convolution" bottom: 'conv1_sum_c1' top: 'score-dsn1' | |
param { lr_mult: 0.01 decay_mult: 1 } param { lr_mult: 0.02 decay_mult: 0} | |
convolution_param { engine: CAFFE num_output: 1 kernel_size: 1 | |
weight_filler { type: "gaussian" std: 0.01 } } } | |
#--- | |
layer { name: 'score-dsn2' type: "Convolution" bottom: 'conv2_sum_c1' top: 'score-dsn2' | |
param { lr_mult: 0.01 decay_mult: 1 } param { lr_mult: 0.02 decay_mult: 0} | |
convolution_param { engine: CAFFE num_output: 1 kernel_size: 1 | |
weight_filler { type: "gaussian" std: 0.01 } } } | |
#-- | |
layer { name: 'score-dsn3' type: "Convolution" bottom: 'conv3_sum_c1' top: 'score-dsn3' | |
param { lr_mult: 0.01 decay_mult: 1 } param { lr_mult: 0.02 decay_mult: 0} | |
convolution_param { engine: CAFFE num_output: 1 kernel_size: 1 | |
weight_filler { type: "gaussian" std: 0.01 } } } | |
#- | |
layer { name: 'score-dsn4' type: "Convolution" bottom: 'conv4_sum_c1' top: 'score-dsn4' | |
param { lr_mult: 0.01 decay_mult: 1 } param { lr_mult: 0.02 decay_mult: 0} | |
convolution_param { engine: CAFFE num_output: 2 kernel_size: 1 | |
weight_filler { type: "gaussian" std: 0.01 } } } | |
layer{ | |
type: "Slice" name: "slice4" | |
bottom: "score-dsn4" | |
top: "score-dsn4-slice1" | |
top: "score-dsn4-slice2" | |
slice_param { | |
axis: 1 | |
slice_point: 1 | |
} | |
} | |
# the loss of side output4 | |
layer { type: "Deconvolution" name: 'upsample_8' bottom: 'score-dsn4-slice2' top: 'concat4-score-up-loss' | |
param { lr_mult: 0 decay_mult: 1 } param { lr_mult: 0 decay_mult: 0} | |
convolution_param { kernel_size: 16 stride: 8 num_output: 1 weight_filler { type: "bilinear" } } } | |
layer { type: "Crop" name: 'crop4-loss' bottom: 'concat4-score-up-loss' bottom: 'data' top: 'concat4-score-loss' } | |
layer { type: "BalanceCrossEntropyLoss" name: 'dsn4_loss' bottom: 'concat4-score-loss' bottom: 'label' top:'dsn4_loss' loss_weight: 1} | |
#- | |
# 2x | |
layer { type: "Deconvolution" name: 'upsample_4_3' bottom: 'score-dsn4-slice1' top: 'score-dsn4-up' | |
param { lr_mult: 0 decay_mult: 1 } param { lr_mult: 0 decay_mult: 0} | |
convolution_param { kernel_size: 4 stride: 2 num_output: 1 weight_filler { type: "bilinear" } } } | |
layer { type: "Crop" name: 'crop4' bottom: 'score-dsn4-up' bottom: 'score-dsn3' top: 'upscore-dsn4' } | |
layer { name: "concat_4_3" bottom: "upscore-dsn4" bottom: "score-dsn3" top: "concat-upscore3" type: "Concat" | |
concat_param { concat_dim: 1} } | |
layer { | |
name: 'cat3-score' type: "Convolution" | |
bottom: 'concat-upscore3' top: 'concat3-score' | |
param { lr_mult: 0.05 decay_mult: 1 } param { lr_mult: 0.002 decay_mult: 0} | |
convolution_param { engine: CAFFE num_output: 2 kernel_size: 1 weight_filler {type: "constant" value: 0.25 } } | |
} | |
layer{ | |
type: "Slice" name: "slice3" | |
bottom: "concat3-score" | |
top: "concat3-score-slice1" | |
top: "concat3-score-slice2" | |
slice_param { | |
axis: 1 | |
slice_point: 1 | |
} | |
} | |
# the loss of side output3 | |
layer { type: "Deconvolution" name: 'upsample_4' bottom: 'concat3-score-slice2' top: 'concat3-score-up-loss' | |
param { lr_mult: 0 decay_mult: 1 } param { lr_mult: 0 decay_mult: 0} | |
convolution_param { kernel_size: 8 stride: 4 num_output: 1 weight_filler { type: "bilinear" } } } | |
layer { type: "Crop" name: 'crop3-loss' bottom: 'concat3-score-up-loss' bottom: 'data' top: 'concat3-score-loss' } | |
layer { type: "BalanceCrossEntropyLoss" name: 'dsn3_loss' bottom: 'concat3-score-loss' bottom: 'label' top:'dsn3_loss' loss_weight: 1} | |
#-- | |
# 2x | |
layer { type: "Deconvolution" name: 'upsample_3_2' bottom: 'concat3-score-slice1' top: 'score-dsn3-up' | |
param { lr_mult: 0 decay_mult: 1 } param { lr_mult: 0 decay_mult: 0} | |
convolution_param { kernel_size: 4 stride: 2 num_output: 1 weight_filler { type: "bilinear" } } } | |
layer { type: "Crop" name: 'crop3' bottom: 'score-dsn3-up' bottom: 'score-dsn2' top: 'upscore-dsn3' } | |
layer { name: "concat_3_2" bottom: "upscore-dsn3" bottom: "score-dsn2" top: "concat-upscore2" type: "Concat" | |
concat_param { concat_dim: 1} } | |
layer { | |
name: 'cat2-score' type: "Convolution" | |
bottom: 'concat-upscore2' top: 'concat2-score' | |
param { lr_mult: 0.05 decay_mult: 1 } param { lr_mult: 0.002 decay_mult: 0} | |
convolution_param { engine: CAFFE num_output: 2 kernel_size: 1 weight_filler {type: "constant" value: 0.25 } } | |
} | |
layer{ | |
type: "Slice" name: "slice2" | |
bottom: "concat2-score" | |
top: "concat2-score-slice1" | |
top: "concat2-score-slice2" | |
slice_param { | |
axis: 1 | |
slice_point: 1 | |
} | |
} | |
# the loss of side output2 | |
layer { type: "Deconvolution" name: 'upsample_2' bottom: 'concat2-score-slice2' top: 'concat2-score-up-loss' | |
param { lr_mult: 0 decay_mult: 1 } param { lr_mult: 0 decay_mult: 0} | |
convolution_param { kernel_size: 4 stride: 2 num_output: 1 weight_filler { type: "bilinear" } } } | |
layer { type: "Crop" name: 'crop2-loss' bottom: 'concat2-score-up-loss' bottom: 'data' top: 'concat2-score-loss' } | |
layer { type: "BalanceCrossEntropyLoss" name: 'dsn2_loss' bottom: 'concat2-score-loss' bottom: 'label' top:'dsn2_loss' loss_weight: 1} | |
#--- | |
# 2x | |
layer { type: "Deconvolution" name: 'upsample_2_1' bottom: 'concat2-score-slice1' top: 'score-dsn2-up' | |
param { lr_mult: 0 decay_mult: 1 } param { lr_mult: 0 decay_mult: 0} | |
convolution_param { kernel_size: 4 stride: 2 num_output: 1 weight_filler { type: "bilinear" } } } | |
layer { type: "Crop" name: 'crop2' bottom: 'score-dsn2-up' bottom: 'score-dsn1' top: 'upscore-dsn2' } | |
layer { name: "concat_2_1" bottom: "upscore-dsn2" bottom: "score-dsn1" top: "concat-upscore1" type: "Concat" | |
concat_param { concat_dim: 1} } | |
layer { | |
name: 'cat1-score' type: "Convolution" | |
bottom: 'concat-upscore1' top: 'concat1-score' | |
param { lr_mult: 0.05 decay_mult: 1 } param { lr_mult: 0.002 decay_mult: 0} | |
convolution_param { engine: CAFFE num_output: 1 kernel_size: 1 weight_filler {type: "constant" value: 0.25 } } | |
} | |
# the loss of side output1 | |
layer { type: "Deconvolution" name: 'upsample' bottom: 'concat1-score' top: 'concat1-score-up-loss' | |
param { lr_mult: 0 decay_mult: 1 } param { lr_mult: 0 decay_mult: 0} | |
convolution_param { kernel_size: 4 stride: 2 num_output: 1 weight_filler { type: "bilinear" } } } | |
layer { type: "Crop" name: 'crop1-loss' bottom: 'concat1-score-up-loss' bottom: 'data' top: 'concat1-score-loss' } | |
layer { type: "BalanceCrossEntropyLoss" name: 'dsn1_loss' bottom: 'concat1-score-loss' bottom: 'label' top:'dsn1_loss' loss_weight: 1} | |
#---- | |
#----- | |
#----------------------------------------------------------- | |
### Concat and multiscale weight layer ### | |
layer { name: "concat" bottom: "concat1-score-loss" bottom: "concat2-score-loss" | |
bottom: "concat3-score-loss" bottom: "concat4-score-loss" top: "concat-upscore" type: "Concat" | |
concat_param { concat_dim: 1} } | |
layer { name: 'new-score-weighting' type: "Convolution" bottom: 'concat-upscore' top: 'upscore-fuse' | |
param { lr_mult: 0.001 decay_mult: 1 } param { lr_mult: 0.002 decay_mult: 0} | |
convolution_param { engine: CAFFE num_output: 1 kernel_size: 1 weight_filler {type: "constant" value: 0.2} } } | |
layer { type: "BalanceCrossEntropyLoss" bottom: "upscore-fuse" bottom: "label" top:"fuse_loss" name: "fuse_loss" loss_weight: 1} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment