Skip to content

Instantly share code, notes, and snippets.

@peiyunh
Last active July 12, 2017 23:36
Show Gist options
  • Save peiyunh/330c531b1178ed19c9ea5cc5580b2a84 to your computer and use it in GitHub Desktop.
Save peiyunh/330c531b1178ed19c9ea5cc5580b2a84 to your computer and use it in GitHub Desktop.
name: "vgg16_sbdd"
layer {
name: "data"
type: "Python"
top: "data"
top: "label"
top: "inter"
python_param {
module: "voc_layers"
layer: "SBDDInterSegDataLayer"
param_str: "{\'sbdd_dir\': \'data/sbdd/dataset\', \'seed\': 1337, \'split\': \'train\', \'mean\': (104.00699, 116.66877, 122.67892), \'batch_size\': 1, \'input_dim': (320, 320)}"
}
}
layer {
name: "conv1_1"
type: "Convolution"
bottom: "data"
top: "conv1_1"
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 {
name: "conv1_1_i"
type: "Convolution"
bottom: "inter"
top: "conv1_1_i"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
}
weight_filler {
type: "constant"
value: 0
}
bias_filler {
type: "constant"
value: 0
}
}
layer {
name: "sum1_1"
type: "Eltwise"
bottom: "conv1_1"
bottom: "conv1_1_i"
top: "sum1_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "relu1_1"
type: "ReLU"
bottom: "sum1_1"
top: "relu1_1"
}
layer {
name: "conv1_2"
type: "Convolution"
bottom: "relu1_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
}
}
layer {
name: "relu1_2"
type: "ReLU"
bottom: "conv1_2"
top: "conv1_2"
}
layer {
name: "pool1"
type: "Pooling"
bottom: "conv1_2"
top: "pool1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv2_1"
type: "Convolution"
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
}
}
layer {
name: "relu2_2"
type: "ReLU"
bottom: "conv2_2"
top: "conv2_2"
}
layer {
name: "pool2"
type: "Pooling"
bottom: "conv2_2"
top: "pool2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv3_1"
type: "Convolution"
bottom: "pool2"
top: "conv3_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
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: 1
decay_mult: 1
}
param {
lr_mult: 2
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: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
}
}
layer {
name: "relu3_3"
type: "ReLU"
bottom: "conv3_3"
top: "conv3_3"
}
layer {
name: "pool3"
type: "Pooling"
bottom: "conv3_3"
top: "pool3"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv4_1"
type: "Convolution"
bottom: "pool3"
top: "conv4_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
}
}
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: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
}
}
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: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
}
}
layer {
name: "relu4_3"
type: "ReLU"
bottom: "conv4_3"
top: "conv4_3"
}
layer {
name: "pool4"
type: "Pooling"
bottom: "conv4_3"
top: "pool4"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv5_1"
type: "Convolution"
bottom: "pool4"
top: "conv5_1"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
}
}
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: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
}
}
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: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
}
}
layer {
name: "relu5_3"
type: "ReLU"
bottom: "conv5_3"
top: "conv5_3"
}
layers {
bottom: "conv5_3"
top: "pool5"
name: "pool5"
type: POOLING
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "fc6"
type: "Convolution"
bottom: "pool5"
top: "fc6"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 4096
pad: 3
kernel_size: 7
}
}
layer {
name: "relu6"
type: "ReLU"
bottom: "fc6"
top: "fc6"
}
layer {
name: "drop6"
type: "Dropout"
bottom: "fc6"
top: "fc6"
dropout_param {
dropout_ratio: 0.5
}
}
layer {
name: "deconv6"
type: "Deconvolution"
bottom: "fc6"
top: "deconv6"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
kernel_size: 1
pad: 0
}
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
layer {
name: "deconv6-drop"
type: "Dropout"
bottom: "deconv6"
top: "deconv6"
dropout_param {
dropout_ratio: 0.5
}
}
layer {
name: "deconv6-relu"
type: "ReLU"
bottom: "deconv6"
top: "deconv6"
}
layer {
name: "unpool5"
type: "unpooling"
bottom: "deconv6"
bottom: "pool5_mask"
top: "unpool5"
unpooling_param {
unpool: MAX
kernel_size: 2
stride: 2
unpool_size: 14
}
}
layer {
name: "deconv5"
type: "Deconvolution"
bottom: "unpool5"
top: "deconv5"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 512
kernel_size: 5
pad: 2
}
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
layer {
name: "deconv5-drop"
type: "Dropout"
bottom: "deconv5"
top: "deconv5"
dropout_param {
dropout_ratio: 0.5
}
}
layer {
name: "deconv5-relu"
type: "ReLU"
bottom: "deconv5"
top: "deconv5"
}
layer {
name: "unpool4"
type: "unpooling"
bottom: "deconv5"
bottom: "pool4_mask"
top: "unpool4"
unpooling_param {
unpool: MAX
kernel_size: 2
stride: 2
unpool_size: 28
}
}
layer {
name: "deconv4"
type: "Deconvolution"
bottom: "unpool4"
top: "deconv4"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 256
kernel_size: 5
pad: 2
}
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
layer {
name: "deconv4-drop"
type: "Dropout"
bottom: "deconv4"
top: "deconv4"
dropout_param {
dropout_ratio: 0.5
}
}
layer {
name: "deconv4-relu"
type: "ReLU"
bottom: "deconv4"
top: "deconv4"
}
layer {
name: "unpool3"
type: "unpooling"
bottom: "deconv4"
bottom: "pool3_mask"
top: "unpool3"
unpooling_param {
unpool: MAX
kernel_size: 2
stride: 2
unpool_size: 56
}
}
layer {
name: "deconv3"
type: "Deconvolution"
bottom: "unpool3"
top: "deconv3"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
kernel_size: 5
pad: 2
}
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
layer {
name: "deconv3-drop"
type: "Dropout"
bottom: "deconv3"
top: "deconv3"
dropout_param {
dropout_ratio: 0.5
}
}
layer {
name: "deconv3-relu"
type: "ReLU"
bottom: "deconv3"
top: "deconv3"
}
layer {
name: "unpool2"
type: "unpooling"
bottom: "deconv3"
bottom: "pool2_mask"
top: "unpool2"
unpooling_param {
unpool: MAX
kernel_size: 2
stride: 2
unpool_size: 112
}
}
layer {
name: "deconv2"
type: "Deconvolution"
bottom: "unpool2"
top: "deconv2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
kernel_size: 5
pad: 2
}
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
layer {
name: "deconv2-drop"
type: "Dropout"
bottom: "deconv2"
top: "deconv2"
dropout_param {
dropout_ratio: 0.5
}
}
layer {
name: "deconv2-relu"
type: "ReLU"
bottom: "deconv2"
top: "deconv2"
}
layer {
name: "unpool1"
type: "unpooling"
bottom: "deconv2"
bottom: "pool1_mask"
top: "unpool1"
unpooling_param {
unpool: MAX
kernel_size: 2
stride: 2
unpool_size: 224
}
}
layer {
name: "deconv1"
type: "Deconvolution"
bottom: "unpool2"
top: "deconv2"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
kernel_size: 5
pad: 2
}
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
layer {
name: "deconv1-drop"
type: "Dropout"
bottom: "deconv1"
top: "deconv1"
dropout_param {
dropout_ratio: 0.5
}
}
layer {
name: "deconv1-relu"
type: "ReLU"
bottom: "deconv1"
top: "deconv1"
}
layer {
name: "prediction"
type: "Convolution"
bottom: "deconv1"
top: "prediction"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 2
kernel_size: 5
pad: 2
}
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
layer {
name: "loss"
type: "SoftmaxWithLoss"
bottom: "prediction"
bottom: "label"
top: "loss"
loss_weight: 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment