Architecture of Anatomy-Guided Densely-Connected U-Net
# This is the architecture of Anatomy-Guided Densely-Connected U-Net (ADU-Net) in the paper of
# L. Wang, G. Li, F. Shi, X. Cao, C. Lian, D. Nie, et al., “Volume-based analysis of 6-month-old infant brain MRI for autism biomarker identification and early diagnosis,” in MICCAI, 2018, pp. 411-419.
# Note that in the testing phase, you have to change “use_global_stats: false” to “use_global_stats: true”
name: “Anatomy-Guided Densely-Connected U-Net”
layer {
name: “data”
type: “HDF5Data”
top: “dataT1w”
top: “dataT2w”
top: “dataAnatomy”
top: “dataSeg”
include {
phase: TRAIN
}
hdf5_data_param {
source: “./trainInfant3D_list.txt”
batch_size: 3
shuffle: true
}
}
layer {
name: “data”
type: “HDF5Data”
top: “dataT1w”
top: “dataT2w”
top: “dataAnatomy”
top: “dataSeg”
include {
phase: TEST
}
hdf5_data_param {
source: “./testInfant3D_list.txt”
batch_size: 3
shuffle: true
}
}
layer {
name: “concat”
type: “Concat”
bottom: “dataT1w”
bottom: “dataT2w”
bottom: “dataAnatomy”
top: “data”
}
#————-layer group 1—————
layer {
name: “conv1a-Convolution”
type: “Convolution”
bottom: “data”
top: “conv1a-Convolution”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 64
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
## BN
layer {
name: “conv1a-BatchNorm”
type: “BatchNorm”
bottom: “conv1a-Convolution”
top: “conv1a-BatchNorm”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “conv1a-BatchNorm”
top: “conv1a-BatchNorm”
name: “conv1a-Scale”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “conv1a-ReLU”
type: “ReLU”
bottom: “conv1a-BatchNorm”
top: “conv1a-BatchNorm”
}
###################################################### BEGIN
layer {
name: “conv1b-Convolution1”
type: “Convolution”
bottom: “conv1a-BatchNorm”
top: “conv1b-Convolution1”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 64
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv1b-BatchNorm1”
type: “BatchNorm”
bottom: “conv1b-Convolution1”
top: “conv1b-BatchNorm1”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv1b-Scale1”
type: “Scale”
bottom: “conv1b-BatchNorm1”
top: “conv1b-BatchNorm1”
scale_param {
bias_term: true
}
}
layer {
name: “conv1b-ReLU1”
type: “ReLU”
bottom: “conv1b-BatchNorm1”
top: “conv1b-BatchNorm1”
}
layer {
name: “conv1b-Convolution2”
type: “Convolution”
bottom: “conv1b-BatchNorm1”
top: “conv1b-Convolution2”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 16
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv1b-Dropout1”
type: “Dropout”
bottom: “conv1b-Convolution2”
top: “conv1b-Dropout1”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv1b-Concat1”
type: “Concat”
bottom: “conv1b-Convolution1”
bottom: “conv1b-Dropout1”
top: “conv1b-Concat1”
concat_param {
axis: 1
}
}
layer {
name: “conv1b-BatchNorm2”
type: “BatchNorm”
bottom: “conv1b-Concat1”
top: “conv1b-BatchNorm2”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv1b-Scale2”
type: “Scale”
bottom: “conv1b-BatchNorm2”
top: “conv1b-BatchNorm2”
scale_param {
bias_term: true
}
}
layer {
name: “conv1b-ReLU2”
type: “ReLU”
bottom: “conv1b-BatchNorm2”
top: “conv1b-BatchNorm2”
}
layer {
name: “conv1b-Convolution3”
type: “Convolution”
bottom: “conv1b-BatchNorm2”
top: “conv1b-Convolution3”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 16
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv1b-Dropout2”
type: “Dropout”
bottom: “conv1b-Convolution3”
top: “conv1b-Dropout2”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv1b-Concat2”
type: “Concat”
bottom: “conv1b-Concat1”
bottom: “conv1b-Dropout2”
top: “conv1b-Concat2”
concat_param {
axis: 1
}
}
layer {
name: “conv1b-BatchNorm3”
type: “BatchNorm”
bottom: “conv1b-Concat2”
top: “conv1b-BatchNorm3”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv1b-Scale3”
type: “Scale”
bottom: “conv1b-BatchNorm3”
top: “conv1b-BatchNorm3”
scale_param {
bias_term: true
}
}
layer {
name: “conv1b-ReLU3”
type: “ReLU”
bottom: “conv1b-BatchNorm3”
top: “conv1b-BatchNorm3”
}
layer {
name: “conv1b-Convolution4”
type: “Convolution”
bottom: “conv1b-BatchNorm3”
top: “conv1b-Convolution4”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 16
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv1b-Dropout3”
type: “Dropout”
bottom: “conv1b-Convolution4”
top: “conv1b-Dropout3”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv1b-Concat3”
type: “Concat”
bottom: “conv1b-Concat2”
bottom: “conv1b-Dropout3”
top: “conv1b-Concat3”
concat_param {
axis: 1
}
}
###################################################### END
## BN
layer {
name: “conv1b-BatchNorm”
type: “BatchNorm”
bottom: “conv1b-Concat3”
top: “conv1b-BatchNorm”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “conv1b-BatchNorm”
top: “conv1b-BatchNorm”
name: “conv1b-Scale”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “conv1b-ReLU”
type: “ReLU”
bottom: “conv1b-BatchNorm”
top: “conv1b-BatchNorm”
}
layer {
name: “conv1c-Convolution”
type: “Convolution”
bottom: “conv1b-BatchNorm”
top: “conv1c-Convolution”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 64
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
## BN
layer {
name: “conv1c-BatchNorm”
type: “BatchNorm”
bottom: “conv1c-Convolution”
top: “conv1c-BatchNorm”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “conv1c-BatchNorm”
top: “conv1c-BatchNorm”
name: “conv1c-Scale”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “conv1c-ReLU”
type: “ReLU”
bottom: “conv1c-BatchNorm”
top: “conv1c-BatchNorm”
}
layer {
name: “pool1”
type: “Pooling”
bottom: “conv1c-BatchNorm”
top: “pool1”
pooling_param {
#pool: AVE
pool: MAX
kernel_size: 3
stride: 2
engine: CUDNN
}
}
#————-layer group 2—————
###################################################### BEGIN
layer {
name: “conv2a-Convolution1”
type: “Convolution”
bottom: “pool1”
top: “conv2a-Convolution1”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 64
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv2a-BatchNorm1”
type: “BatchNorm”
bottom: “conv2a-Convolution1”
top: “conv2a-BatchNorm1”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv2a-Scale1”
type: “Scale”
bottom: “conv2a-BatchNorm1”
top: “conv2a-BatchNorm1”
scale_param {
bias_term: true
}
}
layer {
name: “conv2a-ReLU1”
type: “ReLU”
bottom: “conv2a-BatchNorm1”
top: “conv2a-BatchNorm1”
}
layer {
name: “conv2a-Convolution2”
type: “Convolution”
bottom: “conv2a-BatchNorm1”
top: “conv2a-Convolution2”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv2a-Dropout1”
type: “Dropout”
bottom: “conv2a-Convolution2”
top: “conv2a-Dropout1”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv2a-Concat1”
type: “Concat”
bottom: “conv2a-Convolution1”
bottom: “conv2a-Dropout1”
top: “conv2a-Concat1”
concat_param {
axis: 1
}
}
layer {
name: “conv2a-BatchNorm2”
type: “BatchNorm”
bottom: “conv2a-Concat1”
top: “conv2a-BatchNorm2”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv2a-Scale2”
type: “Scale”
bottom: “conv2a-BatchNorm2”
top: “conv2a-BatchNorm2”
scale_param {
bias_term: true
}
}
layer {
name: “conv2a-ReLU2”
type: “ReLU”
bottom: “conv2a-BatchNorm2”
top: “conv2a-BatchNorm2”
}
layer {
name: “conv2a-Convolution3”
type: “Convolution”
bottom: “conv2a-BatchNorm2”
top: “conv2a-Convolution3”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv2a-Dropout2”
type: “Dropout”
bottom: “conv2a-Convolution3”
top: “conv2a-Dropout2”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv2a-Concat2”
type: “Concat”
bottom: “conv2a-Concat1”
bottom: “conv2a-Dropout2”
top: “conv2a-Concat2”
concat_param {
axis: 1
}
}
layer {
name: “conv2a-BatchNorm3”
type: “BatchNorm”
bottom: “conv2a-Concat2”
top: “conv2a-BatchNorm3”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv2a-Scale3”
type: “Scale”
bottom: “conv2a-BatchNorm3”
top: “conv2a-BatchNorm3”
scale_param {
bias_term: true
}
}
layer {
name: “conv2a-ReLU3”
type: “ReLU”
bottom: “conv2a-BatchNorm3”
top: “conv2a-BatchNorm3”
}
layer {
name: “conv2a-Convolution4”
type: “Convolution”
bottom: “conv2a-BatchNorm3”
top: “conv2a-Convolution4”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv2a-Dropout3”
type: “Dropout”
bottom: “conv2a-Convolution4”
top: “conv2a-Dropout3”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv2a-Concat3”
type: “Concat”
bottom: “conv2a-Concat2”
bottom: “conv2a-Dropout3”
top: “conv2a”
concat_param {
axis: 1
}
}
###################################################### END
## BN
layer {
name: “conv2a-BatchNorm”
type: “BatchNorm”
bottom: “conv2a”
top: “conv2a-BatchNorm”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “conv2a-BatchNorm”
top: “conv2a-BatchNorm”
name: “conv2a-Scale”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “conv2a-ReLU”
type: “ReLU”
bottom: “conv2a-BatchNorm”
top: “conv2a-BatchNorm”
}
layer {
name: “conv2b-Convolution”
type: “Convolution”
bottom: “conv2a-BatchNorm”
top: “conv2b-Convolution”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 128
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
## BN
layer {
name: “conv2b-BatchNorm”
type: “BatchNorm”
bottom: “conv2b-Convolution”
top: “conv2b-BatchNorm”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “conv2b-BatchNorm”
top: “conv2b-BatchNorm”
name: “conv2b-Scale”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “conv2b-ReLU”
type: “ReLU”
bottom: “conv2b-BatchNorm”
top: “conv2b-BatchNorm”
}
layer {
name: “pool2”
type: “Pooling”
bottom: “conv2b-BatchNorm”
top: “pool2”
pooling_param {
#pool: AVE
pool: MAX
kernel_size: 3
stride: 2
engine: CUDNN
}
}
#————-layer group 3—————
layer {
name: “conv3a-Convolution”
type: “Convolution”
bottom: “pool2”
top: “conv3a-Convolution”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 128
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
## BN
layer {
name: “conv3a-BatchNorm”
type: “BatchNorm”
bottom: “conv3a-Convolution”
top: “conv3a-BatchNorm”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “conv3a-BatchNorm”
top: “conv3a-BatchNorm”
name: “conv3a-Scale”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “conv3a-ReLU”
type: “ReLU”
bottom: “conv3a-BatchNorm”
top: “conv3a-BatchNorm”
}
layer {
name: “pool3”
type: “Pooling”
bottom: “conv3a-BatchNorm”
top: “pool3”
pooling_param {
#pool: AVE
pool: MAX
kernel_size: 3
stride: 2
engine: CUDNN
}
}
#————layer group 4————-
layer {
name: “Deconvolution1”
type: “Deconvolution”
bottom: “pool3” #size is 4*4*4
top: “Deconvolution1”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 128
#bias_term: false
engine: CUDNN
kernel_size: 4
pad: 1
stride: 2
weight_filler {
type: “xavier”
#std: 0.01
}
}
}
layer {
name: “Longskip1”
type: “Concat”
bottom: “conv3a-Convolution”
bottom: “Deconvolution1”
top: “Longskip1”
concat_param {
concat_dim:1
}
}
#### add BN
## BN
layer {
name: “Longskip1-BatchNorm”
type: “BatchNorm”
bottom: “Longskip1”
top: “Longskip1-BatchNorm”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “Longskip1-BatchNorm”
top: “Longskip1-BatchNorm”
name: “LongSkip1-Scale”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “LongSkip1-ReLU”
type: “ReLU”
bottom: “Longskip1-BatchNorm”
top: “Longskip1-BatchNorm”
}
###################################################### BEGIN
layer {
name: “conv4-Convolution1”
type: “Convolution”
bottom: “Longskip1-BatchNorm”
top: “conv4-Convolution1”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 256
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv4-BatchNorm1”
type: “BatchNorm”
bottom: “conv4-Convolution1”
top: “conv4-BatchNorm1”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv4-Scale1”
type: “Scale”
bottom: “conv4-BatchNorm1”
top: “conv4-BatchNorm1”
scale_param {
bias_term: true
}
}
layer {
name: “conv4-ReLU1”
type: “ReLU”
bottom: “conv4-BatchNorm1”
top: “conv4-BatchNorm1”
}
layer {
name: “conv4-Convolution2”
type: “Convolution”
bottom: “conv4-BatchNorm1”
top: “conv4-Convolution2”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv4-Dropout1”
type: “Dropout”
bottom: “conv4-Convolution2”
top: “conv4-Dropout1”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv4-Concat1”
type: “Concat”
bottom: “conv4-Convolution1”
bottom: “conv4-Dropout1”
top: “conv4-Concat1”
concat_param {
axis: 1
}
}
layer {
name: “conv4-BatchNorm2”
type: “BatchNorm”
bottom: “conv4-Concat1”
top: “conv4-BatchNorm2”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv4-Scale2”
type: “Scale”
bottom: “conv4-BatchNorm2”
top: “conv4-BatchNorm2”
scale_param {
bias_term: true
}
}
layer {
name: “conv4-ReLU2”
type: “ReLU”
bottom: “conv4-BatchNorm2”
top: “conv4-BatchNorm2”
}
layer {
name: “conv4-Convolution3”
type: “Convolution”
bottom: “conv4-BatchNorm2”
top: “conv4-Convolution3”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv4-Dropout2”
type: “Dropout”
bottom: “conv4-Convolution3”
top: “conv4-Dropout2”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv4-Concat2”
type: “Concat”
bottom: “conv4-Concat1”
bottom: “conv4-Dropout2”
top: “conv4-Concat2”
concat_param {
axis: 1
}
}
layer {
name: “conv4-BatchNorm3”
type: “BatchNorm”
bottom: “conv4-Concat2”
top: “conv4-BatchNorm3”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv4-Scale3”
type: “Scale”
bottom: “conv4-BatchNorm3”
top: “conv4-BatchNorm3”
scale_param {
bias_term: true
}
}
layer {
name: “conv4-ReLU3”
type: “ReLU”
bottom: “conv4-BatchNorm3”
top: “conv4-BatchNorm3”
}
layer {
name: “conv4-Convolution4”
type: “Convolution”
bottom: “conv4-BatchNorm3”
top: “conv4-Convolution4”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv4-Dropout3”
type: “Dropout”
bottom: “conv4-Convolution4”
top: “conv4-Dropout3”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv4-Concat3”
type: “Concat”
bottom: “conv4-Concat2”
bottom: “conv4-Dropout3”
top: “conv4”
concat_param {
axis: 1
}
}
###################################################### END
## BN
layer {
name: “conv4_bn”
type: “BatchNorm”
bottom: “conv4”
top: “conv4_bn”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “conv4_bn”
top: “conv4_bn”
name: “scale_conv4_fine”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “relu4a”
type: “ReLU”
bottom: “conv4_bn”
top: “conv4_bn”
}
#————layer group 5————-
layer {
name: “Deconvolution2”
type: “Deconvolution”
bottom: “conv4_bn”
top: “Deconvolution2”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 128
#bias_term: false
engine: CUDNN
kernel_size: 4
pad: 1
stride: 2
weight_filler {
type: “xavier”
#std: 0.01
}
}
}
layer {
name: “LongSkip2”
type: “Concat”
bottom: “conv2b-Convolution”
bottom: “Deconvolution2”
top: “LongSkip2”
concat_param {
concat_dim:1
}
}
#### add BN
layer {
name: “LongSkip2-BatchNorm”
type: “BatchNorm”
bottom: “LongSkip2”
top: “LongSkip2-BatchNorm”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “LongSkip2-BatchNorm”
top: “LongSkip2-BatchNorm”
name: “LongSkip2-Scale”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “LongSkip2-ReLU”
type: “ReLU”
bottom: “LongSkip2-BatchNorm”
top: “LongSkip2-BatchNorm”
}
###################################################### BEGIN
layer {
name: “conv5-Convolution1”
type: “Convolution”
bottom: “LongSkip2-BatchNorm”
top: “conv5-Convolution1”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 256
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv5-BatchNorm1”
type: “BatchNorm”
bottom: “conv5-Convolution1”
top: “conv5-BatchNorm1”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv5-Scale1”
type: “Scale”
bottom: “conv5-BatchNorm1”
top: “conv5-BatchNorm1”
scale_param {
bias_term: true
}
}
layer {
name: “conv5-ReLU1”
type: “ReLU”
bottom: “conv5-BatchNorm1”
top: “conv5-BatchNorm1”
}
layer {
name: “conv5-Convolution2”
type: “Convolution”
bottom: “conv5-BatchNorm1”
top: “conv5-Convolution2”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv5-Dropout1”
type: “Dropout”
bottom: “conv5-Convolution2”
top: “conv5-Dropout1”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv5-Concat1”
type: “Concat”
bottom: “conv5-Convolution1”
bottom: “conv5-Dropout1”
top: “conv5-Concat1”
concat_param {
axis: 1
}
}
layer {
name: “conv5-BatchNorm2”
type: “BatchNorm”
bottom: “conv5-Concat1”
top: “conv5-BatchNorm2”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv5-Scale2”
type: “Scale”
bottom: “conv5-BatchNorm2”
top: “conv5-BatchNorm2”
scale_param {
bias_term: true
}
}
layer {
name: “conv5-ReLU2”
type: “ReLU”
bottom: “conv5-BatchNorm2”
top: “conv5-BatchNorm2”
}
layer {
name: “conv5-Convolution3”
type: “Convolution”
bottom: “conv5-BatchNorm2”
top: “conv5-Convolution3”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv5-Dropout2”
type: “Dropout”
bottom: “conv5-Convolution3”
top: “conv5-Dropout2”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv5-Concat2”
type: “Concat”
bottom: “conv5-Concat1”
bottom: “conv5-Dropout2”
top: “conv5-Concat2”
concat_param {
axis: 1
}
}
layer {
name: “conv5-BatchNorm3”
type: “BatchNorm”
bottom: “conv5-Concat2”
top: “conv5-BatchNorm3”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv5-Scale3”
type: “Scale”
bottom: “conv5-BatchNorm3”
top: “conv5-BatchNorm3”
scale_param {
bias_term: true
}
}
layer {
name: “conv5-ReLU3”
type: “ReLU”
bottom: “conv5-BatchNorm3”
top: “conv5-BatchNorm3”
}
layer {
name: “conv5-Convolution4”
type: “Convolution”
bottom: “conv5-BatchNorm3”
top: “conv5-Convolution4”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv5-Dropout3”
type: “Dropout”
bottom: “conv5-Convolution4”
top: “conv5-Dropout3”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv5-Concat3”
type: “Concat”
bottom: “conv5-Concat2”
bottom: “conv5-Dropout3”
top: “conv5”
concat_param {
axis: 1
}
}
###################################################### END
## BN
layer {
name: “conv5_BatchNorm”
type: “BatchNorm”
bottom: “conv5”
top: “conv5_BatchNorm”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “conv5_BatchNorm”
top: “conv5_BatchNorm”
name: “conv5_Scale”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “conv5_ReLU”
type: “ReLU”
bottom: “conv5_BatchNorm”
top: “conv5_BatchNorm”
}
###################################################### BEGIN
layer {
name: “conv5_2-Convolution1”
type: “Convolution”
bottom: “conv5_BatchNorm”
top: “conv5_2-Convolution1”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 256
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv5_2-BatchNorm1”
type: “BatchNorm”
bottom: “conv5_2-Convolution1”
top: “conv5_2-BatchNorm1”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv5_2-Scale1”
type: “Scale”
bottom: “conv5_2-BatchNorm1”
top: “conv5_2-BatchNorm1”
scale_param {
bias_term: true
}
}
layer {
name: “conv5_2-ReLU1”
type: “ReLU”
bottom: “conv5_2-BatchNorm1”
top: “conv5_2-BatchNorm1”
}
layer {
name: “conv5_2-Convolution2”
type: “Convolution”
bottom: “conv5_2-BatchNorm1”
top: “conv5_2-Convolution2”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv5_2-Dropout1”
type: “Dropout”
bottom: “conv5_2-Convolution2”
top: “conv5_2-Dropout1”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv5_2-Concat1”
type: “Concat”
bottom: “conv5_2-Convolution1”
bottom: “conv5_2-Dropout1”
top: “conv5_2-Concat1”
concat_param {
axis: 1
}
}
layer {
name: “conv5_2-BatchNorm2”
type: “BatchNorm”
bottom: “conv5_2-Concat1”
top: “conv5_2-BatchNorm2”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv5_2-Scale2”
type: “Scale”
bottom: “conv5_2-BatchNorm2”
top: “conv5_2-BatchNorm2”
scale_param {
bias_term: true
}
}
layer {
name: “conv5_2-ReLU2”
type: “ReLU”
bottom: “conv5_2-BatchNorm2”
top: “conv5_2-BatchNorm2”
}
layer {
name: “conv5_2-Convolution3”
type: “Convolution”
bottom: “conv5_2-BatchNorm2”
top: “conv5_2-Convolution3”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv5_2-Dropout2”
type: “Dropout”
bottom: “conv5_2-Convolution3”
top: “conv5_2-Dropout2”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv5_2-Concat2”
type: “Concat”
bottom: “conv5_2-Concat1”
bottom: “conv5_2-Dropout2”
top: “conv5_2-Concat2”
concat_param {
axis: 1
}
}
layer {
name: “conv5_2-BatchNorm3”
type: “BatchNorm”
bottom: “conv5_2-Concat2”
top: “conv5_2-BatchNorm3”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv5_2-Scale3”
type: “Scale”
bottom: “conv5_2-BatchNorm3”
top: “conv5_2-BatchNorm3”
scale_param {
bias_term: true
}
}
layer {
name: “conv5_2-ReLU3”
type: “ReLU”
bottom: “conv5_2-BatchNorm3”
top: “conv5_2-BatchNorm3”
}
layer {
name: “conv5_2-Convolution4”
type: “Convolution”
bottom: “conv5_2-BatchNorm3”
top: “conv5_2-Convolution4”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 32
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv5_2-Dropout3”
type: “Dropout”
bottom: “conv5_2-Convolution4”
top: “conv5_2-Dropout3”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv5_2-Concat3”
type: “Concat”
bottom: “conv5_2-Concat2”
bottom: “conv5_2-Dropout3”
top: “conv5_2”
concat_param {
axis: 1
}
}
###################################################### END
## BN
layer {
name: “conv5_2_BatchNorm”
type: “BatchNorm”
bottom: “conv5_2”
top: “conv5_2_BatchNorm”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “conv5_2_BatchNorm”
top: “conv5_2_BatchNorm”
name: “conv5_2_Scale”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “conv5_2_ReLU”
type: “ReLU”
bottom: “conv5_2_BatchNorm”
top: “conv5_2_BatchNorm”
}
#————layer group 6————-
layer {
name: “Deconvolution3”
type: “Deconvolution”
bottom: “conv5_2_BatchNorm”
top: “Deconvolution3”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 64
#bias_term: false
engine: CUDNN
kernel_size: 4
pad: 1
stride: 2
weight_filler {
type: “xavier”
#std: 0.01
}
}
}
#layer {
# name: “relu6”
# type: “ReLU”
# bottom: “deconv6”
# top: “deconv6”
#}
layer {
name: “LongSkip3”
type: “Concat”
bottom: “conv1c-Convolution”
bottom: “Deconvolution3”
top: “LongSkip3”
concat_param {
concat_dim:1
}
}
##### add BN
layer {
name: “LongSkip3-BatchNorm”
type: “BatchNorm”
bottom: “LongSkip3”
top: “LongSkip3-BatchNorm”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “LongSkip3-BatchNorm”
top: “LongSkip3-BatchNorm”
name: “LongSkip3-Scale”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “LongSkip3-ReLU”
type: “ReLU”
bottom: “LongSkip3-BatchNorm”
top: “LongSkip3-BatchNorm”
}
###################################################### BEGIN
layer {
name: “conv6-Convolution1”
type: “Convolution”
bottom: “LongSkip3-BatchNorm”
top: “conv6-Convolution1”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 128
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv6-BatchNorm1”
type: “BatchNorm”
bottom: “conv6-Convolution1”
top: “conv6-BatchNorm1”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv6-Scale1”
type: “Scale”
bottom: “conv6-BatchNorm1”
top: “conv6-BatchNorm1”
scale_param {
bias_term: true
}
}
layer {
name: “conv6-ReLU1”
type: “ReLU”
bottom: “conv6-BatchNorm1”
top: “conv6-BatchNorm1”
}
layer {
name: “conv6-Convolution2”
type: “Convolution”
bottom: “conv6-BatchNorm1”
top: “conv6-Convolution2”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 16
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv6-Dropout1”
type: “Dropout”
bottom: “conv6-Convolution2”
top: “conv6-Dropout1”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv6-Concat1”
type: “Concat”
bottom: “conv6-Convolution1”
bottom: “conv6-Dropout1”
top: “conv6-Concat1”
concat_param {
axis: 1
}
}
layer {
name: “conv6-BatchNorm2”
type: “BatchNorm”
bottom: “conv6-Concat1”
top: “conv6-BatchNorm2”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv6-Scale2”
type: “Scale”
bottom: “conv6-BatchNorm2”
top: “conv6-BatchNorm2”
scale_param {
bias_term: true
}
}
layer {
name: “conv6-ReLU2”
type: “ReLU”
bottom: “conv6-BatchNorm2”
top: “conv6-BatchNorm2”
}
layer {
name: “conv6-Convolution3”
type: “Convolution”
bottom: “conv6-BatchNorm2”
top: “conv6-Convolution3”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 16
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv6-Dropout2”
type: “Dropout”
bottom: “conv6-Convolution3”
top: “conv6-Dropout2”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv6-Concat2”
type: “Concat”
bottom: “conv6-Concat1”
bottom: “conv6-Dropout2”
top: “conv6-Concat2”
concat_param {
axis: 1
}
}
layer {
name: “conv6-BatchNorm3”
type: “BatchNorm”
bottom: “conv6-Concat2”
top: “conv6-BatchNorm3”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv6-Scale3”
type: “Scale”
bottom: “conv6-BatchNorm3”
top: “conv6-BatchNorm3”
scale_param {
bias_term: true
}
}
layer {
name: “conv6-ReLU3”
type: “ReLU”
bottom: “conv6-BatchNorm3”
top: “conv6-BatchNorm3”
}
layer {
name: “conv6-Convolution4”
type: “Convolution”
bottom: “conv6-BatchNorm3”
top: “conv6-Convolution4”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 16
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv6-Dropout3”
type: “Dropout”
bottom: “conv6-Convolution4”
top: “conv6-Dropout3”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv6-Concat3”
type: “Concat”
bottom: “conv6-Concat2”
bottom: “conv6-Dropout3”
top: “conv6”
concat_param {
axis: 1
}
}
###################################################### END
## BN
layer {
name: “conv6-BatchNorm”
type: “BatchNorm”
bottom: “conv6”
top: “conv6-BatchNorm”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “conv6-BatchNorm”
top: “conv6-BatchNorm”
name: “conv6-Scale”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “conv6-ReLU”
type: “ReLU”
bottom: “conv6-BatchNorm”
top: “conv6-BatchNorm”
}
###################################################### BEGIN
layer {
name: “conv6_2-Convolution1”
type: “Convolution”
bottom: “conv6-BatchNorm”
top: “conv6_2-Convolution1”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 64
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv6_2-BatchNorm1”
type: “BatchNorm”
bottom: “conv6_2-Convolution1”
top: “conv6_2-BatchNorm1”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv6_2-Scale1”
type: “Scale”
bottom: “conv6_2-BatchNorm1”
top: “conv6_2-BatchNorm1”
scale_param {
bias_term: true
}
}
layer {
name: “conv6_2-ReLU1”
type: “ReLU”
bottom: “conv6_2-BatchNorm1”
top: “conv6_2-BatchNorm1”
}
layer {
name: “conv6_2-Convolution2”
type: “Convolution”
bottom: “conv6_2-BatchNorm1”
top: “conv6_2-Convolution2”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 16
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv6_2-Dropout1”
type: “Dropout”
bottom: “conv6_2-Convolution2”
top: “conv6_2-Dropout1”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv6_2-Concat1”
type: “Concat”
bottom: “conv6_2-Convolution1”
bottom: “conv6_2-Dropout1”
top: “conv6_2-Concat1”
concat_param {
axis: 1
}
}
layer {
name: “conv6_2-BatchNorm2”
type: “BatchNorm”
bottom: “conv6_2-Concat1”
top: “conv6_2-BatchNorm2”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv6_2-Scale2”
type: “Scale”
bottom: “conv6_2-BatchNorm2”
top: “conv6_2-BatchNorm2”
scale_param {
bias_term: true
}
}
layer {
name: “conv6_2-ReLU2”
type: “ReLU”
bottom: “conv6_2-BatchNorm2”
top: “conv6_2-BatchNorm2”
}
layer {
name: “conv6_2-Convolution3”
type: “Convolution”
bottom: “conv6_2-BatchNorm2”
top: “conv6_2-Convolution3”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 16
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv6_2-Dropout2”
type: “Dropout”
bottom: “conv6_2-Convolution3”
top: “conv6_2-Dropout2”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv6_2-Concat2”
type: “Concat”
bottom: “conv6_2-Concat1”
bottom: “conv6_2-Dropout2”
top: “conv6_2-Concat2”
concat_param {
axis: 1
}
}
layer {
name: “conv6_2-BatchNorm3”
type: “BatchNorm”
bottom: “conv6_2-Concat2”
top: “conv6_2-BatchNorm3”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv6_2-Scale3”
type: “Scale”
bottom: “conv6_2-BatchNorm3”
top: “conv6_2-BatchNorm3”
scale_param {
bias_term: true
}
}
layer {
name: “conv6_2-ReLU3”
type: “ReLU”
bottom: “conv6_2-BatchNorm3”
top: “conv6_2-BatchNorm3”
}
layer {
name: “conv6_2-Convolution4”
type: “Convolution”
bottom: “conv6_2-BatchNorm3”
top: “conv6_2-Convolution4”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 16
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv6_2-Dropout3”
type: “Dropout”
bottom: “conv6_2-Convolution4”
top: “conv6_2-Dropout3”
dropout_param {
dropout_ratio: 0.1
}
}
layer {
name: “conv6_2-Concat3”
type: “Concat”
bottom: “conv6_2-Concat2”
bottom: “conv6_2-Dropout3”
top: “conv6_2”
concat_param {
axis: 1
}
}
###################################################### END
## BN
layer {
name: “conv6_2-BatchNorm”
type: “BatchNorm”
bottom: “conv6_2”
top: “conv6_2-BatchNorm”
param {
lr_mult: 0
}
param {
lr_mult: 0
}
param {
lr_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
bottom: “conv6_2-BatchNorm”
top: “conv6_2-BatchNorm”
name: “conv6_2-Scale”
type: “Scale”
scale_param {
bias_term: true
}
}
layer {
name: “conv6_2-ReLU”
type: “ReLU”
bottom: “conv6_2-BatchNorm”
top: “conv6_2-BatchNorm”
}
###################################################### BEGIN
layer {
name: “conv6_3-Convolution1”
type: “Convolution”
bottom: “conv6_2-BatchNorm”
top: “conv6_3-Convolution1”
param {
lr_mult: 1
}
param {
lr_mult: 2
}
convolution_param {
num_output: 4
kernel_size: 3
pad: 1
stride: 1
engine: CUDNN
weight_filler {
type: “xavier”
#std: 0.01
}
bias_filler {
type: “constant”
value: 0
}
}
}
layer {
name: “conv6_3-BatchNorm1”
type: “BatchNorm”
bottom: “conv6_3-Convolution1”
top: “conv6_3-BatchNorm1”
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
batch_norm_param {
use_global_stats: false
}
}
layer {
name: “conv6_3-Scale1”
type: “Scale”
bottom: “conv6_3-BatchNorm1”
top: “conv6_3-BatchNorm1”
scale_param {
bias_term: true
}
}
layer {
name: “conv6_3-ReLU1”
type: “ReLU”
bottom: “conv6_3-BatchNorm1”
top: “conv6_3-BatchNorm1”
}
###################################################### END
layer {
name: “accuracy”
type: “Accuracy”
bottom: “conv6_3-BatchNorm1”
bottom: “dataSeg”
top: “accuracy”
include {
phase: TEST
}
}
layer {
name: “loss”
type: “SoftmaxWithLoss”
bottom: “conv6_3-BatchNorm1”
bottom: “dataSeg”
top: “loss”
loss_param {
ignore_label: -1
}
softmax_param {
axis: 1
}
include: { phase: TRAIN }
}
layer {
name: “loss”
type: “SoftmaxWithLoss”
bottom: “conv6_3-BatchNorm1”
bottom: “dataSeg”
top: “loss”
loss_param {
ignore_label: -1
}
softmax_param {
axis: 1
}
include: { phase: TEST }
}