Last active
December 28, 2016 09:16
-
-
Save dongzhuoyao/a6ef59a7f8284ea2f82b00cdbb968090 to your computer and use it in GitHub Desktop.
deeplab_largeFOV_train
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
# VGG 16-layer network convolutional finetuning | |
# Network modified to have smaller receptive field (128 pixels) | |
# and smaller stride (8 pixels) when run in convolutional mode. | |
# | |
# In this model we also change max pooling size in the first 4 layers | |
# from 2 to 3 while retaining stride = 2 | |
# which makes it easier to exactly align responses at different layers. | |
# | |
# For alignment to work, we set (we choose 32x so as to be able to evaluate | |
# the model for all different subsampling sizes): | |
# (1) input dimension equal to | |
# $n = 32 * k - 31$, e.g., 321 (for k = 11) | |
# Dimension after pooling w. subsampling: | |
# (16 * k - 15); (8 * k - 7); (4 * k - 3); (2 * k - 1); (k). | |
# For k = 11, these translate to | |
# 161; 81; 41; 21; 11 | |
# | |
name: "DeepLab-LargeFOV" | |
layers { | |
name: "data" | |
type: IMAGE_SEG_DATA | |
top: "data" | |
top: "label" | |
image_data_param { | |
root_folder: "exper/voc12/data" | |
source: "exper/voc12/list/trainval.txt" | |
label_type: PIXEL | |
batch_size: 30 | |
shuffle: true | |
} | |
transform_param { | |
mean_value: 104.008 | |
mean_value: 116.669 | |
mean_value: 122.675 | |
crop_size: 321 | |
mirror: true | |
} | |
include: { phase: TRAIN } | |
} | |
### NETWORK ### | |
layers { | |
bottom: "data" | |
top: "conv1_1" | |
name: "conv1_1" | |
type: CONVOLUTION | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 64 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "conv1_1" | |
top: "conv1_1" | |
name: "relu1_1" | |
type: RELU | |
} | |
layers { | |
bottom: "conv1_1" | |
top: "conv1_2" | |
name: "conv1_2" | |
type: CONVOLUTION | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 64 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "conv1_2" | |
top: "conv1_2" | |
name: "relu1_2" | |
type: RELU | |
} | |
layers { | |
bottom: "conv1_2" | |
top: "pool1" | |
name: "pool1" | |
type: POOLING | |
pooling_param { | |
pool: MAX | |
kernel_size: 3 | |
stride: 2 | |
pad: 1 | |
} | |
} | |
layers { | |
bottom: "pool1" | |
top: "conv2_1" | |
name: "conv2_1" | |
type: CONVOLUTION | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 128 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "conv2_1" | |
top: "conv2_1" | |
name: "relu2_1" | |
type: RELU | |
} | |
layers { | |
bottom: "conv2_1" | |
top: "conv2_2" | |
name: "conv2_2" | |
type: CONVOLUTION | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 128 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "conv2_2" | |
top: "conv2_2" | |
name: "relu2_2" | |
type: RELU | |
} | |
layers { | |
bottom: "conv2_2" | |
top: "pool2" | |
name: "pool2" | |
type: POOLING | |
pooling_param { | |
pool: MAX | |
kernel_size: 3 | |
stride: 2 | |
pad: 1 | |
} | |
} | |
layers { | |
bottom: "pool2" | |
top: "conv3_1" | |
name: "conv3_1" | |
type: CONVOLUTION | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 256 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "conv3_1" | |
top: "conv3_1" | |
name: "relu3_1" | |
type: RELU | |
} | |
layers { | |
bottom: "conv3_1" | |
top: "conv3_2" | |
name: "conv3_2" | |
type: CONVOLUTION | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 256 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "conv3_2" | |
top: "conv3_2" | |
name: "relu3_2" | |
type: RELU | |
} | |
layers { | |
bottom: "conv3_2" | |
top: "conv3_3" | |
name: "conv3_3" | |
type: CONVOLUTION | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 256 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "conv3_3" | |
top: "conv3_3" | |
name: "relu3_3" | |
type: RELU | |
} | |
layers { | |
bottom: "conv3_3" | |
top: "pool3" | |
name: "pool3" | |
type: POOLING | |
pooling_param { | |
pool: MAX | |
kernel_size: 3 | |
stride: 2 | |
pad: 1 | |
} | |
} | |
layers { | |
bottom: "pool3" | |
top: "conv4_1" | |
name: "conv4_1" | |
type: CONVOLUTION | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 512 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "conv4_1" | |
top: "conv4_1" | |
name: "relu4_1" | |
type: RELU | |
} | |
layers { | |
bottom: "conv4_1" | |
top: "conv4_2" | |
name: "conv4_2" | |
type: CONVOLUTION | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 512 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "conv4_2" | |
top: "conv4_2" | |
name: "relu4_2" | |
type: RELU | |
} | |
layers { | |
bottom: "conv4_2" | |
top: "conv4_3" | |
name: "conv4_3" | |
type: CONVOLUTION | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 512 | |
pad: 1 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "conv4_3" | |
top: "conv4_3" | |
name: "relu4_3" | |
type: RELU | |
} | |
layers { | |
bottom: "conv4_3" | |
top: "pool4" | |
name: "pool4" | |
type: POOLING | |
pooling_param { | |
pool: MAX | |
kernel_size: 3 | |
pad: 1 | |
stride: 1 | |
} | |
} | |
layers { | |
bottom: "pool4" | |
top: "conv5_1" | |
name: "conv5_1" | |
type: CONVOLUTION | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 512 | |
#pad: 1 | |
pad: 2 | |
hole: 2 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "conv5_1" | |
top: "conv5_1" | |
name: "relu5_1" | |
type: RELU | |
} | |
layers { | |
bottom: "conv5_1" | |
top: "conv5_2" | |
name: "conv5_2" | |
type: CONVOLUTION | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 512 | |
#pad: 1 | |
pad: 2 | |
hole: 2 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "conv5_2" | |
top: "conv5_2" | |
name: "relu5_2" | |
type: RELU | |
} | |
layers { | |
bottom: "conv5_2" | |
top: "conv5_3" | |
name: "conv5_3" | |
type: CONVOLUTION | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 512 | |
#pad: 1 | |
pad: 2 | |
hole: 2 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "conv5_3" | |
top: "conv5_3" | |
name: "relu5_3" | |
type: RELU | |
} | |
layers { | |
bottom: "conv5_3" | |
top: "pool5" | |
name: "pool5" | |
type: POOLING | |
pooling_param { | |
pool: MAX | |
#kernel_size: 2 | |
#stride: 2 | |
kernel_size: 3 | |
stride: 1 | |
pad: 1 | |
} | |
} | |
layers { | |
bottom: "pool5" | |
top: "pool5a" | |
name: "pool5a" | |
type: POOLING | |
pooling_param { | |
pool: AVE | |
kernel_size: 3 | |
stride: 1 | |
pad: 1 | |
} | |
} | |
layers { | |
bottom: "pool5a" | |
top: "fc6" | |
name: "fc6" | |
type: CONVOLUTION | |
# strict_dim: false | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 1024 | |
pad: 12 | |
hole: 12 | |
kernel_size: 3 | |
} | |
} | |
layers { | |
bottom: "fc6" | |
top: "fc6" | |
name: "relu6" | |
type: RELU | |
} | |
layers { | |
bottom: "fc6" | |
top: "fc6" | |
name: "drop6" | |
type: DROPOUT | |
dropout_param { | |
dropout_ratio: 0.5 | |
} | |
} | |
layers { | |
bottom: "fc6" | |
top: "fc7" | |
name: "fc7" | |
type: CONVOLUTION | |
# strict_dim: false | |
blobs_lr: 1 | |
blobs_lr: 2 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 1024 | |
kernel_size: 1 | |
} | |
} | |
layers { | |
bottom: "fc7" | |
top: "fc7" | |
name: "relu7" | |
type: RELU | |
} | |
layers { | |
bottom: "fc7" | |
top: "fc7" | |
name: "drop7" | |
type: DROPOUT | |
dropout_param { | |
dropout_ratio: 0.5 | |
} | |
} | |
layers { | |
bottom: "fc7" | |
top: "fc8_exper/voc12" | |
name: "fc8_exper/voc12" | |
type: CONVOLUTION | |
# strict_dim: false | |
blobs_lr: 10 | |
blobs_lr: 20 | |
weight_decay: 1 | |
weight_decay: 0 | |
convolution_param { | |
num_output: 21 | |
kernel_size: 1 | |
weight_filler { | |
type: "gaussian" | |
std: 0.01 | |
} | |
bias_filler { | |
type: "constant" | |
value: 0 | |
} | |
} | |
} | |
layers { | |
bottom: "label" | |
top: "label_shrink" | |
name: "label_shrink" | |
type: INTERP | |
interp_param { | |
shrink_factor: 8 | |
pad_beg: 0 | |
pad_end: 0 | |
} | |
} | |
layers { | |
name: "loss" | |
type: SOFTMAX_LOSS | |
bottom: "fc8_exper/voc12" | |
bottom: "label_shrink" | |
softmaxloss_param { | |
#weight_source: "exper/voc12/loss_weight/loss_weight_train.txt" | |
ignore_label: 255 | |
} | |
include: { phase: TRAIN } | |
} | |
layers { | |
name: "accuracy" | |
type: SEG_ACCURACY | |
bottom: "fc8_exper/voc12" | |
bottom: "label_shrink" | |
top: "accuracy" | |
seg_accuracy_param { | |
ignore_label: 255 | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment