Create a gist now

Instantly share code, notes, and snippets.

name: "GoogleNet"
layer {
name: "data_loading"
type: "Python"
top: "image_1"
top: "image_2"
top: "segmentation"
top: "correspondence"
top: "num_coord"
python_param {
module: "layers.image_seg_correspondence_data_layer"
layer: "ImageSegCorrespondenceDataLayer"
param_str: "phase: TRAIN\nbatch_size: 4"
}
}
layer {
bottom: "segmentation"
name: "silence"
type: "Silence"
}
layer {
name: "conv1/7x7_s2"
type: "Convolution"
bottom: "image_1"
top: "conv1/7x7_s2"
param {
name: "conv1/7x7_s2_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "conv1/7x7_s2_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 3
kernel_size: 7
stride: 2
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "conv1/7x7_s2_p"
type: "Convolution"
bottom: "image_2"
top: "conv1/7x7_s2_p"
param {
name: "conv1/7x7_s2_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "conv1/7x7_s2_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 3
kernel_size: 7
stride: 2
}
}
layer {
name: "conv1/relu_7x7"
type: "ReLU"
bottom: "conv1/7x7_s2"
top: "conv1/7x7_s2"
}
layer {
name: "conv1/relu_7x7_p"
type: "ReLU"
bottom: "conv1/7x7_s2_p"
top: "conv1/7x7_s2_p"
}
layer {
name: "pool1/3x3_s2"
type: "Pooling"
bottom: "conv1/7x7_s2"
top: "pool1/3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
pad: 1
}
}
layer {
name: "pool1/3x3_s2_p"
type: "Pooling"
bottom: "conv1/7x7_s2_p"
top: "pool1/3x3_s2_p"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
pad: 1
}
}
layer {
name: "pool1/norm1"
type: "LRN"
bottom: "pool1/3x3_s2"
top: "pool1/norm1"
lrn_param {
local_size: 5
alpha: 0.0001
beta: 0.75
}
}
layer {
name: "pool1/norm1_p"
type: "LRN"
bottom: "pool1/3x3_s2_p"
top: "pool1/norm1_p"
lrn_param {
local_size: 5
alpha: 0.0001
beta: 0.75
}
}
layer {
name: "conv2/3x3_reduce"
type: "Convolution"
bottom: "pool1/norm1"
top: "conv2/3x3_reduce"
param {
name: "conv2/3x3_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "conv2/3x3_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "conv2/3x3_reduce_p"
type: "Convolution"
bottom: "pool1/norm1_p"
top: "conv2/3x3_reduce_p"
param {
name: "conv2/3x3_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "conv2/3x3_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
kernel_size: 1
}
}
layer {
name: "conv2/relu_3x3_reduce"
type: "ReLU"
bottom: "conv2/3x3_reduce"
top: "conv2/3x3_reduce"
}
layer {
name: "conv2/relu_3x3_reduce_p"
type: "ReLU"
bottom: "conv2/3x3_reduce_p"
top: "conv2/3x3_reduce_p"
}
layer {
name: "conv2/3x3"
type: "Convolution"
bottom: "conv2/3x3_reduce"
top: "conv2/3x3"
param {
name: "conv2/3x3_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "conv2/3x3_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 192
pad: 1
kernel_size: 3
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "conv2/3x3_p"
type: "Convolution"
bottom: "conv2/3x3_reduce_p"
top: "conv2/3x3_p"
param {
name: "conv2/3x3_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "conv2/3x3_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 192
pad: 1
kernel_size: 3
}
}
layer {
name: "conv2/relu_3x3"
type: "ReLU"
bottom: "conv2/3x3"
top: "conv2/3x3"
}
layer {
name: "conv2/relu_3x3_p"
type: "ReLU"
bottom: "conv2/3x3_p"
top: "conv2/3x3_p"
}
layer {
name: "conv2/norm2"
type: "LRN"
bottom: "conv2/3x3"
top: "conv2/norm2"
lrn_param {
local_size: 5
alpha: 0.0001
beta: 0.75
}
}
layer {
name: "conv2/norm2_p"
type: "LRN"
bottom: "conv2/3x3_p"
top: "conv2/norm2_p"
lrn_param {
local_size: 5
alpha: 0.0001
beta: 0.75
}
}
layer {
name: "pool2/3x3_s2"
type: "Pooling"
bottom: "conv2/norm2"
top: "pool2/3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "pool2/3x3_s2_p"
type: "Pooling"
bottom: "conv2/norm2_p"
top: "pool2/3x3_s2_p"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_3a/1x1"
type: "Convolution"
bottom: "pool2/3x3_s2"
top: "inception_3a/1x1"
param {
name: "inception_3a/1x1_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3a/1x1_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_3a/1x1_p"
type: "Convolution"
bottom: "pool2/3x3_s2_p"
top: "inception_3a/1x1_p"
param {
name: "inception_3a/1x1_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3a/1x1_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
kernel_size: 1
}
}
layer {
name: "inception_3a/relu_1x1"
type: "ReLU"
bottom: "inception_3a/1x1"
top: "inception_3a/1x1"
}
layer {
name: "inception_3a/relu_1x1_p"
type: "ReLU"
bottom: "inception_3a/1x1_p"
top: "inception_3a/1x1_p"
}
layer {
name: "inception_3a/3x3_reduce"
type: "Convolution"
bottom: "pool2/3x3_s2"
top: "inception_3a/3x3_reduce"
param {
name: "inception_3a/3x3_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3a/3x3_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 96
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_3a/3x3_reduce_p"
type: "Convolution"
bottom: "pool2/3x3_s2_p"
top: "inception_3a/3x3_reduce_p"
param {
name: "inception_3a/3x3_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3a/3x3_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 96
kernel_size: 1
}
}
layer {
name: "inception_3a/relu_3x3_reduce"
type: "ReLU"
bottom: "inception_3a/3x3_reduce"
top: "inception_3a/3x3_reduce"
}
layer {
name: "inception_3a/relu_3x3_reduce_p"
type: "ReLU"
bottom: "inception_3a/3x3_reduce_p"
top: "inception_3a/3x3_reduce_p"
}
layer {
name: "inception_3a/3x3"
type: "Convolution"
bottom: "inception_3a/3x3_reduce"
top: "inception_3a/3x3"
param {
name: "inception_3a/3x3_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3a/3x3_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_3a/3x3_p"
type: "Convolution"
bottom: "inception_3a/3x3_reduce_p"
top: "inception_3a/3x3_p"
param {
name: "inception_3a/3x3_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3a/3x3_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_3a/relu_3x3"
type: "ReLU"
bottom: "inception_3a/3x3"
top: "inception_3a/3x3"
}
layer {
name: "inception_3a/relu_3x3_p"
type: "ReLU"
bottom: "inception_3a/3x3_p"
top: "inception_3a/3x3_p"
}
layer {
name: "inception_3a/5x5_reduce"
type: "Convolution"
bottom: "pool2/3x3_s2"
top: "inception_3a/5x5_reduce"
param {
name: "inception_3a/5x5_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3a/5x5_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 16
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_3a/5x5_reduce_p"
type: "Convolution"
bottom: "pool2/3x3_s2_p"
top: "inception_3a/5x5_reduce_p"
param {
name: "inception_3a/5x5_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3a/5x5_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 16
kernel_size: 1
}
}
layer {
name: "inception_3a/relu_5x5_reduce"
type: "ReLU"
bottom: "inception_3a/5x5_reduce"
top: "inception_3a/5x5_reduce"
}
layer {
name: "inception_3a/relu_5x5_reduce_p"
type: "ReLU"
bottom: "inception_3a/5x5_reduce_p"
top: "inception_3a/5x5_reduce_p"
}
layer {
name: "inception_3a/5x5"
type: "Convolution"
bottom: "inception_3a/5x5_reduce"
top: "inception_3a/5x5"
param {
name: "inception_3a/5x5_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3a/5x5_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 2
kernel_size: 5
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_3a/5x5_p"
type: "Convolution"
bottom: "inception_3a/5x5_reduce_p"
top: "inception_3a/5x5_p"
param {
name: "inception_3a/5x5_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3a/5x5_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
pad: 2
kernel_size: 5
}
}
layer {
name: "inception_3a/relu_5x5"
type: "ReLU"
bottom: "inception_3a/5x5"
top: "inception_3a/5x5"
}
layer {
name: "inception_3a/relu_5x5_p"
type: "ReLU"
bottom: "inception_3a/5x5_p"
top: "inception_3a/5x5_p"
}
layer {
name: "inception_3a/pool"
type: "Pooling"
bottom: "pool2/3x3_s2"
top: "inception_3a/pool"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_3a/pool_p"
type: "Pooling"
bottom: "pool2/3x3_s2_p"
top: "inception_3a/pool_p"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_3a/pool_proj"
type: "Convolution"
bottom: "inception_3a/pool"
top: "inception_3a/pool_proj"
param {
name: "inception_3a/pool_proj_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3a/pool_proj_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_3a/pool_proj_p"
type: "Convolution"
bottom: "inception_3a/pool_p"
top: "inception_3a/pool_proj_p"
param {
name: "inception_3a/pool_proj_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3a/pool_proj_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
kernel_size: 1
}
}
layer {
name: "inception_3a/relu_pool_proj"
type: "ReLU"
bottom: "inception_3a/pool_proj"
top: "inception_3a/pool_proj"
}
layer {
name: "inception_3a/relu_pool_proj_p"
type: "ReLU"
bottom: "inception_3a/pool_proj_p"
top: "inception_3a/pool_proj_p"
}
layer {
name: "inception_3a/output"
type: "Concat"
bottom: "inception_3a/1x1"
bottom: "inception_3a/3x3"
bottom: "inception_3a/5x5"
bottom: "inception_3a/pool_proj"
top: "inception_3a/output"
}
layer {
name: "inception_3a/output_p"
type: "Concat"
bottom: "inception_3a/1x1_p"
bottom: "inception_3a/3x3_p"
bottom: "inception_3a/5x5_p"
bottom: "inception_3a/pool_proj_p"
top: "inception_3a/output_p"
}
layer {
name: "inception_3b/1x1"
type: "Convolution"
bottom: "inception_3a/output"
top: "inception_3b/1x1"
param {
name: "inception_3b/1x1_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3b/1x1_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_3b/1x1_p"
type: "Convolution"
bottom: "inception_3a/output_p"
top: "inception_3b/1x1_p"
param {
name: "inception_3b/1x1_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3b/1x1_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
kernel_size: 1
}
}
layer {
name: "inception_3b/relu_1x1"
type: "ReLU"
bottom: "inception_3b/1x1"
top: "inception_3b/1x1"
}
layer {
name: "inception_3b/relu_1x1_p"
type: "ReLU"
bottom: "inception_3b/1x1_p"
top: "inception_3b/1x1_p"
}
layer {
name: "inception_3b/3x3_reduce"
type: "Convolution"
bottom: "inception_3a/output"
top: "inception_3b/3x3_reduce"
param {
name: "inception_3b/3x3_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3b/3x3_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_3b/3x3_reduce_p"
type: "Convolution"
bottom: "inception_3a/output_p"
top: "inception_3b/3x3_reduce_p"
param {
name: "inception_3b/3x3_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3b/3x3_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
kernel_size: 1
}
}
layer {
name: "inception_3b/relu_3x3_reduce"
type: "ReLU"
bottom: "inception_3b/3x3_reduce"
top: "inception_3b/3x3_reduce"
}
layer {
name: "inception_3b/relu_3x3_reduce_p"
type: "ReLU"
bottom: "inception_3b/3x3_reduce_p"
top: "inception_3b/3x3_reduce_p"
}
layer {
name: "inception_3b/3x3"
type: "Convolution"
bottom: "inception_3b/3x3_reduce"
top: "inception_3b/3x3"
param {
name: "inception_3b/3x3_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3b/3x3_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 192
pad: 1
kernel_size: 3
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_3b/3x3_p"
type: "Convolution"
bottom: "inception_3b/3x3_reduce_p"
top: "inception_3b/3x3_p"
param {
name: "inception_3b/3x3_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3b/3x3_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 192
pad: 1
kernel_size: 3
}
}
layer {
name: "inception_3b/relu_3x3"
type: "ReLU"
bottom: "inception_3b/3x3"
top: "inception_3b/3x3"
}
layer {
name: "inception_3b/relu_3x3_p"
type: "ReLU"
bottom: "inception_3b/3x3_p"
top: "inception_3b/3x3_p"
}
layer {
name: "inception_3b/5x5_reduce"
type: "Convolution"
bottom: "inception_3a/output"
top: "inception_3b/5x5_reduce"
param {
name: "inception_3b/5x5_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3b/5x5_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_3b/5x5_reduce_p"
type: "Convolution"
bottom: "inception_3a/output_p"
top: "inception_3b/5x5_reduce_p"
param {
name: "inception_3b/5x5_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3b/5x5_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 32
kernel_size: 1
}
}
layer {
name: "inception_3b/relu_5x5_reduce"
type: "ReLU"
bottom: "inception_3b/5x5_reduce"
top: "inception_3b/5x5_reduce"
}
layer {
name: "inception_3b/relu_5x5_reduce_p"
type: "ReLU"
bottom: "inception_3b/5x5_reduce_p"
top: "inception_3b/5x5_reduce_p"
}
layer {
name: "inception_3b/5x5"
type: "Convolution"
bottom: "inception_3b/5x5_reduce"
top: "inception_3b/5x5"
param {
name: "inception_3b/5x5_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3b/5x5_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 2
kernel_size: 5
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_3b/5x5_p"
type: "Convolution"
bottom: "inception_3b/5x5_reduce_p"
top: "inception_3b/5x5_p"
param {
name: "inception_3b/5x5_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3b/5x5_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 2
kernel_size: 5
}
}
layer {
name: "inception_3b/relu_5x5"
type: "ReLU"
bottom: "inception_3b/5x5"
top: "inception_3b/5x5"
}
layer {
name: "inception_3b/relu_5x5_p"
type: "ReLU"
bottom: "inception_3b/5x5_p"
top: "inception_3b/5x5_p"
}
layer {
name: "inception_3b/pool"
type: "Pooling"
bottom: "inception_3a/output"
top: "inception_3b/pool"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_3b/pool_p"
type: "Pooling"
bottom: "inception_3a/output_p"
top: "inception_3b/pool_p"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_3b/pool_proj"
type: "Convolution"
bottom: "inception_3b/pool"
top: "inception_3b/pool_proj"
param {
name: "inception_3b/pool_proj_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3b/pool_proj_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_3b/pool_proj_p"
type: "Convolution"
bottom: "inception_3b/pool_p"
top: "inception_3b/pool_proj_p"
param {
name: "inception_3b/pool_proj_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_3b/pool_proj_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
kernel_size: 1
}
}
layer {
name: "inception_3b/relu_pool_proj"
type: "ReLU"
bottom: "inception_3b/pool_proj"
top: "inception_3b/pool_proj"
}
layer {
name: "inception_3b/relu_pool_proj_p"
type: "ReLU"
bottom: "inception_3b/pool_proj_p"
top: "inception_3b/pool_proj_p"
}
layer {
name: "inception_3b/output"
type: "Concat"
bottom: "inception_3b/1x1"
bottom: "inception_3b/3x3"
bottom: "inception_3b/5x5"
bottom: "inception_3b/pool_proj"
top: "inception_3b/output"
}
layer {
name: "inception_3b/output_p"
type: "Concat"
bottom: "inception_3b/1x1_p"
bottom: "inception_3b/3x3_p"
bottom: "inception_3b/5x5_p"
bottom: "inception_3b/pool_proj_p"
top: "inception_3b/output_p"
}
layer {
name: "pool3/3x3_s2"
type: "Pooling"
bottom: "inception_3b/output"
top: "pool3/3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
}
}
layer {
name: "pool3/3x3_s2_p"
type: "Pooling"
bottom: "inception_3b/output_p"
top: "pool3/3x3_s2_p"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
}
}
layer {
name: "inception_4a/1x1"
type: "Convolution"
bottom: "pool3/3x3_s2"
top: "inception_4a/1x1"
param {
name: "inception_4a/1x1_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/1x1_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 192
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_4a/1x1_p"
type: "Convolution"
bottom: "pool3/3x3_s2_p"
top: "inception_4a/1x1_p"
param {
name: "inception_4a/1x1_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/1x1_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 192
kernel_size: 1
}
}
layer {
name: "inception_4a/relu_1x1"
type: "ReLU"
bottom: "inception_4a/1x1"
top: "inception_4a/1x1"
}
layer {
name: "inception_4a/relu_1x1_p"
type: "ReLU"
bottom: "inception_4a/1x1_p"
top: "inception_4a/1x1_p"
}
layer {
name: "inception_4a/3x3_reduce"
type: "Convolution"
bottom: "pool3/3x3_s2"
top: "inception_4a/3x3_reduce"
param {
name: "inception_4a/3x3_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/3x3_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 96
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_4a/3x3_reduce_p"
type: "Convolution"
bottom: "pool3/3x3_s2_p"
top: "inception_4a/3x3_reduce_p"
param {
name: "inception_4a/3x3_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/3x3_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 96
kernel_size: 1
}
}
layer {
name: "inception_4a/relu_3x3_reduce"
type: "ReLU"
bottom: "inception_4a/3x3_reduce"
top: "inception_4a/3x3_reduce"
}
layer {
name: "inception_4a/relu_3x3_reduce_p"
type: "ReLU"
bottom: "inception_4a/3x3_reduce_p"
top: "inception_4a/3x3_reduce_p"
}
# layer {
# name: "inception_4a/3x3"
# type: "Convolution"
# bottom: "inception_4a/3x3_reduce"
# top: "inception_4a/3x3"
# param {
# name: "inception_4a/3x3_w"
# lr_mult: 1
# decay_mult: 1
# }
# param {
# name: "inception_4a/3x3_b"
# lr_mult: 2
# decay_mult: 0
# }
# convolution_param {
# num_output: 208
# pad: 1
# kernel_size: 3
# weight_filler {
# type: "xavier"
# }
# bias_filler {
# type: "constant"
# value: 0.2
# }
# }
# }
# layer {
# name: "inception_4a/3x3_p"
# type: "Convolution"
# bottom: "inception_4a/3x3_reduce_p"
# top: "inception_4a/3x3_p"
# param {
# name: "inception_4a/3x3_w"
# lr_mult: 1
# decay_mult: 1
# }
# param {
# name: "inception_4a/3x3_b"
# lr_mult: 2
# decay_mult: 0
# }
# convolution_param {
# num_output: 208
# pad: 1
# kernel_size: 3
# }
# }
# layer {
# name: "inception_4a/relu_3x3"
# type: "ReLU"
# bottom: "inception_4a/3x3"
# top: "inception_4a/3x3"
# }
# layer {
# name: "inception_4a/relu_3x3_p"
# type: "ReLU"
# bottom: "inception_4a/3x3_p"
# top: "inception_4a/3x3_p"
# }
layer {
bottom: "inception_4a/3x3_reduce"
top: "inception_4a/3x3_reduce_param"
name: "inception_4a/3x3_reduce_param"
type: "Convolution"
param {
name: "inception_4a/3x3_reduce_transform_param_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/3x3_reduce_transform_param_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
pad: 0
num_output: 32
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
bottom: "inception_4a/3x3_reduce_p"
top: "inception_4a/3x3_reduce_param_p"
name: "inception_4a/3x3_reduce_param_p"
type: "Convolution"
param {
name: "inception_4a/3x3_reduce_transform_param_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/3x3_reduce_transform_param_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
pad: 0
num_output: 32
kernel_size: 1
}
}
layer {
name: "inception_4a/relu_3x3_reduce_param"
type: "ReLU"
bottom: "inception_4a/3x3_reduce_param"
top: "inception_4a/3x3_reduce_param"
}
layer {
name: "inception_4a/relu_3x3_reduce_param_p"
type: "ReLU"
bottom: "inception_4a/3x3_reduce_param_p"
top: "inception_4a/3x3_reduce_param_p"
}
layer {
bottom: "inception_4a/3x3_reduce_param"
top: "inception_4a/3x3_reduce_param2"
name: "inception_4a/3x3_reduce_param2"
type: "Convolution"
param {
name: "inception_4a/3x3_reduce_transform_param2_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/3x3_reduce_transform_param2_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
pad: 0
num_output: 32
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
bottom: "inception_4a/3x3_reduce_param_p"
top: "inception_4a/3x3_reduce_param2_p"
name: "inception_4a/3x3_reduce_param2_p"
type: "Convolution"
param {
name: "inception_4a/3x3_reduce_transform_param2_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/3x3_reduce_transform_param2_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
pad: 0
num_output: 32
kernel_size: 1
}
}
layer {
name: "inception_4a/relu_3x3_reduce_param2"
type: "ReLU"
bottom: "inception_4a/3x3_reduce_param2"
top: "inception_4a/3x3_reduce_param2"
}
layer {
name: "inception_4a/relu_3x3_reduce_param2_p"
type: "ReLU"
bottom: "inception_4a/3x3_reduce_param2_p"
top: "inception_4a/3x3_reduce_param2_p"
}
layer {
bottom: "inception_4a/3x3_reduce_param2"
top: "inception_4a/3x3_reduce_param3"
name: "inception_4a/3x3_reduce_param3"
type: "Convolution"
param {
name: "inception_4a/3x3_reduce_transform_param3_w"
lr_mult: 10
decay_mult: 1
}
param {
name: "inception_4a/3x3_reduce_transform_param3_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
pad: 0
num_output: 4
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.001
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
bottom: "inception_4a/3x3_reduce_param2_p"
top: "inception_4a/3x3_reduce_param3_p"
name: "inception_4a/3x3_reduce_param3_p"
type: "Convolution"
param {
name: "inception_4a/3x3_reduce_transform_param3_w"
lr_mult: 10
decay_mult: 1
}
param {
name: "inception_4a/3x3_reduce_transform_param3_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
pad: 0
num_output: 4
kernel_size: 1
}
}
layer {
name: "spatial_transformation"
type: "ConvolutionalSpatialTransformer"
bottom: "inception_4a/3x3_reduce"
bottom: "inception_4a/3x3_reduce_param3"
top: "transformed_inception_4a/3x3_reduce"
convolutional_spatial_transformer_param {
type: AFFINE
kernel_size: 3
}
}
layer {
name: "spatial_transformation_p"
type: "ConvolutionalSpatialTransformer"
bottom: "inception_4a/3x3_reduce_p"
bottom: "inception_4a/3x3_reduce_param3_p"
top: "transformed_inception_4a/3x3_reduce_p"
convolutional_spatial_transformer_param {
type: AFFINE
kernel_size: 3
}
}
layer {
name: "inception_4a/3x3"
type: "Convolution"
bottom: "transformed_inception_4a/3x3_reduce"
top: "inception_4a/3x3"
param {
name: "inception_4a/3x3_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/3x3_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 208
pad: 0
kernel_size: 3
stride: 3
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_4a/3x3_p"
type: "Convolution"
bottom: "transformed_inception_4a/3x3_reduce_p"
top: "inception_4a/3x3_p"
param {
name: "inception_4a/3x3_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/3x3_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 208
pad: 0
kernel_size: 3
stride: 3
}
}
layer {
name: "inception_4a/relu_3x3"
type: "ReLU"
bottom: "inception_4a/3x3"
top: "inception_4a/3x3"
}
layer {
name: "inception_4a/relu_3x3_p"
type: "ReLU"
bottom: "inception_4a/3x3_p"
top: "inception_4a/3x3_p"
}
layer {
name: "inception_4a/5x5_reduce"
type: "Convolution"
bottom: "pool3/3x3_s2"
top: "inception_4a/5x5_reduce"
param {
name: "inception_4a/5x5_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/5x5_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 16
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_4a/5x5_reduce_p"
type: "Convolution"
bottom: "pool3/3x3_s2_p"
top: "inception_4a/5x5_reduce_p"
param {
name: "inception_4a/5x5_reduce_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/5x5_reduce_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 16
kernel_size: 1
}
}
layer {
name: "inception_4a/relu_5x5_reduce"
type: "ReLU"
bottom: "inception_4a/5x5_reduce"
top: "inception_4a/5x5_reduce"
}
layer {
name: "inception_4a/relu_5x5_reduce_p"
type: "ReLU"
bottom: "inception_4a/5x5_reduce_p"
top: "inception_4a/5x5_reduce_p"
}
# layer {
# name: "inception_4a/5x5"
# type: "Convolution"
# bottom: "inception_4a/5x5_reduce"
# top: "inception_4a/5x5"
# param {
# name: "inception_4a/5x5_w"
# lr_mult: 1
# decay_mult: 1
# }
# param {
# name: "inception_4a/5x5_b"
# lr_mult: 2
# decay_mult: 0
# }
# convolution_param {
# num_output: 48
# pad: 2
# kernel_size: 5
# weight_filler {
# type: "xavier"
# }
# bias_filler {
# type: "constant"
# value: 0.2
# }
# }
# }
# layer {
# name: "inception_4a/5x5_p"
# type: "Convolution"
# bottom: "inception_4a/5x5_reduce_p"
# top: "inception_4a/5x5_p"
# param {
# name: "inception_4a/5x5_w"
# lr_mult: 1
# decay_mult: 1
# }
# param {
# name: "inception_4a/5x5_b"
# lr_mult: 2
# decay_mult: 0
# }
# convolution_param {
# num_output: 48
# pad: 2
# kernel_size: 5
# }
# }
# layer {
# name: "inception_4a/relu_5x5"
# type: "ReLU"
# bottom: "inception_4a/5x5"
# top: "inception_4a/5x5"
# }
# layer {
# name: "inception_4a/relu_5x5_p"
# type: "ReLU"
# bottom: "inception_4a/5x5_p"
# top: "inception_4a/5x5_p"
# }
layer {
bottom: "inception_4a/5x5_reduce"
top: "inception_4a/5x5_reduce_param"
name: "inception_4a/5x5_reduce_param"
type: "Convolution"
param {
name: "inception_4a/5x5_reduce_transform_param_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/5x5_reduce_transform_param_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
pad: 0
num_output: 32
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
bottom: "inception_4a/5x5_reduce_p"
top: "inception_4a/5x5_reduce_param_p"
name: "inception_4a/5x5_reduce_param_p"
type: "Convolution"
param {
name: "inception_4a/5x5_reduce_transform_param_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/5x5_reduce_transform_param_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
pad: 0
num_output: 32
kernel_size: 1
}
}
layer {
name: "inception_4a/relu_5x5_reduce_param"
type: "ReLU"
bottom: "inception_4a/5x5_reduce_param"
top: "inception_4a/5x5_reduce_param"
}
layer {
name: "inception_4a/relu_5x5_reduce_param_p"
type: "ReLU"
bottom: "inception_4a/5x5_reduce_param_p"
top: "inception_4a/5x5_reduce_param_p"
}
layer {
bottom: "inception_4a/5x5_reduce_param"
top: "inception_4a/5x5_reduce_param2"
name: "inception_4a/5x5_reduce_param2"
type: "Convolution"
param {
name: "inception_4a/5x5_reduce_transform_param2_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/5x5_reduce_transform_param2_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
pad: 0
num_output: 32
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
bottom: "inception_4a/5x5_reduce_param_p"
top: "inception_4a/5x5_reduce_param2_p"
name: "inception_4a/5x5_reduce_param2_p"
type: "Convolution"
param {
name: "inception_4a/5x5_reduce_transform_param2_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/5x5_reduce_transform_param2_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
pad: 0
num_output: 32
kernel_size: 1
}
}
layer {
name: "inception_4a/relu_5x5_reduce_param2"
type: "ReLU"
bottom: "inception_4a/5x5_reduce_param2"
top: "inception_4a/5x5_reduce_param2"
}
layer {
name: "inception_4a/relu_5x5_reduce_param2_p"
type: "ReLU"
bottom: "inception_4a/5x5_reduce_param2_p"
top: "inception_4a/5x5_reduce_param2_p"
}
layer {
bottom: "inception_4a/5x5_reduce_param2"
top: "inception_4a/5x5_reduce_param3"
name: "inception_4a/5x5_reduce_param3"
type: "Convolution"
param {
name: "inception_4a/5x5_reduce_transform_param3_w"
lr_mult: 10
decay_mult: 1
}
param {
name: "inception_4a/5x5_reduce_transform_param3_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
pad: 0
num_output: 4
kernel_size: 1
weight_filler {
type: "gaussian"
std: 0.001
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
bottom: "inception_4a/5x5_reduce_param2_p"
top: "inception_4a/5x5_reduce_param3_p"
name: "inception_4a/5x5_reduce_param3_p"
type: "Convolution"
param {
name: "inception_4a/5x5_reduce_transform_param3_w"
lr_mult: 10
decay_mult: 1
}
param {
name: "inception_4a/5x5_reduce_transform_param3_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
pad: 0
num_output: 4
kernel_size: 1
}
}
layer {
name: "spatial_transformation_5x5"
type: "ConvolutionalSpatialTransformer"
bottom: "inception_4a/5x5_reduce"
bottom: "inception_4a/5x5_reduce_param3"
top: "transformed_inception_4a/5x5_reduce"
convolutional_spatial_transformer_param {
type: AFFINE
kernel_size: 5
}
}
layer {
name: "spatial_transformation_5x5_p"
type: "ConvolutionalSpatialTransformer"
bottom: "inception_4a/5x5_reduce_p"
bottom: "inception_4a/5x5_reduce_param3_p"
top: "transformed_inception_4a/5x5_reduce_p"
convolutional_spatial_transformer_param {
type: AFFINE
kernel_size: 5
}
}
layer {
name: "inception_4a/5x5"
type: "Convolution"
bottom: "transformed_inception_4a/5x5_reduce"
top: "inception_4a/5x5"
param {
name: "inception_4a/5x5_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/5x5_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 48
pad: 0
kernel_size: 5
stride: 5
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_4a/5x5_p"
type: "Convolution"
bottom: "transformed_inception_4a/5x5_reduce_p"
top: "inception_4a/5x5_p"
param {
name: "inception_4a/5x5_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/5x5_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 48
pad: 0
kernel_size: 5
stride: 5
}
}
layer {
name: "inception_4a/relu_5x5"
type: "ReLU"
bottom: "inception_4a/5x5"
top: "inception_4a/5x5"
}
layer {
name: "inception_4a/relu_5x5_p"
type: "ReLU"
bottom: "inception_4a/5x5_p"
top: "inception_4a/5x5_p"
}
layer {
name: "inception_4a/pool"
type: "Pooling"
bottom: "pool3/3x3_s2"
top: "inception_4a/pool"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_4a/pool_p"
type: "Pooling"
bottom: "pool3/3x3_s2_p"
top: "inception_4a/pool_p"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
layer {
name: "inception_4a/pool_proj"
type: "Convolution"
bottom: "inception_4a/pool"
top: "inception_4a/pool_proj"
param {
name: "inception_4a/pool_proj_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/pool_proj_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
name: "inception_4a/pool_proj_p"
type: "Convolution"
bottom: "inception_4a/pool_p"
top: "inception_4a/pool_proj_p"
param {
name: "inception_4a/pool_proj_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "inception_4a/pool_proj_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 64
kernel_size: 1
}
}
layer {
name: "inception_4a/relu_pool_proj"
type: "ReLU"
bottom: "inception_4a/pool_proj"
top: "inception_4a/pool_proj"
}
layer {
name: "inception_4a/relu_pool_proj_p"
type: "ReLU"
bottom: "inception_4a/pool_proj_p"
top: "inception_4a/pool_proj_p"
}
layer {
name: "inception_4a/output"
type: "Concat"
bottom: "inception_4a/1x1"
bottom: "inception_4a/3x3"
bottom: "inception_4a/5x5"
bottom: "inception_4a/pool_proj"
top: "inception_4a/output"
}
layer {
name: "inception_4a/output_p"
type: "Concat"
bottom: "inception_4a/1x1_p"
bottom: "inception_4a/3x3_p"
bottom: "inception_4a/5x5_p"
bottom: "inception_4a/pool_proj_p"
top: "inception_4a/output_p"
}
layer {
bottom: "inception_4a/output"
top: "feature1_unnorm"
name: "feature1_unnorm"
type: "Convolution"
param {
name: "feature_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "feature_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0.2
}
}
}
layer {
bottom: "inception_4a/output_p"
top: "feature2_unnorm"
name: "feature2_unnorm"
type: "Convolution"
param {
name: "feature_w"
lr_mult: 1
decay_mult: 1
}
param {
name: "feature_b"
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 128
kernel_size: 1
}
}
layer {
bottom: "feature1_unnorm"
top: "feature1"
name: "feature1"
type: "Python"
python_param {
module: "layers.l2norm_layer"
layer: "L2NormLayer"
}
}
layer {
bottom: "feature2_unnorm"
top: "feature2"
name: "feature2"
type: "Python"
python_param {
module: "layers.l2norm_layer"
layer: "L2NormLayer"
}
}
layer {
name: "feature1_extraction"
type: "ExtractFeature"
bottom: "feature1"
bottom: "correspondence"
top: "feature1_extraction"
extract_feature_param {
num_coord_elements: 5
coord_start_ind: 0
downsampling_factor: 4.0
}
}
layer {
name: "knn"
type: "KNN"
bottom: "feature1_extraction"
bottom: "feature2"
bottom: "num_coord"
top: "dist"
top: "ind"
knn_param {
k: 1
use_all_query: false
use_all_ref: true
}
}
layer {
bottom: "dist"
name: "dist_silence"
type: "Silence"
}
layer {
name: "negative_processing"
type: "Python"
bottom: "correspondence"
bottom: "ind"
bottom: "feature2"
bottom: "num_coord"
top: "hard-negative-correspondence"
top: "PCK"
python_param {
module: "layers.hard_negative_processing_layer"
layer: "HardNegativeProcessingLayer"
param_str: "down_sampling_factor: 4"
}
}
layer {
name: "pair"
type: "CorrespondenceContrastiveLoss"
bottom: "feature1"
bottom: "feature2"
bottom: "hard-negative-correspondence"
top: "pair_loss"
correspondence_loss_param {
margin: 1
downsampling_factor: 4
bilinear_interpolation: true
}
loss_weight: 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment