|
name: "LtoAB" |
|
|
|
layer { |
|
name: "data_l" |
|
type: "Input" |
|
top: "data_l" |
|
input_param { |
|
shape { dim: 1 dim: 1 dim: 224 dim: 224 } |
|
} |
|
} |
|
|
|
# ***************** |
|
# ***** conv1 ***** |
|
# ***************** |
|
layer { |
|
name: "bw_conv1_1" |
|
type: "Convolution" |
|
bottom: "data_l" |
|
top: "conv1_1" |
|
# param {lr_mult: 0 decay_mult: 0} |
|
# param {lr_mult: 0 decay_mult: 0} |
|
convolution_param { |
|
num_output: 64 |
|
pad: 1 |
|
kernel_size: 3 |
|
} |
|
} |
|
layer { |
|
name: "relu1_1" |
|
type: "ReLU" |
|
bottom: "conv1_1" |
|
top: "conv1_1" |
|
} |
|
layer { |
|
name: "conv1_2" |
|
type: "Convolution" |
|
bottom: "conv1_1" |
|
top: "conv1_2" |
|
# param {lr_mult: 0 decay_mult: 0} |
|
# param {lr_mult: 0 decay_mult: 0} |
|
convolution_param { |
|
num_output: 64 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 2 |
|
} |
|
} |
|
layer { |
|
name: "relu1_2" |
|
type: "ReLU" |
|
bottom: "conv1_2" |
|
top: "conv1_2" |
|
} |
|
layer { |
|
name: "conv1_2norm" |
|
type: "BatchNorm" |
|
bottom: "conv1_2" |
|
top: "conv1_2norm" |
|
batch_norm_param{ } |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
} |
|
# ***************** |
|
# ***** conv2 ***** |
|
# ***************** |
|
layer { |
|
name: "conv2_1" |
|
type: "Convolution" |
|
# bottom: "conv1_2" |
|
bottom: "conv1_2norm" |
|
# bottom: "pool1" |
|
top: "conv2_1" |
|
# param {lr_mult: 0 decay_mult: 0} |
|
# param {lr_mult: 0 decay_mult: 0} |
|
convolution_param { |
|
num_output: 128 |
|
pad: 1 |
|
kernel_size: 3 |
|
} |
|
} |
|
layer { |
|
name: "relu2_1" |
|
type: "ReLU" |
|
bottom: "conv2_1" |
|
top: "conv2_1" |
|
} |
|
layer { |
|
name: "conv2_2" |
|
type: "Convolution" |
|
bottom: "conv2_1" |
|
top: "conv2_2" |
|
# param {lr_mult: 0 decay_mult: 0} |
|
# param {lr_mult: 0 decay_mult: 0} |
|
convolution_param { |
|
num_output: 128 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 2 |
|
} |
|
} |
|
layer { |
|
name: "relu2_2" |
|
type: "ReLU" |
|
bottom: "conv2_2" |
|
top: "conv2_2" |
|
} |
|
layer { |
|
name: "conv2_2norm" |
|
type: "BatchNorm" |
|
bottom: "conv2_2" |
|
top: "conv2_2norm" |
|
batch_norm_param{ } |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
} |
|
# ***************** |
|
# ***** conv3 ***** |
|
# ***************** |
|
layer { |
|
name: "conv3_1" |
|
type: "Convolution" |
|
# bottom: "conv2_2" |
|
bottom: "conv2_2norm" |
|
# bottom: "pool2" |
|
top: "conv3_1" |
|
# param {lr_mult: 0 decay_mult: 0} |
|
# param {lr_mult: 0 decay_mult: 0} |
|
convolution_param { |
|
num_output: 256 |
|
pad: 1 |
|
kernel_size: 3 |
|
} |
|
} |
|
layer { |
|
name: "relu3_1" |
|
type: "ReLU" |
|
bottom: "conv3_1" |
|
top: "conv3_1" |
|
} |
|
layer { |
|
name: "conv3_2" |
|
type: "Convolution" |
|
bottom: "conv3_1" |
|
top: "conv3_2" |
|
# param {lr_mult: 0 decay_mult: 0} |
|
# param {lr_mult: 0 decay_mult: 0} |
|
convolution_param { |
|
num_output: 256 |
|
pad: 1 |
|
kernel_size: 3 |
|
} |
|
} |
|
layer { |
|
name: "relu3_2" |
|
type: "ReLU" |
|
bottom: "conv3_2" |
|
top: "conv3_2" |
|
} |
|
layer { |
|
name: "conv3_3" |
|
type: "Convolution" |
|
bottom: "conv3_2" |
|
top: "conv3_3" |
|
# param {lr_mult: 0 decay_mult: 0} |
|
# param {lr_mult: 0 decay_mult: 0} |
|
convolution_param { |
|
num_output: 256 |
|
pad: 1 |
|
kernel_size: 3 |
|
stride: 2 |
|
} |
|
} |
|
layer { |
|
name: "relu3_3" |
|
type: "ReLU" |
|
bottom: "conv3_3" |
|
top: "conv3_3" |
|
} |
|
layer { |
|
name: "conv3_3norm" |
|
type: "BatchNorm" |
|
bottom: "conv3_3" |
|
top: "conv3_3norm" |
|
batch_norm_param{ } |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
} |
|
# ***************** |
|
# ***** conv4 ***** |
|
# ***************** |
|
layer { |
|
name: "conv4_1" |
|
type: "Convolution" |
|
# bottom: "conv3_3" |
|
bottom: "conv3_3norm" |
|
# bottom: "pool3" |
|
top: "conv4_1" |
|
# param {lr_mult: 0 decay_mult: 0} |
|
# param {lr_mult: 0 decay_mult: 0} |
|
convolution_param { |
|
num_output: 512 |
|
kernel_size: 3 |
|
stride: 1 |
|
pad: 1 |
|
dilation: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu4_1" |
|
type: "ReLU" |
|
bottom: "conv4_1" |
|
top: "conv4_1" |
|
} |
|
layer { |
|
name: "conv4_2" |
|
type: "Convolution" |
|
bottom: "conv4_1" |
|
top: "conv4_2" |
|
# param {lr_mult: 0 decay_mult: 0} |
|
# param {lr_mult: 0 decay_mult: 0} |
|
convolution_param { |
|
num_output: 512 |
|
kernel_size: 3 |
|
stride: 1 |
|
pad: 1 |
|
dilation: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu4_2" |
|
type: "ReLU" |
|
bottom: "conv4_2" |
|
top: "conv4_2" |
|
} |
|
layer { |
|
name: "conv4_3" |
|
type: "Convolution" |
|
bottom: "conv4_2" |
|
top: "conv4_3" |
|
# param {lr_mult: 0 decay_mult: 0} |
|
# param {lr_mult: 0 decay_mult: 0} |
|
convolution_param { |
|
num_output: 512 |
|
kernel_size: 3 |
|
stride: 1 |
|
pad: 1 |
|
dilation: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu4_3" |
|
type: "ReLU" |
|
bottom: "conv4_3" |
|
top: "conv4_3" |
|
} |
|
layer { |
|
name: "conv4_3norm" |
|
type: "BatchNorm" |
|
bottom: "conv4_3" |
|
top: "conv4_3norm" |
|
batch_norm_param{ } |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
} |
|
# ***************** |
|
# ***** conv5 ***** |
|
# ***************** |
|
layer { |
|
name: "conv5_1" |
|
type: "Convolution" |
|
# bottom: "conv4_3" |
|
bottom: "conv4_3norm" |
|
# bottom: "pool4" |
|
top: "conv5_1" |
|
# param {lr_mult: 0 decay_mult: 0} |
|
# param {lr_mult: 0 decay_mult: 0} |
|
convolution_param { |
|
num_output: 512 |
|
kernel_size: 3 |
|
stride: 1 |
|
pad: 2 |
|
dilation: 2 |
|
} |
|
} |
|
layer { |
|
name: "relu5_1" |
|
type: "ReLU" |
|
bottom: "conv5_1" |
|
top: "conv5_1" |
|
} |
|
layer { |
|
name: "conv5_2" |
|
type: "Convolution" |
|
bottom: "conv5_1" |
|
top: "conv5_2" |
|
# param {lr_mult: 0 decay_mult: 0} |
|
# param {lr_mult: 0 decay_mult: 0} |
|
convolution_param { |
|
num_output: 512 |
|
kernel_size: 3 |
|
stride: 1 |
|
pad: 2 |
|
dilation: 2 |
|
} |
|
} |
|
layer { |
|
name: "relu5_2" |
|
type: "ReLU" |
|
bottom: "conv5_2" |
|
top: "conv5_2" |
|
} |
|
layer { |
|
name: "conv5_3" |
|
type: "Convolution" |
|
bottom: "conv5_2" |
|
top: "conv5_3" |
|
# param {lr_mult: 0 decay_mult: 0} |
|
# param {lr_mult: 0 decay_mult: 0} |
|
convolution_param { |
|
num_output: 512 |
|
kernel_size: 3 |
|
stride: 1 |
|
pad: 2 |
|
dilation: 2 |
|
} |
|
} |
|
layer { |
|
name: "relu5_3" |
|
type: "ReLU" |
|
bottom: "conv5_3" |
|
top: "conv5_3" |
|
} |
|
layer { |
|
name: "conv5_3norm" |
|
type: "BatchNorm" |
|
bottom: "conv5_3" |
|
top: "conv5_3norm" |
|
batch_norm_param{ } |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
} |
|
# ***************** |
|
# ***** conv6 ***** |
|
# ***************** |
|
layer { |
|
name: "conv6_1" |
|
type: "Convolution" |
|
bottom: "conv5_3norm" |
|
top: "conv6_1" |
|
convolution_param { |
|
num_output: 512 |
|
kernel_size: 3 |
|
pad: 2 |
|
dilation: 2 |
|
} |
|
} |
|
layer { |
|
name: "relu6_1" |
|
type: "ReLU" |
|
bottom: "conv6_1" |
|
top: "conv6_1" |
|
} |
|
layer { |
|
name: "conv6_2" |
|
type: "Convolution" |
|
bottom: "conv6_1" |
|
top: "conv6_2" |
|
convolution_param { |
|
num_output: 512 |
|
kernel_size: 3 |
|
pad: 2 |
|
dilation: 2 |
|
} |
|
} |
|
layer { |
|
name: "relu6_2" |
|
type: "ReLU" |
|
bottom: "conv6_2" |
|
top: "conv6_2" |
|
} |
|
layer { |
|
name: "conv6_3" |
|
type: "Convolution" |
|
bottom: "conv6_2" |
|
top: "conv6_3" |
|
convolution_param { |
|
num_output: 512 |
|
kernel_size: 3 |
|
pad: 2 |
|
dilation: 2 |
|
} |
|
} |
|
layer { |
|
name: "relu6_3" |
|
type: "ReLU" |
|
bottom: "conv6_3" |
|
top: "conv6_3" |
|
} |
|
layer { |
|
name: "conv6_3norm" |
|
type: "BatchNorm" |
|
bottom: "conv6_3" |
|
top: "conv6_3norm" |
|
batch_norm_param{ } |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
} |
|
# ***************** |
|
# ***** conv7 ***** |
|
# ***************** |
|
layer { |
|
name: "conv7_1" |
|
type: "Convolution" |
|
bottom: "conv6_3norm" |
|
top: "conv7_1" |
|
convolution_param { |
|
num_output: 512 |
|
kernel_size: 3 |
|
pad: 1 |
|
dilation: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu7_1" |
|
type: "ReLU" |
|
bottom: "conv7_1" |
|
top: "conv7_1" |
|
} |
|
layer { |
|
name: "conv7_2" |
|
type: "Convolution" |
|
bottom: "conv7_1" |
|
top: "conv7_2" |
|
convolution_param { |
|
num_output: 512 |
|
kernel_size: 3 |
|
pad: 1 |
|
dilation: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu7_2" |
|
type: "ReLU" |
|
bottom: "conv7_2" |
|
top: "conv7_2" |
|
} |
|
layer { |
|
name: "conv7_3" |
|
type: "Convolution" |
|
bottom: "conv7_2" |
|
top: "conv7_3" |
|
convolution_param { |
|
num_output: 512 |
|
kernel_size: 3 |
|
pad: 1 |
|
dilation: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu7_3" |
|
type: "ReLU" |
|
bottom: "conv7_3" |
|
top: "conv7_3" |
|
} |
|
layer { |
|
name: "conv7_3norm" |
|
type: "BatchNorm" |
|
bottom: "conv7_3" |
|
top: "conv7_3norm" |
|
batch_norm_param{ } |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
param {lr_mult: 0 decay_mult: 0} |
|
} |
|
# ***************** |
|
# ***** conv8 ***** |
|
# ***************** |
|
layer { |
|
name: "conv8_1" |
|
type: "Deconvolution" |
|
bottom: "conv7_3norm" |
|
top: "conv8_1" |
|
convolution_param { |
|
num_output: 256 |
|
kernel_size: 4 |
|
pad: 1 |
|
dilation: 1 |
|
stride: 2 |
|
} |
|
} |
|
layer { |
|
name: "relu8_1" |
|
type: "ReLU" |
|
bottom: "conv8_1" |
|
top: "conv8_1" |
|
} |
|
layer { |
|
name: "conv8_2" |
|
type: "Convolution" |
|
bottom: "conv8_1" |
|
top: "conv8_2" |
|
convolution_param { |
|
num_output: 256 |
|
kernel_size: 3 |
|
pad: 1 |
|
dilation: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu8_2" |
|
type: "ReLU" |
|
bottom: "conv8_2" |
|
top: "conv8_2" |
|
} |
|
layer { |
|
name: "conv8_3" |
|
type: "Convolution" |
|
bottom: "conv8_2" |
|
top: "conv8_3" |
|
convolution_param { |
|
num_output: 256 |
|
kernel_size: 3 |
|
pad: 1 |
|
dilation: 1 |
|
} |
|
} |
|
layer { |
|
name: "relu8_3" |
|
type: "ReLU" |
|
bottom: "conv8_3" |
|
top: "conv8_3" |
|
} |
|
# ******************* |
|
# ***** Softmax ***** |
|
# ******************* |
|
layer { |
|
name: "conv8_313" |
|
type: "Convolution" |
|
bottom: "conv8_3" |
|
top: "conv8_313" |
|
convolution_param { |
|
num_output: 313 |
|
kernel_size: 1 |
|
stride: 1 |
|
dilation: 1 |
|
} |
|
} |
|
layer { |
|
name: "conv8_313_rh" |
|
type: "Scale" |
|
bottom: "conv8_313" |
|
top: "conv8_313_rh" |
|
scale_param { |
|
bias_term: false |
|
filler { type: 'constant' value: 2.606 } |
|
} |
|
} |
|
layer { |
|
name: "class8_313_rh" |
|
type: "Softmax" |
|
bottom: "conv8_313_rh" |
|
top: "class8_313_rh" |
|
} |
|
# ******************** |
|
# ***** Decoding ***** |
|
# ******************** |
|
layer { |
|
name: "class8_ab" |
|
type: "Convolution" |
|
bottom: "class8_313_rh" |
|
top: "class8_ab" |
|
convolution_param { |
|
num_output: 2 |
|
kernel_size: 1 |
|
stride: 1 |
|
dilation: 1 |
|
} |
|
} |
|
layer { |
|
name: "Silence" |
|
type: "Silence" |
|
bottom: "class8_ab" |
|
} |