Instantly share code, notes, and snippets.

Embed
What would you like to do?
FCN16s Prototxt formatted. Netscope compatible (https://dgschwend.github.io/netscope/#/gist/23ef986f46258fa3303129dabf8066a5).
name: 'FCN 16s'
layer {
type: 'data'
name: 'data'
top: 'data'
input_param {
shape {
dim: 1
dim: 3
dim: 500
dim: 500
}
}
force_backward: true
}
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 {
engine: CAFFE
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 {
engine: CAFFE
num_output: 64
pad: 1
kernel_size: 3
}
}
layers {
bottom: 'conv1_2'
top: 'conv1_2'
name: 'relu1_2'
type: RELU
}
layers {
name: 'pool1'
bottom: 'conv1_2'
top: 'pool1'
type: POOLING
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layers {
name: 'conv2_1'
bottom: 'pool1'
top: 'conv2_1'
type: CONVOLUTION
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
engine: CAFFE
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 {
engine: CAFFE
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: 2
stride: 2
}
}
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 {
engine: CAFFE
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 {
engine: CAFFE
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 {
engine: CAFFE
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: 2
stride: 2
}
}
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 {
engine: CAFFE
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 {
engine: CAFFE
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 {
engine: CAFFE
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: 2
stride: 2
}
}
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 {
engine: CAFFE
num_output: 512
pad: 1
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 {
engine: CAFFE
num_output: 512
pad: 1
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 {
engine: CAFFE
num_output: 512
pad: 1
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
}
}
layers {
bottom: 'pool5'
top: 'fc6'
name: 'fc6'
type: CONVOLUTION
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
engine: CAFFE
kernel_size: 7
num_output: 4096
}
}
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
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
engine: CAFFE
kernel_size: 1
num_output: 4096
}
}
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 {
name: 'score'
type: CONVOLUTION
bottom: 'fc7'
top: 'score'
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
engine: CAFFE
num_output: 21
kernel_size: 1
}
}
layers {
type: DECONVOLUTION
name: 'score2'
bottom: 'score'
top: 'score2'
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
kernel_size: 4
stride: 2
num_output: 21
}
}
layers {
name: 'score-pool4'
type: CONVOLUTION
bottom: 'pool4'
top: 'score-pool4'
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
engine: CAFFE
num_output: 21
kernel_size: 1
}
}
layers {
type: CROP
name: 'score-pool4c'
bottom: 'score-pool4'
top: 'score-pool44c'
bottom: 'score2'
}
layers {
type: ELTWISE
name: 'score-fuse'
bottom: 'score2'
bottom: 'score-pool4c'
top: 'score-fuse'
eltwise_param {
operation: SUM
}
}
layers {
type: DECONVOLUTION
name: 'bigscore'
bottom: 'score-fuse'
top: 'bigscore'
blobs_lr: 0
blobs_lr: 0
convolution_param {
num_output: 21
kernel_size: 32
stride: 16
}
}
layers {
type: CROP
name: 'upscore'
bottom: 'bigscore'
bottom: 'data'
top: 'upscore'
}
layers {
type: SOFTMAX
name: 'output'
bottom: 'upscore'
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment