Skip to content

Instantly share code, notes, and snippets.

@colegleason
Created July 14, 2016 17:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save colegleason/7d4b946d69d1d188bba90299c8dc046a to your computer and use it in GitHub Desktop.
Save colegleason/7d4b946d69d1d188bba90299c8dc046a to your computer and use it in GitHub Desktop.
Deploy network for Posenet
name: "GoogLeNet"
input: "data"
input_dim: 1
input_dim: 3
input_dim: 224
input_dim: 224
layers {
name: "conv1"
type: CONVOLUTION
bottom: "data"
top: "conv1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 64
kernel_size: 7
stride: 2
pad: 3
weight_filler {
type: "gaussian"
std: 0.015
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu1"
type: RELU
bottom: "conv1"
top: "conv1"
}
layers {
name: "pool1"
type: POOLING
bottom: "conv1"
top: "pool1"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
pad: 0
}
}
layers {
name: "norm1"
type: LRN
bottom: "pool1"
top: "norm1"
lrn_param {
local_size: 5
alpha: 0.0001
beta: 0.75
}
}
layers {
name: "reduction2"
type: CONVOLUTION
bottom: "norm1"
top: "reduction2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 64
pad: 0
kernel_size: 1
group: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_reduction2"
type: RELU
bottom: "reduction2"
top: "reduction2"
}
layers {
name: "conv2"
type: CONVOLUTION
bottom: "reduction2"
top: "conv2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 192
pad: 1
kernel_size: 3
group: 1
weight_filler {
type: "gaussian"
std: 0.02
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu2"
type: RELU
bottom: "conv2"
top: "conv2"
}
layers {
name: "norm2"
type: LRN
bottom: "conv2"
top: "norm2"
lrn_param {
local_size: 5
alpha: 0.0001
beta: 0.75
}
}
layers {
name: "pool2"
type: POOLING
bottom: "norm2"
top: "pool2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
pad: 0
}
}
# Inception module 1 ***************
layers {
name: "icp1_reduction1"
type: CONVOLUTION
bottom: "pool2"
top: "icp1_reduction1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 96
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp1_reduction1"
type: RELU
bottom: "icp1_reduction1"
top: "icp1_reduction1"
}
layers {
name: "icp1_reduction2"
type: CONVOLUTION
bottom: "pool2"
top: "icp1_reduction2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 16
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp1_reduction2"
type: RELU
bottom: "icp1_reduction2"
top: "icp1_reduction2"
}
layers {
name: "icp1_pool"
type: POOLING
bottom: "pool2"
top: "icp1_pool"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
# ***********
layers {
name: "icp1_out0"
type: CONVOLUTION
bottom: "pool2"
top: "icp1_out0"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 64
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp1_out0"
type: RELU
bottom: "icp1_out0"
top: "icp1_out0"
}
layers {
name: "icp1_out1"
type: CONVOLUTION
bottom: "icp1_reduction1"
top: "icp1_out1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.04
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp1_out1"
type: RELU
bottom: "icp1_out1"
top: "icp1_out1"
}
layers {
name: "icp1_out2"
type: CONVOLUTION
bottom: "icp1_reduction2"
top: "icp1_out2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 32
pad: 2
kernel_size: 5
weight_filler {
type: "gaussian"
std: 0.08
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp1_out2"
type: RELU
bottom: "icp1_out2"
top: "icp1_out2"
}
layers {
name: "icp1_out3"
type: CONVOLUTION
bottom: "icp1_pool"
top: "icp1_out3"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 32
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp1_out3"
type: RELU
bottom: "icp1_out3"
top: "icp1_out3"
}
# Concat them together
layers {
name: "icp2_in"
type: CONCAT
bottom: "icp1_out0"
bottom: "icp1_out1"
bottom: "icp1_out2"
bottom: "icp1_out3"
top: "icp2_in"
}
# Inception module 2 ***************
layers {
name: "icp2_reduction1"
type: CONVOLUTION
bottom: "icp2_in"
top: "icp2_reduction1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp2_reduction1"
type: RELU
bottom: "icp2_reduction1"
top: "icp2_reduction1"
}
layers {
name: "icp2_reduction2"
type: CONVOLUTION
bottom: "icp2_in"
top: "icp2_reduction2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 32
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp2_reduction2"
type: RELU
bottom: "icp2_reduction2"
top: "icp2_reduction2"
}
layers {
name: "icp2_pool"
type: POOLING
bottom: "icp2_in"
top: "icp2_pool"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
# ***********
layers {
name: "icp2_out0"
type: CONVOLUTION
bottom: "icp2_in"
top: "icp2_out0"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp2_out0"
type: RELU
bottom: "icp2_out0"
top: "icp2_out0"
}
layers {
name: "icp2_out1"
type: CONVOLUTION
bottom: "icp2_reduction1"
top: "icp2_out1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 192
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.04
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp2_out1"
type: RELU
bottom: "icp2_out1"
top: "icp2_out1"
}
layers {
name: "icp2_out2"
type: CONVOLUTION
bottom: "icp2_reduction2"
top: "icp2_out2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 96
pad: 2
kernel_size: 5
weight_filler {
type: "gaussian"
std: 0.08
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp2_out2"
type: RELU
bottom: "icp2_out2"
top: "icp2_out2"
}
layers {
name: "icp2_out3"
type: CONVOLUTION
bottom: "icp2_pool"
top: "icp2_out3"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 64
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp2_out3"
type: RELU
bottom: "icp2_out3"
top: "icp2_out3"
}
# Concat them together
layers {
name: "icp2_out"
type: CONCAT
bottom: "icp2_out0"
bottom: "icp2_out1"
bottom: "icp2_out2"
bottom: "icp2_out3"
top: "icp2_out"
}
layers {
name: "icp3_in"
type: POOLING
bottom: "icp2_out"
top: "icp3_in"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
pad: 0
}
}
# Inception module 3 ***************
layers {
name: "icp3_reduction1"
type: CONVOLUTION
bottom: "icp3_in"
top: "icp3_reduction1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 96
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp3_reduction1"
type: RELU
bottom: "icp3_reduction1"
top: "icp3_reduction1"
}
layers {
name: "icp3_reduction2"
type: CONVOLUTION
bottom: "icp3_in"
top: "icp3_reduction2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 16
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp3_reduction2"
type: RELU
bottom: "icp3_reduction2"
top: "icp3_reduction2"
}
layers {
name: "icp3_pool"
type: POOLING
bottom: "icp3_in"
top: "icp3_pool"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
# ***********
layers {
name: "icp3_out0"
type: CONVOLUTION
bottom: "icp3_in"
top: "icp3_out0"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 192
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp3_out0"
type: RELU
bottom: "icp3_out0"
top: "icp3_out0"
}
layers {
name: "icp3_out1"
type: CONVOLUTION
bottom: "icp3_reduction1"
top: "icp3_out1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 208
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.04
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp3_out1"
type: RELU
bottom: "icp3_out1"
top: "icp3_out1"
}
layers {
name: "icp3_out2"
type: CONVOLUTION
bottom: "icp3_reduction2"
top: "icp3_out2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 48
pad: 2
kernel_size: 5
weight_filler {
type: "gaussian"
std: 0.08
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp3_out2"
type: RELU
bottom: "icp3_out2"
top: "icp3_out2"
}
layers {
name: "icp3_out3"
type: CONVOLUTION
bottom: "icp3_pool"
top: "icp3_out3"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 64
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp3_out3"
type: RELU
bottom: "icp3_out3"
top: "icp3_out3"
}
# Concat them together
layers {
name: "icp3_out"
type: CONCAT
bottom: "icp3_out0"
bottom: "icp3_out1"
bottom: "icp3_out2"
bottom: "icp3_out3"
top: "icp3_out"
}
# first classification branch ************
layers {
name: "cls1_pool"
type: POOLING
bottom: "icp3_out"
top: "cls1_pool"
pooling_param {
pool: AVE
kernel_size: 5
stride: 3
pad: 0
# this padding is somewhat special
}
}
layers {
name: "cls1_reduction_pose"
type: CONVOLUTION
bottom: "cls1_pool"
top: "cls1_reduction"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_cls1_reduction"
type: RELU
bottom: "cls1_reduction"
top: "cls1_reduction"
}
layers {
name: "cls1_fc1_pose"
type: INNER_PRODUCT
bottom: "cls1_reduction"
top: "cls1_fc1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
inner_product_param {
num_output: 1024
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_cls1_fc1"
type: RELU
bottom: "cls1_fc1"
top: "cls1_fc1"
}
layers {
name: "cls1_drop"
type: DROPOUT
bottom: "cls1_fc1"
top: "cls1_fc1"
dropout_param {
dropout_ratio: 0.7
}
}
layers {
name: "cls1_fc_pose_xyz"
type: INNER_PRODUCT
bottom: "cls1_fc1"
top: "cls1_fc_xyz"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
inner_product_param {
num_output: 3
weight_filler {
type: "gaussian"
std: 0.5
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "cls1_fc_pose_wpqr"
type: INNER_PRODUCT
bottom: "cls1_fc1"
top: "cls1_fc_wpqr"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
inner_product_param {
num_output: 4
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
value: 0
}
}
}
# Inception module 4 ***************
layers {
name: "icp4_reduction1"
type: CONVOLUTION
bottom: "icp3_out"
top: "icp4_reduction1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 112
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp4_reduction1"
type: RELU
bottom: "icp4_reduction1"
top: "icp4_reduction1"
}
layers {
name: "icp4_reduction2"
type: CONVOLUTION
bottom: "icp3_out"
top: "icp4_reduction2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 24
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp4_reduction2"
type: RELU
bottom: "icp4_reduction2"
top: "icp4_reduction2"
}
layers {
name: "icp4_pool"
type: POOLING
bottom: "icp3_out"
top: "icp4_pool"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
# ***********
layers {
name: "icp4_out0"
type: CONVOLUTION
bottom: "icp3_out"
top: "icp4_out0"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 160
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp4_out0"
type: RELU
bottom: "icp4_out0"
top: "icp4_out0"
}
layers {
name: "icp4_out1"
type: CONVOLUTION
bottom: "icp4_reduction1"
top: "icp4_out1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 224
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.04
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp4_out1"
type: RELU
bottom: "icp4_out1"
top: "icp4_out1"
}
layers {
name: "icp4_out2"
type: CONVOLUTION
bottom: "icp4_reduction2"
top: "icp4_out2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 64
pad: 2
kernel_size: 5
weight_filler {
type: "gaussian"
std: 0.08
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp4_out2"
type: RELU
bottom: "icp4_out2"
top: "icp4_out2"
}
layers {
name: "icp4_out3"
type: CONVOLUTION
bottom: "icp4_pool"
top: "icp4_out3"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 64
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp4_out3"
type: RELU
bottom: "icp4_out3"
top: "icp4_out3"
}
# Concat them together
layers {
name: "icp4_out"
type: CONCAT
bottom: "icp4_out0"
bottom: "icp4_out1"
bottom: "icp4_out2"
bottom: "icp4_out3"
top: "icp4_out"
}
# Inception module 5 ***************
layers {
name: "icp5_reduction1"
type: CONVOLUTION
bottom: "icp4_out"
top: "icp5_reduction1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp5_reduction1"
type: RELU
bottom: "icp5_reduction1"
top: "icp5_reduction1"
}
layers {
name: "icp5_reduction2"
type: CONVOLUTION
bottom: "icp4_out"
top: "icp5_reduction2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 24
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp5_reduction2"
type: RELU
bottom: "icp5_reduction2"
top: "icp5_reduction2"
}
layers {
name: "icp5_pool"
type: POOLING
bottom: "icp4_out"
top: "icp5_pool"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
# ***********
layers {
name: "icp5_out0"
type: CONVOLUTION
bottom: "icp4_out"
top: "icp5_out0"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp5_out0"
type: RELU
bottom: "icp5_out0"
top: "icp5_out0"
}
layers {
name: "icp5_out1"
type: CONVOLUTION
bottom: "icp5_reduction1"
top: "icp5_out1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.04
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp5_out1"
type: RELU
bottom: "icp5_out1"
top: "icp5_out1"
}
layers {
name: "icp5_out2"
type: CONVOLUTION
bottom: "icp5_reduction2"
top: "icp5_out2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 64
pad: 2
kernel_size: 5
weight_filler {
type: "gaussian"
std: 0.08
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp5_out2"
type: RELU
bottom: "icp5_out2"
top: "icp5_out2"
}
layers {
name: "icp5_out3"
type: CONVOLUTION
bottom: "icp5_pool"
top: "icp5_out3"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 64
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp5_out3"
type: RELU
bottom: "icp5_out3"
top: "icp5_out3"
}
# Concat them together
layers {
name: "icp5_out"
type: CONCAT
bottom: "icp5_out0"
bottom: "icp5_out1"
bottom: "icp5_out2"
bottom: "icp5_out3"
top: "icp5_out"
}
# Inception module 6 ***************
layers {
name: "icp6_reduction1"
type: CONVOLUTION
bottom: "icp5_out"
top: "icp6_reduction1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 144
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp6_reduction1"
type: RELU
bottom: "icp6_reduction1"
top: "icp6_reduction1"
}
layers {
name: "icp6_reduction2"
type: CONVOLUTION
bottom: "icp5_out"
top: "icp6_reduction2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 32
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp6_reduction2"
type: RELU
bottom: "icp6_reduction2"
top: "icp6_reduction2"
}
layers {
name: "icp6_pool"
type: POOLING
bottom: "icp5_out"
top: "icp6_pool"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
# ***********
layers {
name: "icp6_out0"
type: CONVOLUTION
bottom: "icp5_out"
top: "icp6_out0"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 112
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp6_out0"
type: RELU
bottom: "icp6_out0"
top: "icp6_out0"
}
layers {
name: "icp6_out1"
type: CONVOLUTION
bottom: "icp6_reduction1"
top: "icp6_out1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 288
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.04
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp6_out1"
type: RELU
bottom: "icp6_out1"
top: "icp6_out1"
}
layers {
name: "icp6_out2"
type: CONVOLUTION
bottom: "icp6_reduction2"
top: "icp6_out2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 64
pad: 2
kernel_size: 5
weight_filler {
type: "gaussian"
std: 0.08
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp6_out2"
type: RELU
bottom: "icp6_out2"
top: "icp6_out2"
}
layers {
name: "icp6_out3"
type: CONVOLUTION
bottom: "icp6_pool"
top: "icp6_out3"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 64
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp6_out3"
type: RELU
bottom: "icp6_out3"
top: "icp6_out3"
}
# Concat them together
layers {
name: "icp6_out"
type: CONCAT
bottom: "icp6_out0"
bottom: "icp6_out1"
bottom: "icp6_out2"
bottom: "icp6_out3"
top: "icp6_out"
}
# second classification branch ************
layers {
name: "cls2_pool"
type: POOLING
bottom: "icp6_out"
top: "cls2_pool"
pooling_param {
pool: AVE
kernel_size: 5
stride: 3
pad: 0
# this padding is somewhat special
}
}
layers {
name: "cls2_reduction_pose"
type: CONVOLUTION
bottom: "cls2_pool"
top: "cls2_reduction"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_cls2_reduction"
type: RELU
bottom: "cls2_reduction"
top: "cls2_reduction"
}
layers {
name: "cls2_fc1"
type: INNER_PRODUCT
bottom: "cls2_reduction"
top: "cls2_fc1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
inner_product_param {
num_output: 1024
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_cls2_fc1"
type: RELU
bottom: "cls2_fc1"
top: "cls2_fc1"
}
layers {
name: "cls2_drop"
type: DROPOUT
bottom: "cls2_fc1"
top: "cls2_fc1"
dropout_param {
dropout_ratio: 0.7
}
}
layers {
name: "cls2_fc_pose_xyz"
type: INNER_PRODUCT
bottom: "cls2_fc1"
top: "cls2_fc_xyz"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
inner_product_param {
num_output: 3
weight_filler {
type: "gaussian"
std: 0.5
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "cls2_fc_pose_wpqr"
type: INNER_PRODUCT
bottom: "cls2_fc1"
top: "cls2_fc_wpqr"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
inner_product_param {
num_output: 4
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
value: 0
}
}
}
# Inception module 7 ***************
layers {
name: "icp7_reduction1"
type: CONVOLUTION
bottom: "icp6_out"
top: "icp7_reduction1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 160
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp7_reduction1"
type: RELU
bottom: "icp7_reduction1"
top: "icp7_reduction1"
}
layers {
name: "icp7_reduction2"
type: CONVOLUTION
bottom: "icp6_out"
top: "icp7_reduction2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 32
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp7_reduction2"
type: RELU
bottom: "icp7_reduction2"
top: "icp7_reduction2"
}
layers {
name: "icp7_pool"
type: POOLING
bottom: "icp6_out"
top: "icp7_pool"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
# ***********
layers {
name: "icp7_out0"
type: CONVOLUTION
bottom: "icp6_out"
top: "icp7_out0"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 256
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp7_out0"
type: RELU
bottom: "icp7_out0"
top: "icp7_out0"
}
layers {
name: "icp7_out1"
type: CONVOLUTION
bottom: "icp7_reduction1"
top: "icp7_out1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 320
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.04
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp7_out1"
type: RELU
bottom: "icp7_out1"
top: "icp7_out1"
}
layers {
name: "icp7_out2"
type: CONVOLUTION
bottom: "icp7_reduction2"
top: "icp7_out2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 128
pad: 2
kernel_size: 5
weight_filler {
type: "gaussian"
std: 0.08
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp7_out2"
type: RELU
bottom: "icp7_out2"
top: "icp7_out2"
}
layers {
name: "icp7_out3"
type: CONVOLUTION
bottom: "icp7_pool"
top: "icp7_out3"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp7_out3"
type: RELU
bottom: "icp7_out3"
top: "icp7_out3"
}
# Concat them together
layers {
name: "icp7_out"
type: CONCAT
bottom: "icp7_out0"
bottom: "icp7_out1"
bottom: "icp7_out2"
bottom: "icp7_out3"
top: "icp7_out"
}
layers {
name: "icp8_in"
type: POOLING
bottom: "icp7_out"
top: "icp8_in"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
pad: 0
}
}
# Inception module 8 ***************
layers {
name: "icp8_reduction1"
type: CONVOLUTION
bottom: "icp8_in"
top: "icp8_reduction1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 160
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp8_reduction1"
type: RELU
bottom: "icp8_reduction1"
top: "icp8_reduction1"
}
layers {
name: "icp8_reduction2"
type: CONVOLUTION
bottom: "icp8_in"
top: "icp8_reduction2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 32
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp8_reduction2"
type: RELU
bottom: "icp8_reduction2"
top: "icp8_reduction2"
}
layers {
name: "icp8_pool"
type: POOLING
bottom: "icp8_in"
top: "icp8_pool"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
# ***********
layers {
name: "icp8_out0"
type: CONVOLUTION
bottom: "icp8_in"
top: "icp8_out0"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 256
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp8_out0"
type: RELU
bottom: "icp8_out0"
top: "icp8_out0"
}
layers {
name: "icp8_out1"
type: CONVOLUTION
bottom: "icp8_reduction1"
top: "icp8_out1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 320
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.04
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp8_out1"
type: RELU
bottom: "icp8_out1"
top: "icp8_out1"
}
layers {
name: "icp8_out2"
type: CONVOLUTION
bottom: "icp8_reduction2"
top: "icp8_out2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 128
pad: 2
kernel_size: 5
weight_filler {
type: "gaussian"
std: 0.08
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp8_out2"
type: RELU
bottom: "icp8_out2"
top: "icp8_out2"
}
layers {
name: "icp8_out3"
type: CONVOLUTION
bottom: "icp8_pool"
top: "icp8_out3"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp8_out3"
type: RELU
bottom: "icp8_out3"
top: "icp8_out3"
}
# Concat them together
layers {
name: "icp8_out"
type: CONCAT
bottom: "icp8_out0"
bottom: "icp8_out1"
bottom: "icp8_out2"
bottom: "icp8_out3"
top: "icp8_out"
}
# Inception module 9 ***************
layers {
name: "icp9_reduction1"
type: CONVOLUTION
bottom: "icp8_out"
top: "icp9_reduction1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 192
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp9_reduction1"
type: RELU
bottom: "icp9_reduction1"
top: "icp9_reduction1"
}
layers {
name: "icp9_reduction2"
type: CONVOLUTION
bottom: "icp8_out"
top: "icp9_reduction2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 48
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp9_reduction2"
type: RELU
bottom: "icp9_reduction2"
top: "icp9_reduction2"
}
layers {
name: "icp9_pool"
type: POOLING
bottom: "icp8_out"
top: "icp9_pool"
pooling_param {
pool: MAX
kernel_size: 3
stride: 1
pad: 1
}
}
# ***********
layers {
name: "icp9_out0"
type: CONVOLUTION
bottom: "icp8_out"
top: "icp9_out0"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 384
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp9_out0"
type: RELU
bottom: "icp9_out0"
top: "icp9_out0"
}
layers {
name: "icp9_out1"
type: CONVOLUTION
bottom: "icp9_reduction1"
top: "icp9_out1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 384
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.04
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp9_out1"
type: RELU
bottom: "icp9_out1"
top: "icp9_out1"
}
layers {
name: "icp9_out2"
type: CONVOLUTION
bottom: "icp9_reduction2"
top: "icp9_out2"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 128
pad: 2
kernel_size: 5
weight_filler {
type: "gaussian"
std: 0.08
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp9_out2"
type: RELU
bottom: "icp9_out2"
top: "icp9_out2"
}
layers {
name: "icp9_out3"
type: CONVOLUTION
bottom: "icp9_pool"
top: "icp9_out3"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
convolution_param {
num_output: 128
pad: 0
kernel_size: 1
weight_filler {
type: "xavier"
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_icp9_out3"
type: RELU
bottom: "icp9_out3"
top: "icp9_out3"
}
# Concat them together
layers {
name: "icp9_out"
type: CONCAT
bottom: "icp9_out0"
bottom: "icp9_out1"
bottom: "icp9_out2"
bottom: "icp9_out3"
top: "icp9_out"
}
# third classification branch
layers {
name: "cls3_pool"
type: POOLING
bottom: "icp9_out"
top: "cls3_pool"
pooling_param {
pool: AVE
kernel_size: 7
stride: 1
pad: 0
# This padding is somewhat special
}
}
layers {
name: "cls3_fc1_pose"
type: INNER_PRODUCT
bottom: "cls3_pool"
top: "cls3_fc1"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
inner_product_param {
num_output: 2048
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "relu_cls3_fc1_2"
type: RELU
bottom: "cls3_fc1"
top: "cls3_fc1"
}
layers {
name: "cls3_drop"
type: DROPOUT
bottom: "cls3_fc1"
top: "cls3_fc1"
dropout_param {
dropout_ratio: 0.5
}
}
layers {
name: "cls3_fc_pose_xyz"
type: INNER_PRODUCT
bottom: "cls3_fc1"
top: "cls3_fc_xyz"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
inner_product_param {
num_output: 3
weight_filler {
type: "gaussian"
std: 0.5
}
bias_filler {
type: "constant"
value: 0
}
}
}
layers {
name: "cls3_fc_pose_wpqr"
type: INNER_PRODUCT
bottom: "cls3_fc1"
top: "cls3_fc_wpqr"
blobs_lr: 1
blobs_lr: 2
weight_decay: 1
weight_decay: 0
inner_product_param {
num_output: 4
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
value: 0
}
}
}
@inckagan
Copy link

inckagan commented Oct 2, 2017

Hi Colegleason,

I am a new user and I have trained the posenet model by using my own dataset and now I want to get predictions from this model.

Can you please advise me how to achieve that?

Regards

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment