Skip to content

Instantly share code, notes, and snippets.

@Daiver
Created March 15, 2019 10:30
Show Gist options
  • Save Daiver/713f18057de5698099eb54e5d8633480 to your computer and use it in GitHub Desktop.
Save Daiver/713f18057de5698099eb54e5d8633480 to your computer and use it in GitHub Desktop.
name: "WFLW_wo_mp"
# data ------------------------------------
input: "data"
input_shape {
dim: 1
dim: 1
dim: 256
dim: 256
}
# net -------------------------------------
layer {
name: "conv1"
type: "Convolution"
bottom: "data"
top: "conv1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 3
kernel_size: 7
stride: 2
weight_filler {
type: "msra"
}
}
}
layer {
name: "conv1/bn_batchmorn"
type: "BatchNorm"
bottom: "conv1"
top: "conv1tmp"
}
layer {
name: "conv1/bn_scale"
type: "Scale"
bottom: "conv1tmp"
top: "conv1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "conv1/bn/relu"
type: "PReLU"
bottom: "conv1/bn"
top: "conv1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "pre_res_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "conv1/bn"
top: "pre_res_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "pre_res_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "pre_res_1/branch1/conv1_1x1"
top: "pre_res_1/branch1/conv1_1x1tmp"
}
layer {
name: "pre_res_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "pre_res_1/branch1/conv1_1x1tmp"
top: "pre_res_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "pre_res_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "pre_res_1/branch1/conv1_1x1/bn"
top: "pre_res_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "pre_res_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "pre_res_1/branch1/conv1_1x1/bn"
top: "pre_res_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "pre_res_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "pre_res_1/branch1/conv2_3x3"
top: "pre_res_1/branch1/conv2_3x3tmp"
}
layer {
name: "pre_res_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "pre_res_1/branch1/conv2_3x3tmp"
top: "pre_res_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "pre_res_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "pre_res_1/branch1/conv2_3x3/bn"
top: "pre_res_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "pre_res_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "pre_res_1/branch1/conv2_3x3/bn"
top: "pre_res_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "pre_res_1/branch2/conv1_1x1"
type: "Convolution"
bottom: "conv1/bn"
top: "pre_res_1/branch2/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "pre_res_1"
type: "Eltwise"
bottom: "pre_res_1/branch2/conv1_1x1"
bottom: "pre_res_1/branch1/conv3_1x1"
top: "pre_res_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "pool1_3x3_s2"
type: "Pooling"
bottom: "pre_res_1"
top: "pool1_3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "pool1_3x3_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "pool1_3x3_s2"
top: "pool1_3x3_s2tmp"
}
layer {
name: "pool1_3x3_s2/bn_scale"
type: "Scale"
bottom: "pool1_3x3_s2tmp"
top: "pool1_3x3_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "pool1_3x3_s2/bn/relu"
type: "PReLU"
bottom: "pool1_3x3_s2/bn"
top: "pool1_3x3_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "pre_res_2/branch1/conv1_1x1"
type: "Convolution"
bottom: "pool1_3x3_s2/bn"
top: "pre_res_2/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "pre_res_2/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "pre_res_2/branch1/conv1_1x1"
top: "pre_res_2/branch1/conv1_1x1tmp"
}
layer {
name: "pre_res_2/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "pre_res_2/branch1/conv1_1x1tmp"
top: "pre_res_2/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "pre_res_2/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "pre_res_2/branch1/conv1_1x1/bn"
top: "pre_res_2/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "pre_res_2/branch1/conv2_3x3"
type: "Convolution"
bottom: "pre_res_2/branch1/conv1_1x1/bn"
top: "pre_res_2/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "pre_res_2/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "pre_res_2/branch1/conv2_3x3"
top: "pre_res_2/branch1/conv2_3x3tmp"
}
layer {
name: "pre_res_2/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "pre_res_2/branch1/conv2_3x3tmp"
top: "pre_res_2/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "pre_res_2/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "pre_res_2/branch1/conv2_3x3/bn"
top: "pre_res_2/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "pre_res_2/branch1/conv3_1x1"
type: "Convolution"
bottom: "pre_res_2/branch1/conv2_3x3/bn"
top: "pre_res_2/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "pre_res_2"
type: "Eltwise"
bottom: "pre_res_2/branch1/conv3_1x1"
bottom: "pool1_3x3_s2"
top: "pre_res_2"
eltwise_param {
operation: SUM
}
}
layer {
name: "pre_res_2/bn_batchmorn"
type: "BatchNorm"
bottom: "pre_res_2"
top: "pre_res_2tmp"
}
layer {
name: "pre_res_2/bn_scale"
type: "Scale"
bottom: "pre_res_2tmp"
top: "pre_res_2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "pre_res_2/bn/relu"
type: "PReLU"
bottom: "pre_res_2/bn"
top: "pre_res_2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_0/output/branch1/conv1_1x1"
type: "Convolution"
bottom: "pre_res_2/bn"
top: "hourglass_0/output/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_0/output/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_0/output/branch1/conv1_1x1"
top: "hourglass_0/output/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_0/output/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_0/output/branch1/conv1_1x1tmp"
top: "hourglass_0/output/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_0/output/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_0/output/branch1/conv1_1x1/bn"
top: "hourglass_0/output/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_0/output/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_0/output/branch1/conv1_1x1/bn"
top: "hourglass_0/output/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_0/output/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_0/output/branch1/conv2_3x3"
top: "hourglass_0/output/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_0/output/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_0/output/branch1/conv2_3x3tmp"
top: "hourglass_0/output/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_0/output/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_0/output/branch1/conv2_3x3/bn"
top: "hourglass_0/output/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_0/output/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_0/output/branch1/conv2_3x3/bn"
top: "hourglass_0/output/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_0/output/branch2/conv1_1x1"
type: "Convolution"
bottom: "pre_res_2/bn"
top: "hourglass_0/output/branch2/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_0/output"
type: "Eltwise"
bottom: "hourglass_0/output/branch2/conv1_1x1"
bottom: "hourglass_0/output/branch1/conv3_1x1"
top: "hourglass_0/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/pool1_2x2_s2"
type: "Pooling"
bottom: "hourglass_0/output"
top: "hourglass_1/pool1_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_1/pool1_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/pool1_2x2_s2"
top: "hourglass_1/pool1_2x2_s2tmp"
}
layer {
name: "hourglass_1/pool1_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_1/pool1_2x2_s2tmp"
top: "hourglass_1/pool1_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/pool1_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_1/pool1_2x2_s2/bn"
top: "hourglass_1/pool1_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_1/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/pool1_2x2_s2/bn"
top: "hourglass_1/lower_1/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_1/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_1/res/branch1/conv1_1x1"
top: "hourglass_1/lower_1/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/lower_1/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_1/res/branch1/conv1_1x1tmp"
top: "hourglass_1/lower_1/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_1/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_1/res/branch1/conv1_1x1/bn"
top: "hourglass_1/lower_1/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_1/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/lower_1/res/branch1/conv1_1x1/bn"
top: "hourglass_1/lower_1/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_1/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_1/res/branch1/conv2_3x3"
top: "hourglass_1/lower_1/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/lower_1/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_1/res/branch1/conv2_3x3tmp"
top: "hourglass_1/lower_1/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_1/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_1/res/branch1/conv2_3x3/bn"
top: "hourglass_1/lower_1/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_1/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/lower_1/res/branch1/conv2_3x3/bn"
top: "hourglass_1/lower_1/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_1/res"
type: "Eltwise"
bottom: "hourglass_1/lower_1/res/branch1/conv3_1x1"
bottom: "hourglass_1/pool1_2x2_s2"
top: "hourglass_1/lower_1/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/pool2_2x2_s2"
type: "Pooling"
bottom: "hourglass_1/lower_1/res"
top: "hourglass_1/pool2_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_1/pool2_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/pool2_2x2_s2"
top: "hourglass_1/pool2_2x2_s2tmp"
}
layer {
name: "hourglass_1/pool2_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_1/pool2_2x2_s2tmp"
top: "hourglass_1/pool2_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/pool2_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_1/pool2_2x2_s2/bn"
top: "hourglass_1/pool2_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_2/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/pool2_2x2_s2/bn"
top: "hourglass_1/lower_2/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_2/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_2/res/branch1/conv1_1x1"
top: "hourglass_1/lower_2/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/lower_2/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_2/res/branch1/conv1_1x1tmp"
top: "hourglass_1/lower_2/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_2/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_2/res/branch1/conv1_1x1/bn"
top: "hourglass_1/lower_2/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_2/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/lower_2/res/branch1/conv1_1x1/bn"
top: "hourglass_1/lower_2/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_2/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_2/res/branch1/conv2_3x3"
top: "hourglass_1/lower_2/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/lower_2/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_2/res/branch1/conv2_3x3tmp"
top: "hourglass_1/lower_2/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_2/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_2/res/branch1/conv2_3x3/bn"
top: "hourglass_1/lower_2/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_2/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/lower_2/res/branch1/conv2_3x3/bn"
top: "hourglass_1/lower_2/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_2/res"
type: "Eltwise"
bottom: "hourglass_1/lower_2/res/branch1/conv3_1x1"
bottom: "hourglass_1/pool2_2x2_s2"
top: "hourglass_1/lower_2/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/pool3_2x2_s2"
type: "Pooling"
bottom: "hourglass_1/lower_2/res"
top: "hourglass_1/pool3_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_1/pool3_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/pool3_2x2_s2"
top: "hourglass_1/pool3_2x2_s2tmp"
}
layer {
name: "hourglass_1/pool3_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_1/pool3_2x2_s2tmp"
top: "hourglass_1/pool3_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/pool3_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_1/pool3_2x2_s2/bn"
top: "hourglass_1/pool3_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_3/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/pool3_2x2_s2/bn"
top: "hourglass_1/lower_3/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_3/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_3/res/branch1/conv1_1x1"
top: "hourglass_1/lower_3/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/lower_3/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_3/res/branch1/conv1_1x1tmp"
top: "hourglass_1/lower_3/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_3/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_3/res/branch1/conv1_1x1/bn"
top: "hourglass_1/lower_3/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_3/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/lower_3/res/branch1/conv1_1x1/bn"
top: "hourglass_1/lower_3/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_3/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_3/res/branch1/conv2_3x3"
top: "hourglass_1/lower_3/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/lower_3/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_3/res/branch1/conv2_3x3tmp"
top: "hourglass_1/lower_3/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_3/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_3/res/branch1/conv2_3x3/bn"
top: "hourglass_1/lower_3/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_3/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/lower_3/res/branch1/conv2_3x3/bn"
top: "hourglass_1/lower_3/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_3/res"
type: "Eltwise"
bottom: "hourglass_1/lower_3/res/branch1/conv3_1x1"
bottom: "hourglass_1/pool3_2x2_s2"
top: "hourglass_1/lower_3/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/pool4_2x2_s2"
type: "Pooling"
bottom: "hourglass_1/lower_3/res"
top: "hourglass_1/pool4_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_1/pool4_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/pool4_2x2_s2"
top: "hourglass_1/pool4_2x2_s2tmp"
}
layer {
name: "hourglass_1/pool4_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_1/pool4_2x2_s2tmp"
top: "hourglass_1/pool4_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/pool4_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_1/pool4_2x2_s2/bn"
top: "hourglass_1/pool4_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_4_1/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/pool4_2x2_s2/bn"
top: "hourglass_1/lower_4_1/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_4_1/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_4_1/res/branch1/conv1_1x1"
top: "hourglass_1/lower_4_1/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/lower_4_1/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_4_1/res/branch1/conv1_1x1tmp"
top: "hourglass_1/lower_4_1/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_4_1/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_4_1/res/branch1/conv1_1x1/bn"
top: "hourglass_1/lower_4_1/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_4_1/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/lower_4_1/res/branch1/conv1_1x1/bn"
top: "hourglass_1/lower_4_1/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_4_1/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_4_1/res/branch1/conv2_3x3"
top: "hourglass_1/lower_4_1/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/lower_4_1/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_4_1/res/branch1/conv2_3x3tmp"
top: "hourglass_1/lower_4_1/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_4_1/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_4_1/res/branch1/conv2_3x3/bn"
top: "hourglass_1/lower_4_1/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_4_1/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/lower_4_1/res/branch1/conv2_3x3/bn"
top: "hourglass_1/lower_4_1/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_4_1/res"
type: "Eltwise"
bottom: "hourglass_1/lower_4_1/res/branch1/conv3_1x1"
bottom: "hourglass_1/pool4_2x2_s2"
top: "hourglass_1/lower_4_1/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/lower_4_1/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_4_1/res"
top: "hourglass_1/lower_4_1/restmp"
}
layer {
name: "hourglass_1/lower_4_1/res/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_4_1/restmp"
top: "hourglass_1/lower_4_1/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_4_1/res/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_4_1/res/bn"
top: "hourglass_1/lower_4_1/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_4_2/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/lower_4_1/res/bn"
top: "hourglass_1/lower_4_2/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_4_2/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_4_2/res/branch1/conv1_1x1"
top: "hourglass_1/lower_4_2/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/lower_4_2/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_4_2/res/branch1/conv1_1x1tmp"
top: "hourglass_1/lower_4_2/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_4_2/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_4_2/res/branch1/conv1_1x1/bn"
top: "hourglass_1/lower_4_2/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_4_2/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/lower_4_2/res/branch1/conv1_1x1/bn"
top: "hourglass_1/lower_4_2/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_4_2/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_4_2/res/branch1/conv2_3x3"
top: "hourglass_1/lower_4_2/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/lower_4_2/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_4_2/res/branch1/conv2_3x3tmp"
top: "hourglass_1/lower_4_2/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_4_2/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_4_2/res/branch1/conv2_3x3/bn"
top: "hourglass_1/lower_4_2/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_4_2/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/lower_4_2/res/branch1/conv2_3x3/bn"
top: "hourglass_1/lower_4_2/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_4_2/res"
type: "Eltwise"
bottom: "hourglass_1/lower_4_2/res/branch1/conv3_1x1"
bottom: "hourglass_1/lower_4_1/res"
top: "hourglass_1/lower_4_2/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/lower_4_2/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_4_2/res"
top: "hourglass_1/lower_4_2/restmp"
}
layer {
name: "hourglass_1/lower_4_2/res/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_4_2/restmp"
top: "hourglass_1/lower_4_2/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_4_2/res/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_4_2/res/bn"
top: "hourglass_1/lower_4_2/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_4_3/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/lower_4_2/res/bn"
top: "hourglass_1/lower_4_3/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_4_3/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_4_3/res/branch1/conv1_1x1"
top: "hourglass_1/lower_4_3/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/lower_4_3/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_4_3/res/branch1/conv1_1x1tmp"
top: "hourglass_1/lower_4_3/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_4_3/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_4_3/res/branch1/conv1_1x1/bn"
top: "hourglass_1/lower_4_3/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_4_3/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/lower_4_3/res/branch1/conv1_1x1/bn"
top: "hourglass_1/lower_4_3/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_4_3/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_4_3/res/branch1/conv2_3x3"
top: "hourglass_1/lower_4_3/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/lower_4_3/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_4_3/res/branch1/conv2_3x3tmp"
top: "hourglass_1/lower_4_3/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_4_3/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_4_3/res/branch1/conv2_3x3/bn"
top: "hourglass_1/lower_4_3/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/lower_4_3/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/lower_4_3/res/branch1/conv2_3x3/bn"
top: "hourglass_1/lower_4_3/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/lower_4_3/res"
type: "Eltwise"
bottom: "hourglass_1/lower_4_3/res/branch1/conv3_1x1"
bottom: "hourglass_1/lower_4_2/res"
top: "hourglass_1/lower_4_3/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/upper_4/interp"
type: "Interp"
bottom: "hourglass_1/lower_4_3/res"
bottom: "hourglass_1/lower_3/res"
top: "hourglass_1/upper_4/interp"
}
layer {
name: "hourglass_1/lower_3/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_3/res"
top: "hourglass_1/lower_3/restmp"
}
layer {
name: "hourglass_1/lower_3/res/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_3/restmp"
top: "hourglass_1/lower_3/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_3/res/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_3/res/bn"
top: "hourglass_1/lower_3/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_4/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/lower_3/res/bn"
top: "hourglass_1/upper_4/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_4/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_4/skip/res/branch1/conv1_1x1"
top: "hourglass_1/upper_4/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/upper_4/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_4/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_1/upper_4/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_4/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_4/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_4/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_4/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/upper_4/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_4/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_4/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_4/skip/res/branch1/conv2_3x3"
top: "hourglass_1/upper_4/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/upper_4/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_4/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_1/upper_4/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_4/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_4/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_4/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_4/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/upper_4/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_4/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_4/skip/res"
type: "Eltwise"
bottom: "hourglass_1/upper_4/skip/res/branch1/conv3_1x1"
bottom: "hourglass_1/lower_3/res"
top: "hourglass_1/upper_4/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/upper_4/output"
type: "Eltwise"
bottom: "hourglass_1/upper_4/skip/res"
bottom: "hourglass_1/upper_4/interp"
top: "hourglass_1/upper_4/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/upper_4/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_4/output"
top: "hourglass_1/upper_4/outputtmp"
}
layer {
name: "hourglass_1/upper_4/output/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_4/outputtmp"
top: "hourglass_1/upper_4/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_4/output/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_4/output/bn"
top: "hourglass_1/upper_4/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_3/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/upper_4/output/bn"
top: "hourglass_1/upper_3/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_3/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_3/res/branch1/conv1_1x1"
top: "hourglass_1/upper_3/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/upper_3/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_3/res/branch1/conv1_1x1tmp"
top: "hourglass_1/upper_3/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_3/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_3/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_3/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_3/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/upper_3/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_3/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_3/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_3/res/branch1/conv2_3x3"
top: "hourglass_1/upper_3/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/upper_3/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_3/res/branch1/conv2_3x3tmp"
top: "hourglass_1/upper_3/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_3/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_3/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_3/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_3/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/upper_3/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_3/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_3/res"
type: "Eltwise"
bottom: "hourglass_1/upper_3/res/branch1/conv3_1x1"
bottom: "hourglass_1/upper_4/output"
top: "hourglass_1/upper_3/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/upper_3/interp"
type: "Interp"
bottom: "hourglass_1/upper_3/res"
bottom: "hourglass_1/lower_2/res"
top: "hourglass_1/upper_3/interp"
}
layer {
name: "hourglass_1/lower_2/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_2/res"
top: "hourglass_1/lower_2/restmp"
}
layer {
name: "hourglass_1/lower_2/res/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_2/restmp"
top: "hourglass_1/lower_2/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_2/res/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_2/res/bn"
top: "hourglass_1/lower_2/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_3/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/lower_2/res/bn"
top: "hourglass_1/upper_3/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_3/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_3/skip/res/branch1/conv1_1x1"
top: "hourglass_1/upper_3/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/upper_3/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_3/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_1/upper_3/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_3/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_3/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_3/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_3/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/upper_3/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_3/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_3/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_3/skip/res/branch1/conv2_3x3"
top: "hourglass_1/upper_3/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/upper_3/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_3/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_1/upper_3/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_3/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_3/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_3/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_3/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/upper_3/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_3/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_3/skip/res"
type: "Eltwise"
bottom: "hourglass_1/upper_3/skip/res/branch1/conv3_1x1"
bottom: "hourglass_1/lower_2/res"
top: "hourglass_1/upper_3/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/upper_3/output"
type: "Eltwise"
bottom: "hourglass_1/upper_3/skip/res"
bottom: "hourglass_1/upper_3/interp"
top: "hourglass_1/upper_3/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/upper_3/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_3/output"
top: "hourglass_1/upper_3/outputtmp"
}
layer {
name: "hourglass_1/upper_3/output/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_3/outputtmp"
top: "hourglass_1/upper_3/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_3/output/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_3/output/bn"
top: "hourglass_1/upper_3/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_2/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/upper_3/output/bn"
top: "hourglass_1/upper_2/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_2/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_2/res/branch1/conv1_1x1"
top: "hourglass_1/upper_2/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/upper_2/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_2/res/branch1/conv1_1x1tmp"
top: "hourglass_1/upper_2/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_2/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_2/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_2/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_2/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/upper_2/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_2/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_2/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_2/res/branch1/conv2_3x3"
top: "hourglass_1/upper_2/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/upper_2/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_2/res/branch1/conv2_3x3tmp"
top: "hourglass_1/upper_2/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_2/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_2/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_2/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_2/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/upper_2/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_2/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_2/res"
type: "Eltwise"
bottom: "hourglass_1/upper_2/res/branch1/conv3_1x1"
bottom: "hourglass_1/upper_3/output"
top: "hourglass_1/upper_2/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/upper_2/interp"
type: "Interp"
bottom: "hourglass_1/upper_2/res"
bottom: "hourglass_1/lower_1/res"
top: "hourglass_1/upper_2/interp"
}
layer {
name: "hourglass_1/lower_1/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/lower_1/res"
top: "hourglass_1/lower_1/restmp"
}
layer {
name: "hourglass_1/lower_1/res/bn_scale"
type: "Scale"
bottom: "hourglass_1/lower_1/restmp"
top: "hourglass_1/lower_1/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/lower_1/res/bn/relu"
type: "PReLU"
bottom: "hourglass_1/lower_1/res/bn"
top: "hourglass_1/lower_1/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_2/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/lower_1/res/bn"
top: "hourglass_1/upper_2/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_2/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_2/skip/res/branch1/conv1_1x1"
top: "hourglass_1/upper_2/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/upper_2/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_2/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_1/upper_2/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_2/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_2/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_2/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_2/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/upper_2/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_2/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_2/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_2/skip/res/branch1/conv2_3x3"
top: "hourglass_1/upper_2/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/upper_2/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_2/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_1/upper_2/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_2/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_2/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_2/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_2/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/upper_2/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_2/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_2/skip/res"
type: "Eltwise"
bottom: "hourglass_1/upper_2/skip/res/branch1/conv3_1x1"
bottom: "hourglass_1/lower_1/res"
top: "hourglass_1/upper_2/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/upper_2/output"
type: "Eltwise"
bottom: "hourglass_1/upper_2/skip/res"
bottom: "hourglass_1/upper_2/interp"
top: "hourglass_1/upper_2/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/upper_2/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_2/output"
top: "hourglass_1/upper_2/outputtmp"
}
layer {
name: "hourglass_1/upper_2/output/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_2/outputtmp"
top: "hourglass_1/upper_2/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_2/output/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_2/output/bn"
top: "hourglass_1/upper_2/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_1/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/upper_2/output/bn"
top: "hourglass_1/upper_1/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_1/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_1/res/branch1/conv1_1x1"
top: "hourglass_1/upper_1/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/upper_1/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_1/res/branch1/conv1_1x1tmp"
top: "hourglass_1/upper_1/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_1/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_1/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_1/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_1/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/upper_1/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_1/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_1/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_1/res/branch1/conv2_3x3"
top: "hourglass_1/upper_1/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/upper_1/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_1/res/branch1/conv2_3x3tmp"
top: "hourglass_1/upper_1/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_1/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_1/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_1/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_1/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/upper_1/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_1/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_1/res"
type: "Eltwise"
bottom: "hourglass_1/upper_1/res/branch1/conv3_1x1"
bottom: "hourglass_1/upper_2/output"
top: "hourglass_1/upper_1/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/upper_1/interp"
type: "Interp"
bottom: "hourglass_1/upper_1/res"
bottom: "hourglass_0/output"
top: "hourglass_1/upper_1/interp"
}
layer {
name: "hourglass_0/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_0/output"
top: "hourglass_0/outputtmp"
}
layer {
name: "hourglass_0/output/bn_scale"
type: "Scale"
bottom: "hourglass_0/outputtmp"
top: "hourglass_0/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_0/output/bn/relu"
type: "PReLU"
bottom: "hourglass_0/output/bn"
top: "hourglass_0/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_1/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_0/output/bn"
top: "hourglass_1/upper_1/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_1/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_1/skip/res/branch1/conv1_1x1"
top: "hourglass_1/upper_1/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/upper_1/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_1/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_1/upper_1/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_1/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_1/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_1/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_1/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/upper_1/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_1/upper_1/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_1/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/upper_1/skip/res/branch1/conv2_3x3"
top: "hourglass_1/upper_1/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/upper_1/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/upper_1/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_1/upper_1/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/upper_1/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/upper_1/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_1/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/upper_1/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/upper_1/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_1/upper_1/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/upper_1/skip/res"
type: "Eltwise"
bottom: "hourglass_1/upper_1/skip/res/branch1/conv3_1x1"
bottom: "hourglass_0/output"
top: "hourglass_1/upper_1/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1"
type: "Eltwise"
bottom: "hourglass_1/upper_1/skip/res"
bottom: "hourglass_1/upper_1/interp"
top: "hourglass_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1"
top: "hourglass_1tmp"
}
layer {
name: "hourglass_1/bn_scale"
type: "Scale"
bottom: "hourglass_1tmp"
top: "hourglass_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/bn"
top: "hourglass_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/post/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/bn"
top: "hourglass_1/post/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/post/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/post/branch1/conv1_1x1"
top: "hourglass_1/post/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_1/post/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_1/post/branch1/conv1_1x1tmp"
top: "hourglass_1/post/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/post/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/post/branch1/conv1_1x1/bn"
top: "hourglass_1/post/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/post/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_1/post/branch1/conv1_1x1/bn"
top: "hourglass_1/post/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/post/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/post/branch1/conv2_3x3"
top: "hourglass_1/post/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_1/post/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_1/post/branch1/conv2_3x3tmp"
top: "hourglass_1/post/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/post/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_1/post/branch1/conv2_3x3/bn"
top: "hourglass_1/post/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/post/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_1/post/branch1/conv2_3x3/bn"
top: "hourglass_1/post/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/post"
type: "Eltwise"
bottom: "hourglass_1/post/branch1/conv3_1x1"
bottom: "hourglass_1"
top: "hourglass_1/post"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/post/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/post"
top: "hourglass_1/posttmp"
}
layer {
name: "hourglass_1/post/bn_scale"
type: "Scale"
bottom: "hourglass_1/posttmp"
top: "hourglass_1/post/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/post/bn/relu"
type: "PReLU"
bottom: "hourglass_1/post/bn"
top: "hourglass_1/post/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/post/linear_1"
type: "Convolution"
bottom: "hourglass_1/post/bn"
top: "hourglass_1/post/linear_1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/post/linear_1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/post/linear_1"
top: "hourglass_1/post/linear_1tmp"
}
layer {
name: "hourglass_1/post/linear_1/bn_scale"
type: "Scale"
bottom: "hourglass_1/post/linear_1tmp"
top: "hourglass_1/post/linear_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/post/linear_1/bn/relu"
type: "PReLU"
bottom: "hourglass_1/post/linear_1/bn"
top: "hourglass_1/post/linear_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_1/pred_heatmap"
type: "Convolution"
bottom: "hourglass_1/post/linear_1/bn"
top: "hourglass_1/pred_heatmap"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 13
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/linear_2"
type: "Convolution"
bottom: "hourglass_1/post/linear_1/bn"
top: "hourglass_1/linear_2"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/pred_heatmap/linear_3"
type: "Convolution"
bottom: "hourglass_1/pred_heatmap"
top: "hourglass_1/pred_heatmap/linear_3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_1/sum_tmp"
type: "Eltwise"
bottom: "hourglass_0/output"
bottom: "hourglass_1/linear_2"
top: "hourglass_1/sum_tmp"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_1/output"
type: "Eltwise"
bottom: "hourglass_1/sum_tmp"
bottom: "hourglass_1/pred_heatmap/linear_3"
top: "hourglass_1/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/pool1_2x2_s2"
type: "Pooling"
bottom: "hourglass_1/output"
top: "hourglass_2/pool1_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_2/pool1_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/pool1_2x2_s2"
top: "hourglass_2/pool1_2x2_s2tmp"
}
layer {
name: "hourglass_2/pool1_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_2/pool1_2x2_s2tmp"
top: "hourglass_2/pool1_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/pool1_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_2/pool1_2x2_s2/bn"
top: "hourglass_2/pool1_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_1/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/pool1_2x2_s2/bn"
top: "hourglass_2/lower_1/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_1/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_1/res/branch1/conv1_1x1"
top: "hourglass_2/lower_1/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/lower_1/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_1/res/branch1/conv1_1x1tmp"
top: "hourglass_2/lower_1/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_1/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_1/res/branch1/conv1_1x1/bn"
top: "hourglass_2/lower_1/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_1/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/lower_1/res/branch1/conv1_1x1/bn"
top: "hourglass_2/lower_1/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_1/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_1/res/branch1/conv2_3x3"
top: "hourglass_2/lower_1/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/lower_1/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_1/res/branch1/conv2_3x3tmp"
top: "hourglass_2/lower_1/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_1/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_1/res/branch1/conv2_3x3/bn"
top: "hourglass_2/lower_1/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_1/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/lower_1/res/branch1/conv2_3x3/bn"
top: "hourglass_2/lower_1/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_1/res"
type: "Eltwise"
bottom: "hourglass_2/lower_1/res/branch1/conv3_1x1"
bottom: "hourglass_2/pool1_2x2_s2"
top: "hourglass_2/lower_1/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/pool2_2x2_s2"
type: "Pooling"
bottom: "hourglass_2/lower_1/res"
top: "hourglass_2/pool2_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_2/pool2_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/pool2_2x2_s2"
top: "hourglass_2/pool2_2x2_s2tmp"
}
layer {
name: "hourglass_2/pool2_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_2/pool2_2x2_s2tmp"
top: "hourglass_2/pool2_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/pool2_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_2/pool2_2x2_s2/bn"
top: "hourglass_2/pool2_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_2/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/pool2_2x2_s2/bn"
top: "hourglass_2/lower_2/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_2/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_2/res/branch1/conv1_1x1"
top: "hourglass_2/lower_2/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/lower_2/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_2/res/branch1/conv1_1x1tmp"
top: "hourglass_2/lower_2/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_2/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_2/res/branch1/conv1_1x1/bn"
top: "hourglass_2/lower_2/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_2/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/lower_2/res/branch1/conv1_1x1/bn"
top: "hourglass_2/lower_2/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_2/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_2/res/branch1/conv2_3x3"
top: "hourglass_2/lower_2/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/lower_2/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_2/res/branch1/conv2_3x3tmp"
top: "hourglass_2/lower_2/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_2/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_2/res/branch1/conv2_3x3/bn"
top: "hourglass_2/lower_2/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_2/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/lower_2/res/branch1/conv2_3x3/bn"
top: "hourglass_2/lower_2/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_2/res"
type: "Eltwise"
bottom: "hourglass_2/lower_2/res/branch1/conv3_1x1"
bottom: "hourglass_2/pool2_2x2_s2"
top: "hourglass_2/lower_2/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/pool3_2x2_s2"
type: "Pooling"
bottom: "hourglass_2/lower_2/res"
top: "hourglass_2/pool3_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_2/pool3_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/pool3_2x2_s2"
top: "hourglass_2/pool3_2x2_s2tmp"
}
layer {
name: "hourglass_2/pool3_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_2/pool3_2x2_s2tmp"
top: "hourglass_2/pool3_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/pool3_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_2/pool3_2x2_s2/bn"
top: "hourglass_2/pool3_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_3/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/pool3_2x2_s2/bn"
top: "hourglass_2/lower_3/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_3/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_3/res/branch1/conv1_1x1"
top: "hourglass_2/lower_3/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/lower_3/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_3/res/branch1/conv1_1x1tmp"
top: "hourglass_2/lower_3/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_3/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_3/res/branch1/conv1_1x1/bn"
top: "hourglass_2/lower_3/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_3/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/lower_3/res/branch1/conv1_1x1/bn"
top: "hourglass_2/lower_3/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_3/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_3/res/branch1/conv2_3x3"
top: "hourglass_2/lower_3/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/lower_3/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_3/res/branch1/conv2_3x3tmp"
top: "hourglass_2/lower_3/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_3/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_3/res/branch1/conv2_3x3/bn"
top: "hourglass_2/lower_3/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_3/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/lower_3/res/branch1/conv2_3x3/bn"
top: "hourglass_2/lower_3/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_3/res"
type: "Eltwise"
bottom: "hourglass_2/lower_3/res/branch1/conv3_1x1"
bottom: "hourglass_2/pool3_2x2_s2"
top: "hourglass_2/lower_3/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/pool4_2x2_s2"
type: "Pooling"
bottom: "hourglass_2/lower_3/res"
top: "hourglass_2/pool4_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_2/pool4_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/pool4_2x2_s2"
top: "hourglass_2/pool4_2x2_s2tmp"
}
layer {
name: "hourglass_2/pool4_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_2/pool4_2x2_s2tmp"
top: "hourglass_2/pool4_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/pool4_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_2/pool4_2x2_s2/bn"
top: "hourglass_2/pool4_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_4_1/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/pool4_2x2_s2/bn"
top: "hourglass_2/lower_4_1/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_4_1/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_4_1/res/branch1/conv1_1x1"
top: "hourglass_2/lower_4_1/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/lower_4_1/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_4_1/res/branch1/conv1_1x1tmp"
top: "hourglass_2/lower_4_1/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_4_1/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_4_1/res/branch1/conv1_1x1/bn"
top: "hourglass_2/lower_4_1/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_4_1/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/lower_4_1/res/branch1/conv1_1x1/bn"
top: "hourglass_2/lower_4_1/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_4_1/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_4_1/res/branch1/conv2_3x3"
top: "hourglass_2/lower_4_1/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/lower_4_1/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_4_1/res/branch1/conv2_3x3tmp"
top: "hourglass_2/lower_4_1/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_4_1/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_4_1/res/branch1/conv2_3x3/bn"
top: "hourglass_2/lower_4_1/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_4_1/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/lower_4_1/res/branch1/conv2_3x3/bn"
top: "hourglass_2/lower_4_1/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_4_1/res"
type: "Eltwise"
bottom: "hourglass_2/lower_4_1/res/branch1/conv3_1x1"
bottom: "hourglass_2/pool4_2x2_s2"
top: "hourglass_2/lower_4_1/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/lower_4_1/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_4_1/res"
top: "hourglass_2/lower_4_1/restmp"
}
layer {
name: "hourglass_2/lower_4_1/res/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_4_1/restmp"
top: "hourglass_2/lower_4_1/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_4_1/res/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_4_1/res/bn"
top: "hourglass_2/lower_4_1/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_4_2/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/lower_4_1/res/bn"
top: "hourglass_2/lower_4_2/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_4_2/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_4_2/res/branch1/conv1_1x1"
top: "hourglass_2/lower_4_2/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/lower_4_2/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_4_2/res/branch1/conv1_1x1tmp"
top: "hourglass_2/lower_4_2/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_4_2/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_4_2/res/branch1/conv1_1x1/bn"
top: "hourglass_2/lower_4_2/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_4_2/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/lower_4_2/res/branch1/conv1_1x1/bn"
top: "hourglass_2/lower_4_2/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_4_2/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_4_2/res/branch1/conv2_3x3"
top: "hourglass_2/lower_4_2/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/lower_4_2/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_4_2/res/branch1/conv2_3x3tmp"
top: "hourglass_2/lower_4_2/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_4_2/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_4_2/res/branch1/conv2_3x3/bn"
top: "hourglass_2/lower_4_2/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_4_2/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/lower_4_2/res/branch1/conv2_3x3/bn"
top: "hourglass_2/lower_4_2/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_4_2/res"
type: "Eltwise"
bottom: "hourglass_2/lower_4_2/res/branch1/conv3_1x1"
bottom: "hourglass_2/lower_4_1/res"
top: "hourglass_2/lower_4_2/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/lower_4_2/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_4_2/res"
top: "hourglass_2/lower_4_2/restmp"
}
layer {
name: "hourglass_2/lower_4_2/res/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_4_2/restmp"
top: "hourglass_2/lower_4_2/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_4_2/res/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_4_2/res/bn"
top: "hourglass_2/lower_4_2/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_4_3/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/lower_4_2/res/bn"
top: "hourglass_2/lower_4_3/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_4_3/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_4_3/res/branch1/conv1_1x1"
top: "hourglass_2/lower_4_3/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/lower_4_3/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_4_3/res/branch1/conv1_1x1tmp"
top: "hourglass_2/lower_4_3/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_4_3/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_4_3/res/branch1/conv1_1x1/bn"
top: "hourglass_2/lower_4_3/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_4_3/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/lower_4_3/res/branch1/conv1_1x1/bn"
top: "hourglass_2/lower_4_3/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_4_3/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_4_3/res/branch1/conv2_3x3"
top: "hourglass_2/lower_4_3/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/lower_4_3/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_4_3/res/branch1/conv2_3x3tmp"
top: "hourglass_2/lower_4_3/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_4_3/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_4_3/res/branch1/conv2_3x3/bn"
top: "hourglass_2/lower_4_3/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/lower_4_3/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/lower_4_3/res/branch1/conv2_3x3/bn"
top: "hourglass_2/lower_4_3/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/lower_4_3/res"
type: "Eltwise"
bottom: "hourglass_2/lower_4_3/res/branch1/conv3_1x1"
bottom: "hourglass_2/lower_4_2/res"
top: "hourglass_2/lower_4_3/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/upper_4/interp"
type: "Interp"
bottom: "hourglass_2/lower_4_3/res"
bottom: "hourglass_2/lower_3/res"
top: "hourglass_2/upper_4/interp"
}
layer {
name: "hourglass_2/lower_3/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_3/res"
top: "hourglass_2/lower_3/restmp"
}
layer {
name: "hourglass_2/lower_3/res/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_3/restmp"
top: "hourglass_2/lower_3/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_3/res/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_3/res/bn"
top: "hourglass_2/lower_3/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_4/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/lower_3/res/bn"
top: "hourglass_2/upper_4/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_4/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_4/skip/res/branch1/conv1_1x1"
top: "hourglass_2/upper_4/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/upper_4/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_4/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_2/upper_4/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_4/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_4/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_4/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_4/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/upper_4/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_4/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_4/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_4/skip/res/branch1/conv2_3x3"
top: "hourglass_2/upper_4/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/upper_4/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_4/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_2/upper_4/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_4/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_4/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_4/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_4/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/upper_4/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_4/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_4/skip/res"
type: "Eltwise"
bottom: "hourglass_2/upper_4/skip/res/branch1/conv3_1x1"
bottom: "hourglass_2/lower_3/res"
top: "hourglass_2/upper_4/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/upper_4/output"
type: "Eltwise"
bottom: "hourglass_2/upper_4/skip/res"
bottom: "hourglass_2/upper_4/interp"
top: "hourglass_2/upper_4/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/upper_4/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_4/output"
top: "hourglass_2/upper_4/outputtmp"
}
layer {
name: "hourglass_2/upper_4/output/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_4/outputtmp"
top: "hourglass_2/upper_4/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_4/output/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_4/output/bn"
top: "hourglass_2/upper_4/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_3/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/upper_4/output/bn"
top: "hourglass_2/upper_3/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_3/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_3/res/branch1/conv1_1x1"
top: "hourglass_2/upper_3/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/upper_3/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_3/res/branch1/conv1_1x1tmp"
top: "hourglass_2/upper_3/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_3/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_3/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_3/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_3/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/upper_3/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_3/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_3/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_3/res/branch1/conv2_3x3"
top: "hourglass_2/upper_3/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/upper_3/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_3/res/branch1/conv2_3x3tmp"
top: "hourglass_2/upper_3/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_3/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_3/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_3/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_3/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/upper_3/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_3/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_3/res"
type: "Eltwise"
bottom: "hourglass_2/upper_3/res/branch1/conv3_1x1"
bottom: "hourglass_2/upper_4/output"
top: "hourglass_2/upper_3/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/upper_3/interp"
type: "Interp"
bottom: "hourglass_2/upper_3/res"
bottom: "hourglass_2/lower_2/res"
top: "hourglass_2/upper_3/interp"
}
layer {
name: "hourglass_2/lower_2/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_2/res"
top: "hourglass_2/lower_2/restmp"
}
layer {
name: "hourglass_2/lower_2/res/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_2/restmp"
top: "hourglass_2/lower_2/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_2/res/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_2/res/bn"
top: "hourglass_2/lower_2/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_3/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/lower_2/res/bn"
top: "hourglass_2/upper_3/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_3/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_3/skip/res/branch1/conv1_1x1"
top: "hourglass_2/upper_3/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/upper_3/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_3/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_2/upper_3/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_3/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_3/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_3/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_3/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/upper_3/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_3/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_3/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_3/skip/res/branch1/conv2_3x3"
top: "hourglass_2/upper_3/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/upper_3/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_3/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_2/upper_3/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_3/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_3/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_3/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_3/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/upper_3/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_3/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_3/skip/res"
type: "Eltwise"
bottom: "hourglass_2/upper_3/skip/res/branch1/conv3_1x1"
bottom: "hourglass_2/lower_2/res"
top: "hourglass_2/upper_3/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/upper_3/output"
type: "Eltwise"
bottom: "hourglass_2/upper_3/skip/res"
bottom: "hourglass_2/upper_3/interp"
top: "hourglass_2/upper_3/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/upper_3/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_3/output"
top: "hourglass_2/upper_3/outputtmp"
}
layer {
name: "hourglass_2/upper_3/output/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_3/outputtmp"
top: "hourglass_2/upper_3/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_3/output/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_3/output/bn"
top: "hourglass_2/upper_3/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_2/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/upper_3/output/bn"
top: "hourglass_2/upper_2/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_2/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_2/res/branch1/conv1_1x1"
top: "hourglass_2/upper_2/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/upper_2/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_2/res/branch1/conv1_1x1tmp"
top: "hourglass_2/upper_2/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_2/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_2/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_2/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_2/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/upper_2/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_2/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_2/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_2/res/branch1/conv2_3x3"
top: "hourglass_2/upper_2/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/upper_2/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_2/res/branch1/conv2_3x3tmp"
top: "hourglass_2/upper_2/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_2/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_2/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_2/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_2/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/upper_2/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_2/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_2/res"
type: "Eltwise"
bottom: "hourglass_2/upper_2/res/branch1/conv3_1x1"
bottom: "hourglass_2/upper_3/output"
top: "hourglass_2/upper_2/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/upper_2/interp"
type: "Interp"
bottom: "hourglass_2/upper_2/res"
bottom: "hourglass_2/lower_1/res"
top: "hourglass_2/upper_2/interp"
}
layer {
name: "hourglass_2/lower_1/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/lower_1/res"
top: "hourglass_2/lower_1/restmp"
}
layer {
name: "hourglass_2/lower_1/res/bn_scale"
type: "Scale"
bottom: "hourglass_2/lower_1/restmp"
top: "hourglass_2/lower_1/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/lower_1/res/bn/relu"
type: "PReLU"
bottom: "hourglass_2/lower_1/res/bn"
top: "hourglass_2/lower_1/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_2/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/lower_1/res/bn"
top: "hourglass_2/upper_2/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_2/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_2/skip/res/branch1/conv1_1x1"
top: "hourglass_2/upper_2/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/upper_2/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_2/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_2/upper_2/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_2/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_2/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_2/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_2/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/upper_2/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_2/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_2/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_2/skip/res/branch1/conv2_3x3"
top: "hourglass_2/upper_2/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/upper_2/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_2/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_2/upper_2/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_2/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_2/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_2/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_2/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/upper_2/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_2/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_2/skip/res"
type: "Eltwise"
bottom: "hourglass_2/upper_2/skip/res/branch1/conv3_1x1"
bottom: "hourglass_2/lower_1/res"
top: "hourglass_2/upper_2/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/upper_2/output"
type: "Eltwise"
bottom: "hourglass_2/upper_2/skip/res"
bottom: "hourglass_2/upper_2/interp"
top: "hourglass_2/upper_2/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/upper_2/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_2/output"
top: "hourglass_2/upper_2/outputtmp"
}
layer {
name: "hourglass_2/upper_2/output/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_2/outputtmp"
top: "hourglass_2/upper_2/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_2/output/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_2/output/bn"
top: "hourglass_2/upper_2/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_1/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/upper_2/output/bn"
top: "hourglass_2/upper_1/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_1/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_1/res/branch1/conv1_1x1"
top: "hourglass_2/upper_1/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/upper_1/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_1/res/branch1/conv1_1x1tmp"
top: "hourglass_2/upper_1/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_1/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_1/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_1/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_1/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/upper_1/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_1/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_1/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_1/res/branch1/conv2_3x3"
top: "hourglass_2/upper_1/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/upper_1/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_1/res/branch1/conv2_3x3tmp"
top: "hourglass_2/upper_1/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_1/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_1/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_1/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_1/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/upper_1/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_1/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_1/res"
type: "Eltwise"
bottom: "hourglass_2/upper_1/res/branch1/conv3_1x1"
bottom: "hourglass_2/upper_2/output"
top: "hourglass_2/upper_1/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/upper_1/interp"
type: "Interp"
bottom: "hourglass_2/upper_1/res"
bottom: "hourglass_1/output"
top: "hourglass_2/upper_1/interp"
}
layer {
name: "hourglass_1/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_1/output"
top: "hourglass_1/outputtmp"
}
layer {
name: "hourglass_1/output/bn_scale"
type: "Scale"
bottom: "hourglass_1/outputtmp"
top: "hourglass_1/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_1/output/bn/relu"
type: "PReLU"
bottom: "hourglass_1/output/bn"
top: "hourglass_1/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_1/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_1/output/bn"
top: "hourglass_2/upper_1/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_1/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_1/skip/res/branch1/conv1_1x1"
top: "hourglass_2/upper_1/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/upper_1/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_1/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_2/upper_1/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_1/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_1/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_1/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_1/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/upper_1/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_2/upper_1/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_1/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/upper_1/skip/res/branch1/conv2_3x3"
top: "hourglass_2/upper_1/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/upper_1/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/upper_1/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_2/upper_1/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/upper_1/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/upper_1/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_1/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/upper_1/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/upper_1/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_2/upper_1/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/upper_1/skip/res"
type: "Eltwise"
bottom: "hourglass_2/upper_1/skip/res/branch1/conv3_1x1"
bottom: "hourglass_1/output"
top: "hourglass_2/upper_1/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2"
type: "Eltwise"
bottom: "hourglass_2/upper_1/skip/res"
bottom: "hourglass_2/upper_1/interp"
top: "hourglass_2"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2"
top: "hourglass_2tmp"
}
layer {
name: "hourglass_2/bn_scale"
type: "Scale"
bottom: "hourglass_2tmp"
top: "hourglass_2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/bn/relu"
type: "PReLU"
bottom: "hourglass_2/bn"
top: "hourglass_2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/post/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/bn"
top: "hourglass_2/post/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/post/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/post/branch1/conv1_1x1"
top: "hourglass_2/post/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_2/post/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_2/post/branch1/conv1_1x1tmp"
top: "hourglass_2/post/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/post/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/post/branch1/conv1_1x1/bn"
top: "hourglass_2/post/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/post/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_2/post/branch1/conv1_1x1/bn"
top: "hourglass_2/post/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/post/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/post/branch1/conv2_3x3"
top: "hourglass_2/post/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_2/post/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_2/post/branch1/conv2_3x3tmp"
top: "hourglass_2/post/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/post/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_2/post/branch1/conv2_3x3/bn"
top: "hourglass_2/post/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/post/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_2/post/branch1/conv2_3x3/bn"
top: "hourglass_2/post/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/post"
type: "Eltwise"
bottom: "hourglass_2/post/branch1/conv3_1x1"
bottom: "hourglass_2"
top: "hourglass_2/post"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/post/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/post"
top: "hourglass_2/posttmp"
}
layer {
name: "hourglass_2/post/bn_scale"
type: "Scale"
bottom: "hourglass_2/posttmp"
top: "hourglass_2/post/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/post/bn/relu"
type: "PReLU"
bottom: "hourglass_2/post/bn"
top: "hourglass_2/post/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/post/linear_1"
type: "Convolution"
bottom: "hourglass_2/post/bn"
top: "hourglass_2/post/linear_1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/post/linear_1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/post/linear_1"
top: "hourglass_2/post/linear_1tmp"
}
layer {
name: "hourglass_2/post/linear_1/bn_scale"
type: "Scale"
bottom: "hourglass_2/post/linear_1tmp"
top: "hourglass_2/post/linear_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/post/linear_1/bn/relu"
type: "PReLU"
bottom: "hourglass_2/post/linear_1/bn"
top: "hourglass_2/post/linear_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_2/pred_heatmap"
type: "Convolution"
bottom: "hourglass_2/post/linear_1/bn"
top: "hourglass_2/pred_heatmap"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 13
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/linear_2"
type: "Convolution"
bottom: "hourglass_2/post/linear_1/bn"
top: "hourglass_2/linear_2"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/pred_heatmap/linear_3"
type: "Convolution"
bottom: "hourglass_2/pred_heatmap"
top: "hourglass_2/pred_heatmap/linear_3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_2/sum_tmp"
type: "Eltwise"
bottom: "hourglass_1/output"
bottom: "hourglass_2/linear_2"
top: "hourglass_2/sum_tmp"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_2/output"
type: "Eltwise"
bottom: "hourglass_2/sum_tmp"
bottom: "hourglass_2/pred_heatmap/linear_3"
top: "hourglass_2/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/pool1_2x2_s2"
type: "Pooling"
bottom: "hourglass_2/output"
top: "hourglass_3/pool1_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_3/pool1_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/pool1_2x2_s2"
top: "hourglass_3/pool1_2x2_s2tmp"
}
layer {
name: "hourglass_3/pool1_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_3/pool1_2x2_s2tmp"
top: "hourglass_3/pool1_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/pool1_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_3/pool1_2x2_s2/bn"
top: "hourglass_3/pool1_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_1/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/pool1_2x2_s2/bn"
top: "hourglass_3/lower_1/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_1/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_1/res/branch1/conv1_1x1"
top: "hourglass_3/lower_1/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/lower_1/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_1/res/branch1/conv1_1x1tmp"
top: "hourglass_3/lower_1/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_1/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_1/res/branch1/conv1_1x1/bn"
top: "hourglass_3/lower_1/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_1/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/lower_1/res/branch1/conv1_1x1/bn"
top: "hourglass_3/lower_1/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_1/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_1/res/branch1/conv2_3x3"
top: "hourglass_3/lower_1/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/lower_1/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_1/res/branch1/conv2_3x3tmp"
top: "hourglass_3/lower_1/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_1/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_1/res/branch1/conv2_3x3/bn"
top: "hourglass_3/lower_1/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_1/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/lower_1/res/branch1/conv2_3x3/bn"
top: "hourglass_3/lower_1/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_1/res"
type: "Eltwise"
bottom: "hourglass_3/lower_1/res/branch1/conv3_1x1"
bottom: "hourglass_3/pool1_2x2_s2"
top: "hourglass_3/lower_1/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/pool2_2x2_s2"
type: "Pooling"
bottom: "hourglass_3/lower_1/res"
top: "hourglass_3/pool2_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_3/pool2_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/pool2_2x2_s2"
top: "hourglass_3/pool2_2x2_s2tmp"
}
layer {
name: "hourglass_3/pool2_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_3/pool2_2x2_s2tmp"
top: "hourglass_3/pool2_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/pool2_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_3/pool2_2x2_s2/bn"
top: "hourglass_3/pool2_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_2/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/pool2_2x2_s2/bn"
top: "hourglass_3/lower_2/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_2/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_2/res/branch1/conv1_1x1"
top: "hourglass_3/lower_2/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/lower_2/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_2/res/branch1/conv1_1x1tmp"
top: "hourglass_3/lower_2/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_2/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_2/res/branch1/conv1_1x1/bn"
top: "hourglass_3/lower_2/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_2/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/lower_2/res/branch1/conv1_1x1/bn"
top: "hourglass_3/lower_2/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_2/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_2/res/branch1/conv2_3x3"
top: "hourglass_3/lower_2/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/lower_2/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_2/res/branch1/conv2_3x3tmp"
top: "hourglass_3/lower_2/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_2/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_2/res/branch1/conv2_3x3/bn"
top: "hourglass_3/lower_2/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_2/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/lower_2/res/branch1/conv2_3x3/bn"
top: "hourglass_3/lower_2/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_2/res"
type: "Eltwise"
bottom: "hourglass_3/lower_2/res/branch1/conv3_1x1"
bottom: "hourglass_3/pool2_2x2_s2"
top: "hourglass_3/lower_2/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/pool3_2x2_s2"
type: "Pooling"
bottom: "hourglass_3/lower_2/res"
top: "hourglass_3/pool3_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_3/pool3_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/pool3_2x2_s2"
top: "hourglass_3/pool3_2x2_s2tmp"
}
layer {
name: "hourglass_3/pool3_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_3/pool3_2x2_s2tmp"
top: "hourglass_3/pool3_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/pool3_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_3/pool3_2x2_s2/bn"
top: "hourglass_3/pool3_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_3/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/pool3_2x2_s2/bn"
top: "hourglass_3/lower_3/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_3/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_3/res/branch1/conv1_1x1"
top: "hourglass_3/lower_3/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/lower_3/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_3/res/branch1/conv1_1x1tmp"
top: "hourglass_3/lower_3/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_3/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_3/res/branch1/conv1_1x1/bn"
top: "hourglass_3/lower_3/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_3/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/lower_3/res/branch1/conv1_1x1/bn"
top: "hourglass_3/lower_3/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_3/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_3/res/branch1/conv2_3x3"
top: "hourglass_3/lower_3/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/lower_3/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_3/res/branch1/conv2_3x3tmp"
top: "hourglass_3/lower_3/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_3/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_3/res/branch1/conv2_3x3/bn"
top: "hourglass_3/lower_3/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_3/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/lower_3/res/branch1/conv2_3x3/bn"
top: "hourglass_3/lower_3/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_3/res"
type: "Eltwise"
bottom: "hourglass_3/lower_3/res/branch1/conv3_1x1"
bottom: "hourglass_3/pool3_2x2_s2"
top: "hourglass_3/lower_3/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/pool4_2x2_s2"
type: "Pooling"
bottom: "hourglass_3/lower_3/res"
top: "hourglass_3/pool4_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_3/pool4_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/pool4_2x2_s2"
top: "hourglass_3/pool4_2x2_s2tmp"
}
layer {
name: "hourglass_3/pool4_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_3/pool4_2x2_s2tmp"
top: "hourglass_3/pool4_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/pool4_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_3/pool4_2x2_s2/bn"
top: "hourglass_3/pool4_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_4_1/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/pool4_2x2_s2/bn"
top: "hourglass_3/lower_4_1/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_4_1/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_4_1/res/branch1/conv1_1x1"
top: "hourglass_3/lower_4_1/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/lower_4_1/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_4_1/res/branch1/conv1_1x1tmp"
top: "hourglass_3/lower_4_1/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_4_1/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_4_1/res/branch1/conv1_1x1/bn"
top: "hourglass_3/lower_4_1/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_4_1/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/lower_4_1/res/branch1/conv1_1x1/bn"
top: "hourglass_3/lower_4_1/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_4_1/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_4_1/res/branch1/conv2_3x3"
top: "hourglass_3/lower_4_1/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/lower_4_1/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_4_1/res/branch1/conv2_3x3tmp"
top: "hourglass_3/lower_4_1/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_4_1/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_4_1/res/branch1/conv2_3x3/bn"
top: "hourglass_3/lower_4_1/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_4_1/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/lower_4_1/res/branch1/conv2_3x3/bn"
top: "hourglass_3/lower_4_1/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_4_1/res"
type: "Eltwise"
bottom: "hourglass_3/lower_4_1/res/branch1/conv3_1x1"
bottom: "hourglass_3/pool4_2x2_s2"
top: "hourglass_3/lower_4_1/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/lower_4_1/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_4_1/res"
top: "hourglass_3/lower_4_1/restmp"
}
layer {
name: "hourglass_3/lower_4_1/res/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_4_1/restmp"
top: "hourglass_3/lower_4_1/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_4_1/res/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_4_1/res/bn"
top: "hourglass_3/lower_4_1/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_4_2/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/lower_4_1/res/bn"
top: "hourglass_3/lower_4_2/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_4_2/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_4_2/res/branch1/conv1_1x1"
top: "hourglass_3/lower_4_2/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/lower_4_2/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_4_2/res/branch1/conv1_1x1tmp"
top: "hourglass_3/lower_4_2/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_4_2/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_4_2/res/branch1/conv1_1x1/bn"
top: "hourglass_3/lower_4_2/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_4_2/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/lower_4_2/res/branch1/conv1_1x1/bn"
top: "hourglass_3/lower_4_2/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_4_2/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_4_2/res/branch1/conv2_3x3"
top: "hourglass_3/lower_4_2/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/lower_4_2/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_4_2/res/branch1/conv2_3x3tmp"
top: "hourglass_3/lower_4_2/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_4_2/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_4_2/res/branch1/conv2_3x3/bn"
top: "hourglass_3/lower_4_2/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_4_2/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/lower_4_2/res/branch1/conv2_3x3/bn"
top: "hourglass_3/lower_4_2/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_4_2/res"
type: "Eltwise"
bottom: "hourglass_3/lower_4_2/res/branch1/conv3_1x1"
bottom: "hourglass_3/lower_4_1/res"
top: "hourglass_3/lower_4_2/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/lower_4_2/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_4_2/res"
top: "hourglass_3/lower_4_2/restmp"
}
layer {
name: "hourglass_3/lower_4_2/res/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_4_2/restmp"
top: "hourglass_3/lower_4_2/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_4_2/res/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_4_2/res/bn"
top: "hourglass_3/lower_4_2/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_4_3/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/lower_4_2/res/bn"
top: "hourglass_3/lower_4_3/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_4_3/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_4_3/res/branch1/conv1_1x1"
top: "hourglass_3/lower_4_3/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/lower_4_3/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_4_3/res/branch1/conv1_1x1tmp"
top: "hourglass_3/lower_4_3/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_4_3/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_4_3/res/branch1/conv1_1x1/bn"
top: "hourglass_3/lower_4_3/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_4_3/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/lower_4_3/res/branch1/conv1_1x1/bn"
top: "hourglass_3/lower_4_3/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_4_3/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_4_3/res/branch1/conv2_3x3"
top: "hourglass_3/lower_4_3/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/lower_4_3/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_4_3/res/branch1/conv2_3x3tmp"
top: "hourglass_3/lower_4_3/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_4_3/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_4_3/res/branch1/conv2_3x3/bn"
top: "hourglass_3/lower_4_3/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/lower_4_3/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/lower_4_3/res/branch1/conv2_3x3/bn"
top: "hourglass_3/lower_4_3/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/lower_4_3/res"
type: "Eltwise"
bottom: "hourglass_3/lower_4_3/res/branch1/conv3_1x1"
bottom: "hourglass_3/lower_4_2/res"
top: "hourglass_3/lower_4_3/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/upper_4/interp"
type: "Interp"
bottom: "hourglass_3/lower_4_3/res"
bottom: "hourglass_3/lower_3/res"
top: "hourglass_3/upper_4/interp"
}
layer {
name: "hourglass_3/lower_3/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_3/res"
top: "hourglass_3/lower_3/restmp"
}
layer {
name: "hourglass_3/lower_3/res/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_3/restmp"
top: "hourglass_3/lower_3/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_3/res/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_3/res/bn"
top: "hourglass_3/lower_3/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_4/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/lower_3/res/bn"
top: "hourglass_3/upper_4/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_4/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_4/skip/res/branch1/conv1_1x1"
top: "hourglass_3/upper_4/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/upper_4/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_4/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_3/upper_4/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_4/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_4/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_4/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_4/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/upper_4/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_4/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_4/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_4/skip/res/branch1/conv2_3x3"
top: "hourglass_3/upper_4/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/upper_4/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_4/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_3/upper_4/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_4/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_4/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_4/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_4/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/upper_4/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_4/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_4/skip/res"
type: "Eltwise"
bottom: "hourglass_3/upper_4/skip/res/branch1/conv3_1x1"
bottom: "hourglass_3/lower_3/res"
top: "hourglass_3/upper_4/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/upper_4/output"
type: "Eltwise"
bottom: "hourglass_3/upper_4/skip/res"
bottom: "hourglass_3/upper_4/interp"
top: "hourglass_3/upper_4/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/upper_4/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_4/output"
top: "hourglass_3/upper_4/outputtmp"
}
layer {
name: "hourglass_3/upper_4/output/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_4/outputtmp"
top: "hourglass_3/upper_4/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_4/output/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_4/output/bn"
top: "hourglass_3/upper_4/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_3/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/upper_4/output/bn"
top: "hourglass_3/upper_3/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_3/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_3/res/branch1/conv1_1x1"
top: "hourglass_3/upper_3/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/upper_3/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_3/res/branch1/conv1_1x1tmp"
top: "hourglass_3/upper_3/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_3/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_3/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_3/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_3/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/upper_3/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_3/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_3/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_3/res/branch1/conv2_3x3"
top: "hourglass_3/upper_3/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/upper_3/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_3/res/branch1/conv2_3x3tmp"
top: "hourglass_3/upper_3/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_3/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_3/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_3/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_3/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/upper_3/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_3/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_3/res"
type: "Eltwise"
bottom: "hourglass_3/upper_3/res/branch1/conv3_1x1"
bottom: "hourglass_3/upper_4/output"
top: "hourglass_3/upper_3/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/upper_3/interp"
type: "Interp"
bottom: "hourglass_3/upper_3/res"
bottom: "hourglass_3/lower_2/res"
top: "hourglass_3/upper_3/interp"
}
layer {
name: "hourglass_3/lower_2/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_2/res"
top: "hourglass_3/lower_2/restmp"
}
layer {
name: "hourglass_3/lower_2/res/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_2/restmp"
top: "hourglass_3/lower_2/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_2/res/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_2/res/bn"
top: "hourglass_3/lower_2/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_3/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/lower_2/res/bn"
top: "hourglass_3/upper_3/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_3/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_3/skip/res/branch1/conv1_1x1"
top: "hourglass_3/upper_3/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/upper_3/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_3/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_3/upper_3/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_3/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_3/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_3/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_3/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/upper_3/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_3/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_3/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_3/skip/res/branch1/conv2_3x3"
top: "hourglass_3/upper_3/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/upper_3/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_3/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_3/upper_3/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_3/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_3/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_3/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_3/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/upper_3/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_3/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_3/skip/res"
type: "Eltwise"
bottom: "hourglass_3/upper_3/skip/res/branch1/conv3_1x1"
bottom: "hourglass_3/lower_2/res"
top: "hourglass_3/upper_3/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/upper_3/output"
type: "Eltwise"
bottom: "hourglass_3/upper_3/skip/res"
bottom: "hourglass_3/upper_3/interp"
top: "hourglass_3/upper_3/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/upper_3/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_3/output"
top: "hourglass_3/upper_3/outputtmp"
}
layer {
name: "hourglass_3/upper_3/output/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_3/outputtmp"
top: "hourglass_3/upper_3/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_3/output/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_3/output/bn"
top: "hourglass_3/upper_3/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_2/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/upper_3/output/bn"
top: "hourglass_3/upper_2/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_2/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_2/res/branch1/conv1_1x1"
top: "hourglass_3/upper_2/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/upper_2/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_2/res/branch1/conv1_1x1tmp"
top: "hourglass_3/upper_2/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_2/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_2/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_2/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_2/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/upper_2/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_2/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_2/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_2/res/branch1/conv2_3x3"
top: "hourglass_3/upper_2/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/upper_2/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_2/res/branch1/conv2_3x3tmp"
top: "hourglass_3/upper_2/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_2/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_2/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_2/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_2/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/upper_2/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_2/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_2/res"
type: "Eltwise"
bottom: "hourglass_3/upper_2/res/branch1/conv3_1x1"
bottom: "hourglass_3/upper_3/output"
top: "hourglass_3/upper_2/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/upper_2/interp"
type: "Interp"
bottom: "hourglass_3/upper_2/res"
bottom: "hourglass_3/lower_1/res"
top: "hourglass_3/upper_2/interp"
}
layer {
name: "hourglass_3/lower_1/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/lower_1/res"
top: "hourglass_3/lower_1/restmp"
}
layer {
name: "hourglass_3/lower_1/res/bn_scale"
type: "Scale"
bottom: "hourglass_3/lower_1/restmp"
top: "hourglass_3/lower_1/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/lower_1/res/bn/relu"
type: "PReLU"
bottom: "hourglass_3/lower_1/res/bn"
top: "hourglass_3/lower_1/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_2/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/lower_1/res/bn"
top: "hourglass_3/upper_2/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_2/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_2/skip/res/branch1/conv1_1x1"
top: "hourglass_3/upper_2/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/upper_2/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_2/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_3/upper_2/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_2/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_2/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_2/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_2/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/upper_2/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_2/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_2/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_2/skip/res/branch1/conv2_3x3"
top: "hourglass_3/upper_2/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/upper_2/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_2/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_3/upper_2/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_2/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_2/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_2/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_2/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/upper_2/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_2/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_2/skip/res"
type: "Eltwise"
bottom: "hourglass_3/upper_2/skip/res/branch1/conv3_1x1"
bottom: "hourglass_3/lower_1/res"
top: "hourglass_3/upper_2/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/upper_2/output"
type: "Eltwise"
bottom: "hourglass_3/upper_2/skip/res"
bottom: "hourglass_3/upper_2/interp"
top: "hourglass_3/upper_2/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/upper_2/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_2/output"
top: "hourglass_3/upper_2/outputtmp"
}
layer {
name: "hourglass_3/upper_2/output/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_2/outputtmp"
top: "hourglass_3/upper_2/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_2/output/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_2/output/bn"
top: "hourglass_3/upper_2/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_1/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/upper_2/output/bn"
top: "hourglass_3/upper_1/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_1/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_1/res/branch1/conv1_1x1"
top: "hourglass_3/upper_1/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/upper_1/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_1/res/branch1/conv1_1x1tmp"
top: "hourglass_3/upper_1/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_1/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_1/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_1/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_1/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/upper_1/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_1/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_1/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_1/res/branch1/conv2_3x3"
top: "hourglass_3/upper_1/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/upper_1/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_1/res/branch1/conv2_3x3tmp"
top: "hourglass_3/upper_1/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_1/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_1/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_1/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_1/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/upper_1/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_1/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_1/res"
type: "Eltwise"
bottom: "hourglass_3/upper_1/res/branch1/conv3_1x1"
bottom: "hourglass_3/upper_2/output"
top: "hourglass_3/upper_1/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/upper_1/interp"
type: "Interp"
bottom: "hourglass_3/upper_1/res"
bottom: "hourglass_2/output"
top: "hourglass_3/upper_1/interp"
}
layer {
name: "hourglass_2/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_2/output"
top: "hourglass_2/outputtmp"
}
layer {
name: "hourglass_2/output/bn_scale"
type: "Scale"
bottom: "hourglass_2/outputtmp"
top: "hourglass_2/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_2/output/bn/relu"
type: "PReLU"
bottom: "hourglass_2/output/bn"
top: "hourglass_2/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_1/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_2/output/bn"
top: "hourglass_3/upper_1/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_1/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_1/skip/res/branch1/conv1_1x1"
top: "hourglass_3/upper_1/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/upper_1/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_1/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_3/upper_1/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_1/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_1/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_1/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_1/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/upper_1/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_3/upper_1/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_1/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/upper_1/skip/res/branch1/conv2_3x3"
top: "hourglass_3/upper_1/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/upper_1/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/upper_1/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_3/upper_1/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/upper_1/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/upper_1/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_1/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/upper_1/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/upper_1/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_3/upper_1/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/upper_1/skip/res"
type: "Eltwise"
bottom: "hourglass_3/upper_1/skip/res/branch1/conv3_1x1"
bottom: "hourglass_2/output"
top: "hourglass_3/upper_1/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3"
type: "Eltwise"
bottom: "hourglass_3/upper_1/skip/res"
bottom: "hourglass_3/upper_1/interp"
top: "hourglass_3"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3"
top: "hourglass_3tmp"
}
layer {
name: "hourglass_3/bn_scale"
type: "Scale"
bottom: "hourglass_3tmp"
top: "hourglass_3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/bn"
top: "hourglass_3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/post/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/bn"
top: "hourglass_3/post/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/post/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/post/branch1/conv1_1x1"
top: "hourglass_3/post/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_3/post/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_3/post/branch1/conv1_1x1tmp"
top: "hourglass_3/post/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/post/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/post/branch1/conv1_1x1/bn"
top: "hourglass_3/post/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/post/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_3/post/branch1/conv1_1x1/bn"
top: "hourglass_3/post/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/post/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/post/branch1/conv2_3x3"
top: "hourglass_3/post/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_3/post/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_3/post/branch1/conv2_3x3tmp"
top: "hourglass_3/post/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/post/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_3/post/branch1/conv2_3x3/bn"
top: "hourglass_3/post/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/post/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_3/post/branch1/conv2_3x3/bn"
top: "hourglass_3/post/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/post"
type: "Eltwise"
bottom: "hourglass_3/post/branch1/conv3_1x1"
bottom: "hourglass_3"
top: "hourglass_3/post"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/post/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/post"
top: "hourglass_3/posttmp"
}
layer {
name: "hourglass_3/post/bn_scale"
type: "Scale"
bottom: "hourglass_3/posttmp"
top: "hourglass_3/post/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/post/bn/relu"
type: "PReLU"
bottom: "hourglass_3/post/bn"
top: "hourglass_3/post/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/post/linear_1"
type: "Convolution"
bottom: "hourglass_3/post/bn"
top: "hourglass_3/post/linear_1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/post/linear_1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/post/linear_1"
top: "hourglass_3/post/linear_1tmp"
}
layer {
name: "hourglass_3/post/linear_1/bn_scale"
type: "Scale"
bottom: "hourglass_3/post/linear_1tmp"
top: "hourglass_3/post/linear_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/post/linear_1/bn/relu"
type: "PReLU"
bottom: "hourglass_3/post/linear_1/bn"
top: "hourglass_3/post/linear_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_3/pred_heatmap"
type: "Convolution"
bottom: "hourglass_3/post/linear_1/bn"
top: "hourglass_3/pred_heatmap"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 13
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/linear_2"
type: "Convolution"
bottom: "hourglass_3/post/linear_1/bn"
top: "hourglass_3/linear_2"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/pred_heatmap/linear_3"
type: "Convolution"
bottom: "hourglass_3/pred_heatmap"
top: "hourglass_3/pred_heatmap/linear_3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_3/sum_tmp"
type: "Eltwise"
bottom: "hourglass_2/output"
bottom: "hourglass_3/linear_2"
top: "hourglass_3/sum_tmp"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_3/output"
type: "Eltwise"
bottom: "hourglass_3/sum_tmp"
bottom: "hourglass_3/pred_heatmap/linear_3"
top: "hourglass_3/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/pool1_2x2_s2"
type: "Pooling"
bottom: "hourglass_3/output"
top: "hourglass_4/pool1_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_4/pool1_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/pool1_2x2_s2"
top: "hourglass_4/pool1_2x2_s2tmp"
}
layer {
name: "hourglass_4/pool1_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_4/pool1_2x2_s2tmp"
top: "hourglass_4/pool1_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/pool1_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_4/pool1_2x2_s2/bn"
top: "hourglass_4/pool1_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_1/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_4/pool1_2x2_s2/bn"
top: "hourglass_4/lower_1/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_1/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_1/res/branch1/conv1_1x1"
top: "hourglass_4/lower_1/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/lower_1/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_1/res/branch1/conv1_1x1tmp"
top: "hourglass_4/lower_1/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_1/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_1/res/branch1/conv1_1x1/bn"
top: "hourglass_4/lower_1/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_1/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/lower_1/res/branch1/conv1_1x1/bn"
top: "hourglass_4/lower_1/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_1/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_1/res/branch1/conv2_3x3"
top: "hourglass_4/lower_1/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/lower_1/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_1/res/branch1/conv2_3x3tmp"
top: "hourglass_4/lower_1/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_1/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_1/res/branch1/conv2_3x3/bn"
top: "hourglass_4/lower_1/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_1/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/lower_1/res/branch1/conv2_3x3/bn"
top: "hourglass_4/lower_1/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_1/res"
type: "Eltwise"
bottom: "hourglass_4/lower_1/res/branch1/conv3_1x1"
bottom: "hourglass_4/pool1_2x2_s2"
top: "hourglass_4/lower_1/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/pool2_2x2_s2"
type: "Pooling"
bottom: "hourglass_4/lower_1/res"
top: "hourglass_4/pool2_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_4/pool2_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/pool2_2x2_s2"
top: "hourglass_4/pool2_2x2_s2tmp"
}
layer {
name: "hourglass_4/pool2_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_4/pool2_2x2_s2tmp"
top: "hourglass_4/pool2_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/pool2_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_4/pool2_2x2_s2/bn"
top: "hourglass_4/pool2_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_2/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_4/pool2_2x2_s2/bn"
top: "hourglass_4/lower_2/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_2/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_2/res/branch1/conv1_1x1"
top: "hourglass_4/lower_2/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/lower_2/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_2/res/branch1/conv1_1x1tmp"
top: "hourglass_4/lower_2/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_2/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_2/res/branch1/conv1_1x1/bn"
top: "hourglass_4/lower_2/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_2/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/lower_2/res/branch1/conv1_1x1/bn"
top: "hourglass_4/lower_2/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_2/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_2/res/branch1/conv2_3x3"
top: "hourglass_4/lower_2/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/lower_2/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_2/res/branch1/conv2_3x3tmp"
top: "hourglass_4/lower_2/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_2/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_2/res/branch1/conv2_3x3/bn"
top: "hourglass_4/lower_2/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_2/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/lower_2/res/branch1/conv2_3x3/bn"
top: "hourglass_4/lower_2/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_2/res"
type: "Eltwise"
bottom: "hourglass_4/lower_2/res/branch1/conv3_1x1"
bottom: "hourglass_4/pool2_2x2_s2"
top: "hourglass_4/lower_2/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/pool3_2x2_s2"
type: "Pooling"
bottom: "hourglass_4/lower_2/res"
top: "hourglass_4/pool3_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_4/pool3_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/pool3_2x2_s2"
top: "hourglass_4/pool3_2x2_s2tmp"
}
layer {
name: "hourglass_4/pool3_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_4/pool3_2x2_s2tmp"
top: "hourglass_4/pool3_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/pool3_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_4/pool3_2x2_s2/bn"
top: "hourglass_4/pool3_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_3/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_4/pool3_2x2_s2/bn"
top: "hourglass_4/lower_3/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_3/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_3/res/branch1/conv1_1x1"
top: "hourglass_4/lower_3/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/lower_3/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_3/res/branch1/conv1_1x1tmp"
top: "hourglass_4/lower_3/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_3/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_3/res/branch1/conv1_1x1/bn"
top: "hourglass_4/lower_3/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_3/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/lower_3/res/branch1/conv1_1x1/bn"
top: "hourglass_4/lower_3/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_3/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_3/res/branch1/conv2_3x3"
top: "hourglass_4/lower_3/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/lower_3/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_3/res/branch1/conv2_3x3tmp"
top: "hourglass_4/lower_3/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_3/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_3/res/branch1/conv2_3x3/bn"
top: "hourglass_4/lower_3/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_3/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/lower_3/res/branch1/conv2_3x3/bn"
top: "hourglass_4/lower_3/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_3/res"
type: "Eltwise"
bottom: "hourglass_4/lower_3/res/branch1/conv3_1x1"
bottom: "hourglass_4/pool3_2x2_s2"
top: "hourglass_4/lower_3/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/pool4_2x2_s2"
type: "Pooling"
bottom: "hourglass_4/lower_3/res"
top: "hourglass_4/pool4_2x2_s2"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "hourglass_4/pool4_2x2_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/pool4_2x2_s2"
top: "hourglass_4/pool4_2x2_s2tmp"
}
layer {
name: "hourglass_4/pool4_2x2_s2/bn_scale"
type: "Scale"
bottom: "hourglass_4/pool4_2x2_s2tmp"
top: "hourglass_4/pool4_2x2_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/pool4_2x2_s2/bn/relu"
type: "PReLU"
bottom: "hourglass_4/pool4_2x2_s2/bn"
top: "hourglass_4/pool4_2x2_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_4_1/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_4/pool4_2x2_s2/bn"
top: "hourglass_4/lower_4_1/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_4_1/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_4_1/res/branch1/conv1_1x1"
top: "hourglass_4/lower_4_1/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/lower_4_1/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_4_1/res/branch1/conv1_1x1tmp"
top: "hourglass_4/lower_4_1/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_4_1/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_4_1/res/branch1/conv1_1x1/bn"
top: "hourglass_4/lower_4_1/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_4_1/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/lower_4_1/res/branch1/conv1_1x1/bn"
top: "hourglass_4/lower_4_1/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_4_1/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_4_1/res/branch1/conv2_3x3"
top: "hourglass_4/lower_4_1/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/lower_4_1/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_4_1/res/branch1/conv2_3x3tmp"
top: "hourglass_4/lower_4_1/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_4_1/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_4_1/res/branch1/conv2_3x3/bn"
top: "hourglass_4/lower_4_1/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_4_1/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/lower_4_1/res/branch1/conv2_3x3/bn"
top: "hourglass_4/lower_4_1/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_4_1/res"
type: "Eltwise"
bottom: "hourglass_4/lower_4_1/res/branch1/conv3_1x1"
bottom: "hourglass_4/pool4_2x2_s2"
top: "hourglass_4/lower_4_1/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/lower_4_1/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_4_1/res"
top: "hourglass_4/lower_4_1/restmp"
}
layer {
name: "hourglass_4/lower_4_1/res/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_4_1/restmp"
top: "hourglass_4/lower_4_1/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_4_1/res/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_4_1/res/bn"
top: "hourglass_4/lower_4_1/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_4_2/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_4/lower_4_1/res/bn"
top: "hourglass_4/lower_4_2/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_4_2/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_4_2/res/branch1/conv1_1x1"
top: "hourglass_4/lower_4_2/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/lower_4_2/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_4_2/res/branch1/conv1_1x1tmp"
top: "hourglass_4/lower_4_2/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_4_2/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_4_2/res/branch1/conv1_1x1/bn"
top: "hourglass_4/lower_4_2/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_4_2/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/lower_4_2/res/branch1/conv1_1x1/bn"
top: "hourglass_4/lower_4_2/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_4_2/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_4_2/res/branch1/conv2_3x3"
top: "hourglass_4/lower_4_2/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/lower_4_2/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_4_2/res/branch1/conv2_3x3tmp"
top: "hourglass_4/lower_4_2/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_4_2/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_4_2/res/branch1/conv2_3x3/bn"
top: "hourglass_4/lower_4_2/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_4_2/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/lower_4_2/res/branch1/conv2_3x3/bn"
top: "hourglass_4/lower_4_2/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_4_2/res"
type: "Eltwise"
bottom: "hourglass_4/lower_4_2/res/branch1/conv3_1x1"
bottom: "hourglass_4/lower_4_1/res"
top: "hourglass_4/lower_4_2/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/lower_4_2/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_4_2/res"
top: "hourglass_4/lower_4_2/restmp"
}
layer {
name: "hourglass_4/lower_4_2/res/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_4_2/restmp"
top: "hourglass_4/lower_4_2/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_4_2/res/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_4_2/res/bn"
top: "hourglass_4/lower_4_2/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_4_3/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_4/lower_4_2/res/bn"
top: "hourglass_4/lower_4_3/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_4_3/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_4_3/res/branch1/conv1_1x1"
top: "hourglass_4/lower_4_3/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/lower_4_3/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_4_3/res/branch1/conv1_1x1tmp"
top: "hourglass_4/lower_4_3/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_4_3/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_4_3/res/branch1/conv1_1x1/bn"
top: "hourglass_4/lower_4_3/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_4_3/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/lower_4_3/res/branch1/conv1_1x1/bn"
top: "hourglass_4/lower_4_3/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_4_3/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_4_3/res/branch1/conv2_3x3"
top: "hourglass_4/lower_4_3/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/lower_4_3/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_4_3/res/branch1/conv2_3x3tmp"
top: "hourglass_4/lower_4_3/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_4_3/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_4_3/res/branch1/conv2_3x3/bn"
top: "hourglass_4/lower_4_3/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/lower_4_3/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/lower_4_3/res/branch1/conv2_3x3/bn"
top: "hourglass_4/lower_4_3/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/lower_4_3/res"
type: "Eltwise"
bottom: "hourglass_4/lower_4_3/res/branch1/conv3_1x1"
bottom: "hourglass_4/lower_4_2/res"
top: "hourglass_4/lower_4_3/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/upper_4/interp"
type: "Interp"
bottom: "hourglass_4/lower_4_3/res"
bottom: "hourglass_4/lower_3/res"
top: "hourglass_4/upper_4/interp"
}
layer {
name: "hourglass_4/lower_3/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_3/res"
top: "hourglass_4/lower_3/restmp"
}
layer {
name: "hourglass_4/lower_3/res/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_3/restmp"
top: "hourglass_4/lower_3/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_3/res/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_3/res/bn"
top: "hourglass_4/lower_3/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_4/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_4/lower_3/res/bn"
top: "hourglass_4/upper_4/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_4/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_4/skip/res/branch1/conv1_1x1"
top: "hourglass_4/upper_4/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/upper_4/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_4/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_4/upper_4/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_4/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_4/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_4/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_4/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/upper_4/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_4/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_4/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_4/skip/res/branch1/conv2_3x3"
top: "hourglass_4/upper_4/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/upper_4/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_4/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_4/upper_4/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_4/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_4/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_4/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_4/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/upper_4/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_4/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_4/skip/res"
type: "Eltwise"
bottom: "hourglass_4/upper_4/skip/res/branch1/conv3_1x1"
bottom: "hourglass_4/lower_3/res"
top: "hourglass_4/upper_4/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/upper_4/output"
type: "Eltwise"
bottom: "hourglass_4/upper_4/skip/res"
bottom: "hourglass_4/upper_4/interp"
top: "hourglass_4/upper_4/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/upper_4/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_4/output"
top: "hourglass_4/upper_4/outputtmp"
}
layer {
name: "hourglass_4/upper_4/output/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_4/outputtmp"
top: "hourglass_4/upper_4/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_4/output/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_4/output/bn"
top: "hourglass_4/upper_4/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_3/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_4/upper_4/output/bn"
top: "hourglass_4/upper_3/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_3/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_3/res/branch1/conv1_1x1"
top: "hourglass_4/upper_3/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/upper_3/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_3/res/branch1/conv1_1x1tmp"
top: "hourglass_4/upper_3/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_3/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_3/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_3/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_3/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/upper_3/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_3/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_3/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_3/res/branch1/conv2_3x3"
top: "hourglass_4/upper_3/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/upper_3/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_3/res/branch1/conv2_3x3tmp"
top: "hourglass_4/upper_3/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_3/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_3/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_3/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_3/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/upper_3/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_3/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_3/res"
type: "Eltwise"
bottom: "hourglass_4/upper_3/res/branch1/conv3_1x1"
bottom: "hourglass_4/upper_4/output"
top: "hourglass_4/upper_3/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/upper_3/interp"
type: "Interp"
bottom: "hourglass_4/upper_3/res"
bottom: "hourglass_4/lower_2/res"
top: "hourglass_4/upper_3/interp"
}
layer {
name: "hourglass_4/lower_2/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_2/res"
top: "hourglass_4/lower_2/restmp"
}
layer {
name: "hourglass_4/lower_2/res/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_2/restmp"
top: "hourglass_4/lower_2/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_2/res/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_2/res/bn"
top: "hourglass_4/lower_2/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_3/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_4/lower_2/res/bn"
top: "hourglass_4/upper_3/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_3/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_3/skip/res/branch1/conv1_1x1"
top: "hourglass_4/upper_3/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/upper_3/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_3/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_4/upper_3/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_3/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_3/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_3/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_3/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/upper_3/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_3/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_3/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_3/skip/res/branch1/conv2_3x3"
top: "hourglass_4/upper_3/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/upper_3/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_3/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_4/upper_3/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_3/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_3/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_3/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_3/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/upper_3/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_3/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_3/skip/res"
type: "Eltwise"
bottom: "hourglass_4/upper_3/skip/res/branch1/conv3_1x1"
bottom: "hourglass_4/lower_2/res"
top: "hourglass_4/upper_3/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/upper_3/output"
type: "Eltwise"
bottom: "hourglass_4/upper_3/skip/res"
bottom: "hourglass_4/upper_3/interp"
top: "hourglass_4/upper_3/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/upper_3/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_3/output"
top: "hourglass_4/upper_3/outputtmp"
}
layer {
name: "hourglass_4/upper_3/output/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_3/outputtmp"
top: "hourglass_4/upper_3/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_3/output/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_3/output/bn"
top: "hourglass_4/upper_3/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_2/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_4/upper_3/output/bn"
top: "hourglass_4/upper_2/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_2/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_2/res/branch1/conv1_1x1"
top: "hourglass_4/upper_2/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/upper_2/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_2/res/branch1/conv1_1x1tmp"
top: "hourglass_4/upper_2/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_2/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_2/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_2/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_2/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/upper_2/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_2/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_2/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_2/res/branch1/conv2_3x3"
top: "hourglass_4/upper_2/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/upper_2/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_2/res/branch1/conv2_3x3tmp"
top: "hourglass_4/upper_2/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_2/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_2/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_2/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_2/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/upper_2/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_2/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_2/res"
type: "Eltwise"
bottom: "hourglass_4/upper_2/res/branch1/conv3_1x1"
bottom: "hourglass_4/upper_3/output"
top: "hourglass_4/upper_2/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/upper_2/interp"
type: "Interp"
bottom: "hourglass_4/upper_2/res"
bottom: "hourglass_4/lower_1/res"
top: "hourglass_4/upper_2/interp"
}
layer {
name: "hourglass_4/lower_1/res/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/lower_1/res"
top: "hourglass_4/lower_1/restmp"
}
layer {
name: "hourglass_4/lower_1/res/bn_scale"
type: "Scale"
bottom: "hourglass_4/lower_1/restmp"
top: "hourglass_4/lower_1/res/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/lower_1/res/bn/relu"
type: "PReLU"
bottom: "hourglass_4/lower_1/res/bn"
top: "hourglass_4/lower_1/res/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_2/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_4/lower_1/res/bn"
top: "hourglass_4/upper_2/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_2/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_2/skip/res/branch1/conv1_1x1"
top: "hourglass_4/upper_2/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/upper_2/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_2/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_4/upper_2/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_2/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_2/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_2/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_2/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/upper_2/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_2/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_2/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_2/skip/res/branch1/conv2_3x3"
top: "hourglass_4/upper_2/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/upper_2/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_2/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_4/upper_2/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_2/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_2/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_2/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_2/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/upper_2/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_2/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_2/skip/res"
type: "Eltwise"
bottom: "hourglass_4/upper_2/skip/res/branch1/conv3_1x1"
bottom: "hourglass_4/lower_1/res"
top: "hourglass_4/upper_2/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/upper_2/output"
type: "Eltwise"
bottom: "hourglass_4/upper_2/skip/res"
bottom: "hourglass_4/upper_2/interp"
top: "hourglass_4/upper_2/output"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/upper_2/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_2/output"
top: "hourglass_4/upper_2/outputtmp"
}
layer {
name: "hourglass_4/upper_2/output/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_2/outputtmp"
top: "hourglass_4/upper_2/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_2/output/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_2/output/bn"
top: "hourglass_4/upper_2/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_1/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_4/upper_2/output/bn"
top: "hourglass_4/upper_1/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_1/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_1/res/branch1/conv1_1x1"
top: "hourglass_4/upper_1/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/upper_1/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_1/res/branch1/conv1_1x1tmp"
top: "hourglass_4/upper_1/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_1/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_1/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_1/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_1/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/upper_1/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_1/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_1/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_1/res/branch1/conv2_3x3"
top: "hourglass_4/upper_1/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/upper_1/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_1/res/branch1/conv2_3x3tmp"
top: "hourglass_4/upper_1/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_1/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_1/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_1/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_1/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/upper_1/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_1/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_1/res"
type: "Eltwise"
bottom: "hourglass_4/upper_1/res/branch1/conv3_1x1"
bottom: "hourglass_4/upper_2/output"
top: "hourglass_4/upper_1/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/upper_1/interp"
type: "Interp"
bottom: "hourglass_4/upper_1/res"
bottom: "hourglass_3/output"
top: "hourglass_4/upper_1/interp"
}
layer {
name: "hourglass_3/output/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_3/output"
top: "hourglass_3/outputtmp"
}
layer {
name: "hourglass_3/output/bn_scale"
type: "Scale"
bottom: "hourglass_3/outputtmp"
top: "hourglass_3/output/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_3/output/bn/relu"
type: "PReLU"
bottom: "hourglass_3/output/bn"
top: "hourglass_3/output/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_1/skip/res/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_3/output/bn"
top: "hourglass_4/upper_1/skip/res/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_1/skip/res/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_1/skip/res/branch1/conv1_1x1"
top: "hourglass_4/upper_1/skip/res/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/upper_1/skip/res/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_1/skip/res/branch1/conv1_1x1tmp"
top: "hourglass_4/upper_1/skip/res/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_1/skip/res/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_1/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_1/skip/res/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_1/skip/res/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/upper_1/skip/res/branch1/conv1_1x1/bn"
top: "hourglass_4/upper_1/skip/res/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_1/skip/res/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/upper_1/skip/res/branch1/conv2_3x3"
top: "hourglass_4/upper_1/skip/res/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/upper_1/skip/res/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/upper_1/skip/res/branch1/conv2_3x3tmp"
top: "hourglass_4/upper_1/skip/res/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/upper_1/skip/res/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/upper_1/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_1/skip/res/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/upper_1/skip/res/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/upper_1/skip/res/branch1/conv2_3x3/bn"
top: "hourglass_4/upper_1/skip/res/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/upper_1/skip/res"
type: "Eltwise"
bottom: "hourglass_4/upper_1/skip/res/branch1/conv3_1x1"
bottom: "hourglass_3/output"
top: "hourglass_4/upper_1/skip/res"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4"
type: "Eltwise"
bottom: "hourglass_4/upper_1/skip/res"
bottom: "hourglass_4/upper_1/interp"
top: "hourglass_4"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4"
top: "hourglass_4tmp"
}
layer {
name: "hourglass_4/bn_scale"
type: "Scale"
bottom: "hourglass_4tmp"
top: "hourglass_4/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/bn/relu"
type: "PReLU"
bottom: "hourglass_4/bn"
top: "hourglass_4/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/post/branch1/conv1_1x1"
type: "Convolution"
bottom: "hourglass_4/bn"
top: "hourglass_4/post/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/post/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/post/branch1/conv1_1x1"
top: "hourglass_4/post/branch1/conv1_1x1tmp"
}
layer {
name: "hourglass_4/post/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "hourglass_4/post/branch1/conv1_1x1tmp"
top: "hourglass_4/post/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/post/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/post/branch1/conv1_1x1/bn"
top: "hourglass_4/post/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/post/branch1/conv2_3x3"
type: "Convolution"
bottom: "hourglass_4/post/branch1/conv1_1x1/bn"
top: "hourglass_4/post/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/post/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/post/branch1/conv2_3x3"
top: "hourglass_4/post/branch1/conv2_3x3tmp"
}
layer {
name: "hourglass_4/post/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "hourglass_4/post/branch1/conv2_3x3tmp"
top: "hourglass_4/post/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/post/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "hourglass_4/post/branch1/conv2_3x3/bn"
top: "hourglass_4/post/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/post/branch1/conv3_1x1"
type: "Convolution"
bottom: "hourglass_4/post/branch1/conv2_3x3/bn"
top: "hourglass_4/post/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/post"
type: "Eltwise"
bottom: "hourglass_4/post/branch1/conv3_1x1"
bottom: "hourglass_4"
top: "hourglass_4/post"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/post/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/post"
top: "hourglass_4/posttmp"
}
layer {
name: "hourglass_4/post/bn_scale"
type: "Scale"
bottom: "hourglass_4/posttmp"
top: "hourglass_4/post/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/post/bn/relu"
type: "PReLU"
bottom: "hourglass_4/post/bn"
top: "hourglass_4/post/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/post/linear_1"
type: "Convolution"
bottom: "hourglass_4/post/bn"
top: "hourglass_4/post/linear_1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "hourglass_4/post/linear_1/bn_batchmorn"
type: "BatchNorm"
bottom: "hourglass_4/post/linear_1"
top: "hourglass_4/post/linear_1tmp"
}
layer {
name: "hourglass_4/post/linear_1/bn_scale"
type: "Scale"
bottom: "hourglass_4/post/linear_1tmp"
top: "hourglass_4/post/linear_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "hourglass_4/post/linear_1/bn/relu"
type: "PReLU"
bottom: "hourglass_4/post/linear_1/bn"
top: "hourglass_4/post/linear_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "hourglass_4/pred_heatmap"
type: "Convolution"
bottom: "hourglass_4/post/linear_1/bn"
top: "hourglass_4/pred_heatmap"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 13
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "pred_heatmap_256x256"
type: "Interp"
bottom: "hourglass_4/pred_heatmap"
bottom: "data"
top: "pred_heatmap_256x256"
}
layer {
name: "data/concat"
type: "Concat"
bottom: "data"
bottom: "data"
bottom: "data"
bottom: "data"
bottom: "data"
bottom: "data"
bottom: "data"
bottom: "data"
bottom: "data"
bottom: "data"
bottom: "data"
bottom: "data"
bottom: "data"
top: "data/concat"
concat_param {
axis: 1
}
}
layer {
name: "data/prod"
type: "Eltwise"
bottom: "data/concat"
bottom: "pred_heatmap_256x256"
top: "data/prod"
eltwise_param {
operation: PROD
}
}
layer {
name: "data/prob/concat"
type: "Concat"
bottom: "data/prod"
bottom: "data"
top: "data/prob/concat"
concat_param {
axis: 1
}
}
layer {
name: "conv1_1"
type: "Convolution"
bottom: "data/prob/concat"
top: "conv1_1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 3
kernel_size: 7
stride: 2
weight_filler {
type: "msra"
}
}
}
layer {
name: "conv1_1/bn_batchmorn"
type: "BatchNorm"
bottom: "conv1_1"
top: "conv1_1tmp"
}
layer {
name: "conv1_1/bn_scale"
type: "Scale"
bottom: "conv1_1tmp"
top: "conv1_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "conv1_1/bn/relu"
type: "PReLU"
bottom: "conv1_1/bn"
top: "conv1_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "pool1_1_3x3_s2"
type: "Pooling"
bottom: "conv1_1/bn"
top: "pool1_1_3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "pool1_1_3x3_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "pool1_1_3x3_s2"
top: "pool1_1_3x3_s2tmp"
}
layer {
name: "pool1_1_3x3_s2/bn_scale"
type: "Scale"
bottom: "pool1_1_3x3_s2tmp"
top: "pool1_1_3x3_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "pool1_1_3x3_s2/bn/relu"
type: "PReLU"
bottom: "pool1_1_3x3_s2/bn"
top: "pool1_1_3x3_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res1_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "pool1_1_3x3_s2/bn"
top: "res1_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res1_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "res1_1/branch1/conv1_1x1"
top: "res1_1/branch1/conv1_1x1tmp"
}
layer {
name: "res1_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "res1_1/branch1/conv1_1x1tmp"
top: "res1_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res1_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "res1_1/branch1/conv1_1x1/bn"
top: "res1_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res1_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "res1_1/branch1/conv1_1x1/bn"
top: "res1_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res1_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "res1_1/branch1/conv2_3x3"
top: "res1_1/branch1/conv2_3x3tmp"
}
layer {
name: "res1_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "res1_1/branch1/conv2_3x3tmp"
top: "res1_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res1_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "res1_1/branch1/conv2_3x3/bn"
top: "res1_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res1_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "res1_1/branch1/conv2_3x3/bn"
top: "res1_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res1_1/branch2/conv1_1x1"
type: "Convolution"
bottom: "pool1_1_3x3_s2/bn"
top: "res1_1/branch2/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res1_1"
type: "Eltwise"
bottom: "res1_1/branch2/conv1_1x1"
bottom: "res1_1/branch1/conv3_1x1"
top: "res1_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "res1_1/bn_batchmorn"
type: "BatchNorm"
bottom: "res1_1"
top: "res1_1tmp"
}
layer {
name: "res1_1/bn_scale"
type: "Scale"
bottom: "res1_1tmp"
top: "res1_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res1_1/bn/relu"
type: "PReLU"
bottom: "res1_1/bn"
top: "res1_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res1_2/branch1/conv1_1x1"
type: "Convolution"
bottom: "res1_1/bn"
top: "res1_2/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res1_2/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "res1_2/branch1/conv1_1x1"
top: "res1_2/branch1/conv1_1x1tmp"
}
layer {
name: "res1_2/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "res1_2/branch1/conv1_1x1tmp"
top: "res1_2/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res1_2/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "res1_2/branch1/conv1_1x1/bn"
top: "res1_2/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res1_2/branch1/conv2_3x3"
type: "Convolution"
bottom: "res1_2/branch1/conv1_1x1/bn"
top: "res1_2/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res1_2/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "res1_2/branch1/conv2_3x3"
top: "res1_2/branch1/conv2_3x3tmp"
}
layer {
name: "res1_2/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "res1_2/branch1/conv2_3x3tmp"
top: "res1_2/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res1_2/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "res1_2/branch1/conv2_3x3/bn"
top: "res1_2/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res1_2/branch1/conv3_1x1"
type: "Convolution"
bottom: "res1_2/branch1/conv2_3x3/bn"
top: "res1_2/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res1_2"
type: "Eltwise"
bottom: "res1_2/branch1/conv3_1x1"
bottom: "res1_1"
top: "res1_2"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/pred_heatmap/64x64"
type: "Interp"
bottom: "hourglass_4/pred_heatmap"
bottom: "res1_2"
top: "hourglass_4/pred_heatmap/64x64"
}
layer {
name: "res1_2/concat"
type: "Concat"
bottom: "hourglass_4/pred_heatmap/64x64"
bottom: "res1_2"
top: "res1_2/concat"
}
layer {
name: "res1_2/concat/bn_batchmorn"
type: "BatchNorm"
bottom: "res1_2/concat"
top: "res1_2/concattmp"
}
layer {
name: "res1_2/concat/bn_scale"
type: "Scale"
bottom: "res1_2/concattmp"
top: "res1_2/concat/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res1_2/concat/bn/relu"
type: "PReLU"
bottom: "res1_2/concat/bn"
top: "res1_2/concat/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res1_2/concat/bn/linear"
type: "Convolution"
bottom: "res1_2/concat/bn"
top: "res1_2/concat/bn/linear"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/down_sample/pool1_3x3_s2"
type: "Pooling"
bottom: "res1_2/concat/bn/linear"
top: "AttentionA_1/mask/down_sample/pool1_3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "AttentionA_1/mask/down_sample/pool1_3x3_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/pool1_3x3_s2"
top: "AttentionA_1/mask/down_sample/pool1_3x3_s2tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/pool1_3x3_s2/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/pool1_3x3_s2tmp"
top: "AttentionA_1/mask/down_sample/pool1_3x3_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/pool1_3x3_s2/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/pool1_3x3_s2/bn"
top: "AttentionA_1/mask/down_sample/pool1_3x3_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/down_sample/res1_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/pool1_3x3_s2/bn"
top: "AttentionA_1/mask/down_sample/res1_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/res1_1/branch1/conv1_1x1"
top: "AttentionA_1/mask/down_sample/res1_1/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/res1_1/branch1/conv1_1x1tmp"
top: "AttentionA_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/down_sample/res1_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/down_sample/res1_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/res1_1/branch1/conv2_3x3"
top: "AttentionA_1/mask/down_sample/res1_1/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/res1_1/branch1/conv2_3x3tmp"
top: "AttentionA_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/down_sample/res1_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/down_sample/res1_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/down_sample/res1_1"
type: "Eltwise"
bottom: "AttentionA_1/mask/down_sample/res1_1/branch1/conv3_1x1"
bottom: "AttentionA_1/mask/down_sample/pool1_3x3_s2"
top: "AttentionA_1/mask/down_sample/res1_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionA_1/mask/down_sample/pool2_3x3_s2"
type: "Pooling"
bottom: "AttentionA_1/mask/down_sample/res1_1"
top: "AttentionA_1/mask/down_sample/pool2_3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "AttentionA_1/mask/down_sample/pool2_3x3_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/pool2_3x3_s2"
top: "AttentionA_1/mask/down_sample/pool2_3x3_s2tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/pool2_3x3_s2/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/pool2_3x3_s2tmp"
top: "AttentionA_1/mask/down_sample/pool2_3x3_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/pool2_3x3_s2/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/pool2_3x3_s2/bn"
top: "AttentionA_1/mask/down_sample/pool2_3x3_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/down_sample/res2_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/pool2_3x3_s2/bn"
top: "AttentionA_1/mask/down_sample/res2_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/res2_1/branch1/conv1_1x1"
top: "AttentionA_1/mask/down_sample/res2_1/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/res2_1/branch1/conv1_1x1tmp"
top: "AttentionA_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/down_sample/res2_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/down_sample/res2_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/res2_1/branch1/conv2_3x3"
top: "AttentionA_1/mask/down_sample/res2_1/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/res2_1/branch1/conv2_3x3tmp"
top: "AttentionA_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/down_sample/res2_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/down_sample/res2_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/down_sample/res2_1"
type: "Eltwise"
bottom: "AttentionA_1/mask/down_sample/res2_1/branch1/conv3_1x1"
bottom: "AttentionA_1/mask/down_sample/pool2_3x3_s2"
top: "AttentionA_1/mask/down_sample/res2_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionA_1/mask/down_sample/pool3_3x3_s2"
type: "Pooling"
bottom: "AttentionA_1/mask/down_sample/res2_1"
top: "AttentionA_1/mask/down_sample/pool3_3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "AttentionA_1/mask/down_sample/pool3_3x3_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/pool3_3x3_s2"
top: "AttentionA_1/mask/down_sample/pool3_3x3_s2tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/pool3_3x3_s2/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/pool3_3x3_s2tmp"
top: "AttentionA_1/mask/down_sample/pool3_3x3_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/pool3_3x3_s2/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/pool3_3x3_s2/bn"
top: "AttentionA_1/mask/down_sample/pool3_3x3_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/pool3_3x3_s2/bn"
top: "AttentionA_1/mask/down_sample/res3_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/res3_1/branch1/conv1_1x1"
top: "AttentionA_1/mask/down_sample/res3_1/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/res3_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/res3_1/branch1/conv1_1x1tmp"
top: "AttentionA_1/mask/down_sample/res3_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/res3_1/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/down_sample/res3_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/res3_1/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/down_sample/res3_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/res3_1/branch1/conv2_3x3"
top: "AttentionA_1/mask/down_sample/res3_1/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/res3_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/res3_1/branch1/conv2_3x3tmp"
top: "AttentionA_1/mask/down_sample/res3_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/res3_1/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/down_sample/res3_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/res3_1/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/down_sample/res3_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_1"
type: "Eltwise"
bottom: "AttentionA_1/mask/down_sample/res3_1/branch1/conv3_1x1"
bottom: "AttentionA_1/mask/down_sample/pool3_3x3_s2"
top: "AttentionA_1/mask/down_sample/res3_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/res3_1"
top: "AttentionA_1/mask/down_sample/res3_1tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/res3_1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/res3_1tmp"
top: "AttentionA_1/mask/down_sample/res3_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/res3_1/bn"
top: "AttentionA_1/mask/down_sample/res3_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_2/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/res3_1/bn"
top: "AttentionA_1/mask/down_sample/res3_2/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_2/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/res3_2/branch1/conv1_1x1"
top: "AttentionA_1/mask/down_sample/res3_2/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/res3_2/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/res3_2/branch1/conv1_1x1tmp"
top: "AttentionA_1/mask/down_sample/res3_2/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_2/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/res3_2/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/down_sample/res3_2/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_2/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/res3_2/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/down_sample/res3_2/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_2/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/res3_2/branch1/conv2_3x3"
top: "AttentionA_1/mask/down_sample/res3_2/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/res3_2/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/res3_2/branch1/conv2_3x3tmp"
top: "AttentionA_1/mask/down_sample/res3_2/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_2/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/res3_2/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/down_sample/res3_2/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_2/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/res3_2/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/down_sample/res3_2/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/down_sample/res3_2"
type: "Eltwise"
bottom: "AttentionA_1/mask/down_sample/res3_2/branch1/conv3_1x1"
bottom: "AttentionA_1/mask/down_sample/res3_1"
top: "AttentionA_1/mask/down_sample/res3_2"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionA_1/mask/up_sample/interp_3"
type: "Interp"
bottom: "AttentionA_1/mask/down_sample/res3_2"
bottom: "AttentionA_1/mask/down_sample/res2_1"
top: "AttentionA_1/mask/up_sample/interp_3"
}
layer {
name: "AttentionA_1/mask/down_sample/res2_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/res2_1"
top: "AttentionA_1/mask/down_sample/res2_1tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/res2_1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/res2_1tmp"
top: "AttentionA_1/mask/down_sample/res2_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/res2_1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/res2_1/bn"
top: "AttentionA_1/mask/down_sample/res2_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/skip/res2/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/res2_1/bn"
top: "AttentionA_1/mask/skip/res2/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/skip/res2/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/skip/res2/branch1/conv1_1x1"
top: "AttentionA_1/mask/skip/res2/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionA_1/mask/skip/res2/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/skip/res2/branch1/conv1_1x1tmp"
top: "AttentionA_1/mask/skip/res2/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/skip/res2/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/skip/res2/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/skip/res2/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/skip/res2/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionA_1/mask/skip/res2/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/skip/res2/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/skip/res2/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/skip/res2/branch1/conv2_3x3"
top: "AttentionA_1/mask/skip/res2/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionA_1/mask/skip/res2/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/skip/res2/branch1/conv2_3x3tmp"
top: "AttentionA_1/mask/skip/res2/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/skip/res2/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/skip/res2/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/skip/res2/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/skip/res2/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/skip/res2/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/skip/res2/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/skip/res2"
type: "Eltwise"
bottom: "AttentionA_1/mask/skip/res2/branch1/conv3_1x1"
bottom: "AttentionA_1/mask/down_sample/res2_1"
top: "AttentionA_1/mask/skip/res2"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionA_1/mask/up_sample2"
type: "Eltwise"
bottom: "AttentionA_1/mask/skip/res2"
bottom: "AttentionA_1/mask/up_sample/interp_3"
top: "AttentionA_1/mask/up_sample2"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionA_1/mask/up_sample2/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/up_sample2"
top: "AttentionA_1/mask/up_sample2tmp"
}
layer {
name: "AttentionA_1/mask/up_sample2/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/up_sample2tmp"
top: "AttentionA_1/mask/up_sample2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/up_sample2/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/up_sample2/bn"
top: "AttentionA_1/mask/up_sample2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/up_sample/res2_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/up_sample2/bn"
top: "AttentionA_1/mask/up_sample/res2_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/up_sample/res2_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/up_sample/res2_1/branch1/conv1_1x1"
top: "AttentionA_1/mask/up_sample/res2_1/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionA_1/mask/up_sample/res2_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/up_sample/res2_1/branch1/conv1_1x1tmp"
top: "AttentionA_1/mask/up_sample/res2_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/up_sample/res2_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/up_sample/res2_1/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/up_sample/res2_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/up_sample/res2_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionA_1/mask/up_sample/res2_1/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/up_sample/res2_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/up_sample/res2_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/up_sample/res2_1/branch1/conv2_3x3"
top: "AttentionA_1/mask/up_sample/res2_1/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionA_1/mask/up_sample/res2_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/up_sample/res2_1/branch1/conv2_3x3tmp"
top: "AttentionA_1/mask/up_sample/res2_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/up_sample/res2_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/up_sample/res2_1/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/up_sample/res2_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/up_sample/res2_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/up_sample/res2_1/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/up_sample/res2_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/up_sample/res2_1"
type: "Eltwise"
bottom: "AttentionA_1/mask/up_sample/res2_1/branch1/conv3_1x1"
bottom: "AttentionA_1/mask/up_sample2"
top: "AttentionA_1/mask/up_sample/res2_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionA_1/mask/up_sample/interp_2"
type: "Interp"
bottom: "AttentionA_1/mask/up_sample/res2_1"
bottom: "AttentionA_1/mask/down_sample/res1_1"
top: "AttentionA_1/mask/up_sample/interp_2"
}
layer {
name: "AttentionA_1/mask/down_sample/res1_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/down_sample/res1_1"
top: "AttentionA_1/mask/down_sample/res1_1tmp"
}
layer {
name: "AttentionA_1/mask/down_sample/res1_1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/down_sample/res1_1tmp"
top: "AttentionA_1/mask/down_sample/res1_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/down_sample/res1_1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/down_sample/res1_1/bn"
top: "AttentionA_1/mask/down_sample/res1_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/skip/res1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/down_sample/res1_1/bn"
top: "AttentionA_1/mask/skip/res1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/skip/res1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/skip/res1/branch1/conv1_1x1"
top: "AttentionA_1/mask/skip/res1/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionA_1/mask/skip/res1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/skip/res1/branch1/conv1_1x1tmp"
top: "AttentionA_1/mask/skip/res1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/skip/res1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/skip/res1/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/skip/res1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/skip/res1/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionA_1/mask/skip/res1/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/skip/res1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/skip/res1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/skip/res1/branch1/conv2_3x3"
top: "AttentionA_1/mask/skip/res1/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionA_1/mask/skip/res1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/skip/res1/branch1/conv2_3x3tmp"
top: "AttentionA_1/mask/skip/res1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/skip/res1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/skip/res1/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/skip/res1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/skip/res1/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/skip/res1/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/skip/res1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/skip/res1"
type: "Eltwise"
bottom: "AttentionA_1/mask/skip/res1/branch1/conv3_1x1"
bottom: "AttentionA_1/mask/down_sample/res1_1"
top: "AttentionA_1/mask/skip/res1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionA_1/mask/up_sample1"
type: "Eltwise"
bottom: "AttentionA_1/mask/skip/res1"
bottom: "AttentionA_1/mask/up_sample/interp_2"
top: "AttentionA_1/mask/up_sample1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionA_1/mask/up_sample1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/up_sample1"
top: "AttentionA_1/mask/up_sample1tmp"
}
layer {
name: "AttentionA_1/mask/up_sample1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/up_sample1tmp"
top: "AttentionA_1/mask/up_sample1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/up_sample1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/up_sample1/bn"
top: "AttentionA_1/mask/up_sample1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/up_sample/res1_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/up_sample1/bn"
top: "AttentionA_1/mask/up_sample/res1_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/up_sample/res1_1/branch1/conv1_1x1"
top: "AttentionA_1/mask/up_sample/res1_1/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionA_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/up_sample/res1_1/branch1/conv1_1x1tmp"
top: "AttentionA_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/up_sample/res1_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionA_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn"
top: "AttentionA_1/mask/up_sample/res1_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 8
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/up_sample/res1_1/branch1/conv2_3x3"
top: "AttentionA_1/mask/up_sample/res1_1/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionA_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/up_sample/res1_1/branch1/conv2_3x3tmp"
top: "AttentionA_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/up_sample/res1_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionA_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn"
top: "AttentionA_1/mask/up_sample/res1_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/up_sample/res1_1"
type: "Eltwise"
bottom: "AttentionA_1/mask/up_sample/res1_1/branch1/conv3_1x1"
bottom: "AttentionA_1/mask/up_sample1"
top: "AttentionA_1/mask/up_sample/res1_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionA_1/mask/up_sample/interp_1"
type: "Interp"
bottom: "AttentionA_1/mask/up_sample/res1_1"
bottom: "res1_2/concat/bn/linear"
top: "AttentionA_1/mask/up_sample/interp_1"
}
layer {
name: "AttentionA_1/mask/up_sample/interp_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/up_sample/interp_1"
top: "AttentionA_1/mask/up_sample/interp_1tmp"
}
layer {
name: "AttentionA_1/mask/up_sample/interp_1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/up_sample/interp_1tmp"
top: "AttentionA_1/mask/up_sample/interp_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/up_sample/interp_1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/up_sample/interp_1/bn"
top: "AttentionA_1/mask/up_sample/interp_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/linear_1"
type: "Convolution"
bottom: "AttentionA_1/mask/up_sample/interp_1/bn"
top: "AttentionA_1/mask/linear_1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask/linear_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1/mask/linear_1"
top: "AttentionA_1/mask/linear_1tmp"
}
layer {
name: "AttentionA_1/mask/linear_1/bn_scale"
type: "Scale"
bottom: "AttentionA_1/mask/linear_1tmp"
top: "AttentionA_1/mask/linear_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/mask/linear_1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/mask/linear_1/bn"
top: "AttentionA_1/mask/linear_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionA_1/mask/linear_2"
type: "Convolution"
bottom: "AttentionA_1/mask/linear_1/bn"
top: "AttentionA_1/mask/linear_2"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionA_1/mask"
type: "TanH"
bottom: "AttentionA_1/mask/linear_2"
top: "AttentionA_1/mask"
}
layer {
name: "AttentionA_1_residual"
type: "Eltwise"
bottom: "res1_2"
bottom: "AttentionA_1/mask"
top: "AttentionA_1_residual"
eltwise_param {
operation: PROD
}
}
layer {
name: "AttentionA_1"
type: "Eltwise"
bottom: "AttentionA_1_residual"
bottom: "res1_2"
top: "AttentionA_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionA_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionA_1"
top: "AttentionA_1tmp"
}
layer {
name: "AttentionA_1/bn_scale"
type: "Scale"
bottom: "AttentionA_1tmp"
top: "AttentionA_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionA_1/bn/relu"
type: "PReLU"
bottom: "AttentionA_1/bn"
top: "AttentionA_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res2_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionA_1/bn"
top: "res2_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res2_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "res2_1/branch1/conv1_1x1"
top: "res2_1/branch1/conv1_1x1tmp"
}
layer {
name: "res2_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "res2_1/branch1/conv1_1x1tmp"
top: "res2_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res2_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "res2_1/branch1/conv1_1x1/bn"
top: "res2_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res2_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "res2_1/branch1/conv1_1x1/bn"
top: "res2_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 1
kernel_size: 3
stride: 2
weight_filler {
type: "msra"
}
}
}
layer {
name: "res2_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "res2_1/branch1/conv2_3x3"
top: "res2_1/branch1/conv2_3x3tmp"
}
layer {
name: "res2_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "res2_1/branch1/conv2_3x3tmp"
top: "res2_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res2_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "res2_1/branch1/conv2_3x3/bn"
top: "res2_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res2_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "res2_1/branch1/conv2_3x3/bn"
top: "res2_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res2_1/branch2/conv1_1x1"
type: "Convolution"
bottom: "AttentionA_1/bn"
top: "res2_1/branch2/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 2
weight_filler {
type: "msra"
}
}
}
layer {
name: "res2_1"
type: "Eltwise"
bottom: "res2_1/branch2/conv1_1x1"
bottom: "res2_1/branch1/conv3_1x1"
top: "res2_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "res2_1/bn_batchmorn"
type: "BatchNorm"
bottom: "res2_1"
top: "res2_1tmp"
}
layer {
name: "res2_1/bn_scale"
type: "Scale"
bottom: "res2_1tmp"
top: "res2_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res2_1/bn/relu"
type: "PReLU"
bottom: "res2_1/bn"
top: "res2_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res2_2/branch1/conv1_1x1"
type: "Convolution"
bottom: "res2_1/bn"
top: "res2_2/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res2_2/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "res2_2/branch1/conv1_1x1"
top: "res2_2/branch1/conv1_1x1tmp"
}
layer {
name: "res2_2/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "res2_2/branch1/conv1_1x1tmp"
top: "res2_2/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res2_2/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "res2_2/branch1/conv1_1x1/bn"
top: "res2_2/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res2_2/branch1/conv2_3x3"
type: "Convolution"
bottom: "res2_2/branch1/conv1_1x1/bn"
top: "res2_2/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res2_2/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "res2_2/branch1/conv2_3x3"
top: "res2_2/branch1/conv2_3x3tmp"
}
layer {
name: "res2_2/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "res2_2/branch1/conv2_3x3tmp"
top: "res2_2/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res2_2/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "res2_2/branch1/conv2_3x3/bn"
top: "res2_2/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res2_2/branch1/conv3_1x1"
type: "Convolution"
bottom: "res2_2/branch1/conv2_3x3/bn"
top: "res2_2/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res2_2"
type: "Eltwise"
bottom: "res2_2/branch1/conv3_1x1"
bottom: "res2_1"
top: "res2_2"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/pred_heatmap/32x32"
type: "Interp"
bottom: "hourglass_4/pred_heatmap"
bottom: "res2_2"
top: "hourglass_4/pred_heatmap/32x32"
}
layer {
name: "res2_2/concat"
type: "Concat"
bottom: "hourglass_4/pred_heatmap/32x32"
bottom: "res2_2"
top: "res2_2/concat"
}
layer {
name: "res2_2/concat/bn_batchmorn"
type: "BatchNorm"
bottom: "res2_2/concat"
top: "res2_2/concattmp"
}
layer {
name: "res2_2/concat/bn_scale"
type: "Scale"
bottom: "res2_2/concattmp"
top: "res2_2/concat/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res2_2/concat/bn/relu"
type: "PReLU"
bottom: "res2_2/concat/bn"
top: "res2_2/concat/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res2_2/concat/bn/linear"
type: "Convolution"
bottom: "res2_2/concat/bn"
top: "res2_2/concat/bn/linear"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/down_sample/pool1_3x3_s2"
type: "Pooling"
bottom: "res2_2/concat/bn/linear"
top: "AttentionB_1/mask/down_sample/pool1_3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "AttentionB_1/mask/down_sample/pool1_3x3_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/down_sample/pool1_3x3_s2"
top: "AttentionB_1/mask/down_sample/pool1_3x3_s2tmp"
}
layer {
name: "AttentionB_1/mask/down_sample/pool1_3x3_s2/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/down_sample/pool1_3x3_s2tmp"
top: "AttentionB_1/mask/down_sample/pool1_3x3_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/down_sample/pool1_3x3_s2/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/down_sample/pool1_3x3_s2/bn"
top: "AttentionB_1/mask/down_sample/pool1_3x3_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/down_sample/res1_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionB_1/mask/down_sample/pool1_3x3_s2/bn"
top: "AttentionB_1/mask/down_sample/res1_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/down_sample/res1_1/branch1/conv1_1x1"
top: "AttentionB_1/mask/down_sample/res1_1/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionB_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/down_sample/res1_1/branch1/conv1_1x1tmp"
top: "AttentionB_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn"
top: "AttentionB_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/down_sample/res1_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionB_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn"
top: "AttentionB_1/mask/down_sample/res1_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/down_sample/res1_1/branch1/conv2_3x3"
top: "AttentionB_1/mask/down_sample/res1_1/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionB_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/down_sample/res1_1/branch1/conv2_3x3tmp"
top: "AttentionB_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn"
top: "AttentionB_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/down_sample/res1_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionB_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn"
top: "AttentionB_1/mask/down_sample/res1_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/down_sample/res1_1"
type: "Eltwise"
bottom: "AttentionB_1/mask/down_sample/res1_1/branch1/conv3_1x1"
bottom: "AttentionB_1/mask/down_sample/pool1_3x3_s2"
top: "AttentionB_1/mask/down_sample/res1_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionB_1/mask/down_sample/pool2_3x3_s2"
type: "Pooling"
bottom: "AttentionB_1/mask/down_sample/res1_1"
top: "AttentionB_1/mask/down_sample/pool2_3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "AttentionB_1/mask/down_sample/pool2_3x3_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/down_sample/pool2_3x3_s2"
top: "AttentionB_1/mask/down_sample/pool2_3x3_s2tmp"
}
layer {
name: "AttentionB_1/mask/down_sample/pool2_3x3_s2/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/down_sample/pool2_3x3_s2tmp"
top: "AttentionB_1/mask/down_sample/pool2_3x3_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/down_sample/pool2_3x3_s2/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/down_sample/pool2_3x3_s2/bn"
top: "AttentionB_1/mask/down_sample/pool2_3x3_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionB_1/mask/down_sample/pool2_3x3_s2/bn"
top: "AttentionB_1/mask/down_sample/res2_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/down_sample/res2_1/branch1/conv1_1x1"
top: "AttentionB_1/mask/down_sample/res2_1/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionB_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/down_sample/res2_1/branch1/conv1_1x1tmp"
top: "AttentionB_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn"
top: "AttentionB_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionB_1/mask/down_sample/res2_1/branch1/conv1_1x1/bn"
top: "AttentionB_1/mask/down_sample/res2_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/down_sample/res2_1/branch1/conv2_3x3"
top: "AttentionB_1/mask/down_sample/res2_1/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionB_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/down_sample/res2_1/branch1/conv2_3x3tmp"
top: "AttentionB_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn"
top: "AttentionB_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionB_1/mask/down_sample/res2_1/branch1/conv2_3x3/bn"
top: "AttentionB_1/mask/down_sample/res2_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_1"
type: "Eltwise"
bottom: "AttentionB_1/mask/down_sample/res2_1/branch1/conv3_1x1"
bottom: "AttentionB_1/mask/down_sample/pool2_3x3_s2"
top: "AttentionB_1/mask/down_sample/res2_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/down_sample/res2_1"
top: "AttentionB_1/mask/down_sample/res2_1tmp"
}
layer {
name: "AttentionB_1/mask/down_sample/res2_1/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/down_sample/res2_1tmp"
top: "AttentionB_1/mask/down_sample/res2_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_1/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/down_sample/res2_1/bn"
top: "AttentionB_1/mask/down_sample/res2_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_2/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionB_1/mask/down_sample/res2_1/bn"
top: "AttentionB_1/mask/down_sample/res2_2/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_2/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/down_sample/res2_2/branch1/conv1_1x1"
top: "AttentionB_1/mask/down_sample/res2_2/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionB_1/mask/down_sample/res2_2/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/down_sample/res2_2/branch1/conv1_1x1tmp"
top: "AttentionB_1/mask/down_sample/res2_2/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_2/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/down_sample/res2_2/branch1/conv1_1x1/bn"
top: "AttentionB_1/mask/down_sample/res2_2/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_2/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionB_1/mask/down_sample/res2_2/branch1/conv1_1x1/bn"
top: "AttentionB_1/mask/down_sample/res2_2/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_2/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/down_sample/res2_2/branch1/conv2_3x3"
top: "AttentionB_1/mask/down_sample/res2_2/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionB_1/mask/down_sample/res2_2/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/down_sample/res2_2/branch1/conv2_3x3tmp"
top: "AttentionB_1/mask/down_sample/res2_2/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_2/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/down_sample/res2_2/branch1/conv2_3x3/bn"
top: "AttentionB_1/mask/down_sample/res2_2/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_2/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionB_1/mask/down_sample/res2_2/branch1/conv2_3x3/bn"
top: "AttentionB_1/mask/down_sample/res2_2/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/down_sample/res2_2"
type: "Eltwise"
bottom: "AttentionB_1/mask/down_sample/res2_2/branch1/conv3_1x1"
bottom: "AttentionB_1/mask/down_sample/res2_1"
top: "AttentionB_1/mask/down_sample/res2_2"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionB_1/mask/up_sample/interp_2"
type: "Interp"
bottom: "AttentionB_1/mask/down_sample/res2_2"
bottom: "AttentionB_1/mask/down_sample/res1_1"
top: "AttentionB_1/mask/up_sample/interp_2"
}
layer {
name: "AttentionB_1/mask/down_sample/res1_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/down_sample/res1_1"
top: "AttentionB_1/mask/down_sample/res1_1tmp"
}
layer {
name: "AttentionB_1/mask/down_sample/res1_1/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/down_sample/res1_1tmp"
top: "AttentionB_1/mask/down_sample/res1_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/down_sample/res1_1/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/down_sample/res1_1/bn"
top: "AttentionB_1/mask/down_sample/res1_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/skip/res1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionB_1/mask/down_sample/res1_1/bn"
top: "AttentionB_1/mask/skip/res1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/skip/res1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/skip/res1/branch1/conv1_1x1"
top: "AttentionB_1/mask/skip/res1/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionB_1/mask/skip/res1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/skip/res1/branch1/conv1_1x1tmp"
top: "AttentionB_1/mask/skip/res1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/skip/res1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/skip/res1/branch1/conv1_1x1/bn"
top: "AttentionB_1/mask/skip/res1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/skip/res1/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionB_1/mask/skip/res1/branch1/conv1_1x1/bn"
top: "AttentionB_1/mask/skip/res1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/skip/res1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/skip/res1/branch1/conv2_3x3"
top: "AttentionB_1/mask/skip/res1/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionB_1/mask/skip/res1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/skip/res1/branch1/conv2_3x3tmp"
top: "AttentionB_1/mask/skip/res1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/skip/res1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/skip/res1/branch1/conv2_3x3/bn"
top: "AttentionB_1/mask/skip/res1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/skip/res1/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionB_1/mask/skip/res1/branch1/conv2_3x3/bn"
top: "AttentionB_1/mask/skip/res1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/skip/res1"
type: "Eltwise"
bottom: "AttentionB_1/mask/skip/res1/branch1/conv3_1x1"
bottom: "AttentionB_1/mask/down_sample/res1_1"
top: "AttentionB_1/mask/skip/res1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionB_1/mask/up_sample1"
type: "Eltwise"
bottom: "AttentionB_1/mask/skip/res1"
bottom: "AttentionB_1/mask/up_sample/interp_2"
top: "AttentionB_1/mask/up_sample1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionB_1/mask/up_sample1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/up_sample1"
top: "AttentionB_1/mask/up_sample1tmp"
}
layer {
name: "AttentionB_1/mask/up_sample1/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/up_sample1tmp"
top: "AttentionB_1/mask/up_sample1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/up_sample1/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/up_sample1/bn"
top: "AttentionB_1/mask/up_sample1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/up_sample/res1_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionB_1/mask/up_sample1/bn"
top: "AttentionB_1/mask/up_sample/res1_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/up_sample/res1_1/branch1/conv1_1x1"
top: "AttentionB_1/mask/up_sample/res1_1/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionB_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/up_sample/res1_1/branch1/conv1_1x1tmp"
top: "AttentionB_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn"
top: "AttentionB_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/up_sample/res1_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionB_1/mask/up_sample/res1_1/branch1/conv1_1x1/bn"
top: "AttentionB_1/mask/up_sample/res1_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 16
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/up_sample/res1_1/branch1/conv2_3x3"
top: "AttentionB_1/mask/up_sample/res1_1/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionB_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/up_sample/res1_1/branch1/conv2_3x3tmp"
top: "AttentionB_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn"
top: "AttentionB_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/up_sample/res1_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionB_1/mask/up_sample/res1_1/branch1/conv2_3x3/bn"
top: "AttentionB_1/mask/up_sample/res1_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/up_sample/res1_1"
type: "Eltwise"
bottom: "AttentionB_1/mask/up_sample/res1_1/branch1/conv3_1x1"
bottom: "AttentionB_1/mask/up_sample1"
top: "AttentionB_1/mask/up_sample/res1_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionB_1/mask/up_sample/interp_1"
type: "Interp"
bottom: "AttentionB_1/mask/up_sample/res1_1"
bottom: "res2_2/concat/bn/linear"
top: "AttentionB_1/mask/up_sample/interp_1"
}
layer {
name: "AttentionB_1/mask/up_sample/interp_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/up_sample/interp_1"
top: "AttentionB_1/mask/up_sample/interp_1tmp"
}
layer {
name: "AttentionB_1/mask/up_sample/interp_1/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/up_sample/interp_1tmp"
top: "AttentionB_1/mask/up_sample/interp_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/up_sample/interp_1/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/up_sample/interp_1/bn"
top: "AttentionB_1/mask/up_sample/interp_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/linear_1"
type: "Convolution"
bottom: "AttentionB_1/mask/up_sample/interp_1/bn"
top: "AttentionB_1/mask/linear_1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask/linear_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1/mask/linear_1"
top: "AttentionB_1/mask/linear_1tmp"
}
layer {
name: "AttentionB_1/mask/linear_1/bn_scale"
type: "Scale"
bottom: "AttentionB_1/mask/linear_1tmp"
top: "AttentionB_1/mask/linear_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/mask/linear_1/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/mask/linear_1/bn"
top: "AttentionB_1/mask/linear_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionB_1/mask/linear_2"
type: "Convolution"
bottom: "AttentionB_1/mask/linear_1/bn"
top: "AttentionB_1/mask/linear_2"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionB_1/mask"
type: "TanH"
bottom: "AttentionB_1/mask/linear_2"
top: "AttentionB_1/mask"
}
layer {
name: "AttentionB_1_residual"
type: "Eltwise"
bottom: "res2_2"
bottom: "AttentionB_1/mask"
top: "AttentionB_1_residual"
eltwise_param {
operation: PROD
}
}
layer {
name: "AttentionB_1"
type: "Eltwise"
bottom: "AttentionB_1_residual"
bottom: "res2_2"
top: "AttentionB_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionB_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionB_1"
top: "AttentionB_1tmp"
}
layer {
name: "AttentionB_1/bn_scale"
type: "Scale"
bottom: "AttentionB_1tmp"
top: "AttentionB_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionB_1/bn/relu"
type: "PReLU"
bottom: "AttentionB_1/bn"
top: "AttentionB_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res3_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionB_1/bn"
top: "res3_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res3_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "res3_1/branch1/conv1_1x1"
top: "res3_1/branch1/conv1_1x1tmp"
}
layer {
name: "res3_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "res3_1/branch1/conv1_1x1tmp"
top: "res3_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res3_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "res3_1/branch1/conv1_1x1/bn"
top: "res3_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res3_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "res3_1/branch1/conv1_1x1/bn"
top: "res3_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 1
kernel_size: 3
stride: 2
weight_filler {
type: "msra"
}
}
}
layer {
name: "res3_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "res3_1/branch1/conv2_3x3"
top: "res3_1/branch1/conv2_3x3tmp"
}
layer {
name: "res3_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "res3_1/branch1/conv2_3x3tmp"
top: "res3_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res3_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "res3_1/branch1/conv2_3x3/bn"
top: "res3_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res3_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "res3_1/branch1/conv2_3x3/bn"
top: "res3_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res3_1/branch2/conv1_1x1"
type: "Convolution"
bottom: "AttentionB_1/bn"
top: "res3_1/branch2/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 2
weight_filler {
type: "msra"
}
}
}
layer {
name: "res3_1"
type: "Eltwise"
bottom: "res3_1/branch2/conv1_1x1"
bottom: "res3_1/branch1/conv3_1x1"
top: "res3_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "res3_1/bn_batchmorn"
type: "BatchNorm"
bottom: "res3_1"
top: "res3_1tmp"
}
layer {
name: "res3_1/bn_scale"
type: "Scale"
bottom: "res3_1tmp"
top: "res3_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res3_1/bn/relu"
type: "PReLU"
bottom: "res3_1/bn"
top: "res3_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res3_2/branch1/conv1_1x1"
type: "Convolution"
bottom: "res3_1/bn"
top: "res3_2/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res3_2/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "res3_2/branch1/conv1_1x1"
top: "res3_2/branch1/conv1_1x1tmp"
}
layer {
name: "res3_2/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "res3_2/branch1/conv1_1x1tmp"
top: "res3_2/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res3_2/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "res3_2/branch1/conv1_1x1/bn"
top: "res3_2/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res3_2/branch1/conv2_3x3"
type: "Convolution"
bottom: "res3_2/branch1/conv1_1x1/bn"
top: "res3_2/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res3_2/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "res3_2/branch1/conv2_3x3"
top: "res3_2/branch1/conv2_3x3tmp"
}
layer {
name: "res3_2/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "res3_2/branch1/conv2_3x3tmp"
top: "res3_2/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res3_2/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "res3_2/branch1/conv2_3x3/bn"
top: "res3_2/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res3_2/branch1/conv3_1x1"
type: "Convolution"
bottom: "res3_2/branch1/conv2_3x3/bn"
top: "res3_2/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res3_2"
type: "Eltwise"
bottom: "res3_2/branch1/conv3_1x1"
bottom: "res3_1"
top: "res3_2"
eltwise_param {
operation: SUM
}
}
layer {
name: "hourglass_4/pred_heatmap/16x16"
type: "Interp"
bottom: "hourglass_4/pred_heatmap"
bottom: "res3_2"
top: "hourglass_4/pred_heatmap/16x16"
}
layer {
name: "res3_2/concat"
type: "Concat"
bottom: "hourglass_4/pred_heatmap/16x16"
bottom: "res3_2"
top: "res3_2/concat"
}
layer {
name: "res3_2/concat/bn_batchmorn"
type: "BatchNorm"
bottom: "res3_2/concat"
top: "res3_2/concattmp"
}
layer {
name: "res3_2/concat/bn_scale"
type: "Scale"
bottom: "res3_2/concattmp"
top: "res3_2/concat/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res3_2/concat/bn/relu"
type: "PReLU"
bottom: "res3_2/concat/bn"
top: "res3_2/concat/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res3_2/concat/bn/linear"
type: "Convolution"
bottom: "res3_2/concat/bn"
top: "res3_2/concat/bn/linear"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionC_1/mask/down_sample/pool1_3x3_s2"
type: "Pooling"
bottom: "res3_2/concat/bn/linear"
top: "AttentionC_1/mask/down_sample/pool1_3x3_s2"
pooling_param {
pool: MAX
kernel_size: 3
stride: 2
}
}
layer {
name: "AttentionC_1/mask/down_sample/pool1_3x3_s2/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionC_1/mask/down_sample/pool1_3x3_s2"
top: "AttentionC_1/mask/down_sample/pool1_3x3_s2tmp"
}
layer {
name: "AttentionC_1/mask/down_sample/pool1_3x3_s2/bn_scale"
type: "Scale"
bottom: "AttentionC_1/mask/down_sample/pool1_3x3_s2tmp"
top: "AttentionC_1/mask/down_sample/pool1_3x3_s2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionC_1/mask/down_sample/pool1_3x3_s2/bn/relu"
type: "PReLU"
bottom: "AttentionC_1/mask/down_sample/pool1_3x3_s2/bn"
top: "AttentionC_1/mask/down_sample/pool1_3x3_s2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionC_1/mask/down_sample/pool1_3x3_s2/bn"
top: "AttentionC_1/mask/down_sample/res1_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionC_1/mask/down_sample/res1_1/branch1/conv1_1x1"
top: "AttentionC_1/mask/down_sample/res1_1/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionC_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionC_1/mask/down_sample/res1_1/branch1/conv1_1x1tmp"
top: "AttentionC_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionC_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn"
top: "AttentionC_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionC_1/mask/down_sample/res1_1/branch1/conv1_1x1/bn"
top: "AttentionC_1/mask/down_sample/res1_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionC_1/mask/down_sample/res1_1/branch1/conv2_3x3"
top: "AttentionC_1/mask/down_sample/res1_1/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionC_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionC_1/mask/down_sample/res1_1/branch1/conv2_3x3tmp"
top: "AttentionC_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionC_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn"
top: "AttentionC_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionC_1/mask/down_sample/res1_1/branch1/conv2_3x3/bn"
top: "AttentionC_1/mask/down_sample/res1_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_1"
type: "Eltwise"
bottom: "AttentionC_1/mask/down_sample/res1_1/branch1/conv3_1x1"
bottom: "AttentionC_1/mask/down_sample/pool1_3x3_s2"
top: "AttentionC_1/mask/down_sample/res1_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionC_1/mask/down_sample/res1_1"
top: "AttentionC_1/mask/down_sample/res1_1tmp"
}
layer {
name: "AttentionC_1/mask/down_sample/res1_1/bn_scale"
type: "Scale"
bottom: "AttentionC_1/mask/down_sample/res1_1tmp"
top: "AttentionC_1/mask/down_sample/res1_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_1/bn/relu"
type: "PReLU"
bottom: "AttentionC_1/mask/down_sample/res1_1/bn"
top: "AttentionC_1/mask/down_sample/res1_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_2/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionC_1/mask/down_sample/res1_1/bn"
top: "AttentionC_1/mask/down_sample/res1_2/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_2/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionC_1/mask/down_sample/res1_2/branch1/conv1_1x1"
top: "AttentionC_1/mask/down_sample/res1_2/branch1/conv1_1x1tmp"
}
layer {
name: "AttentionC_1/mask/down_sample/res1_2/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "AttentionC_1/mask/down_sample/res1_2/branch1/conv1_1x1tmp"
top: "AttentionC_1/mask/down_sample/res1_2/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_2/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "AttentionC_1/mask/down_sample/res1_2/branch1/conv1_1x1/bn"
top: "AttentionC_1/mask/down_sample/res1_2/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_2/branch1/conv2_3x3"
type: "Convolution"
bottom: "AttentionC_1/mask/down_sample/res1_2/branch1/conv1_1x1/bn"
top: "AttentionC_1/mask/down_sample/res1_2/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 32
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_2/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionC_1/mask/down_sample/res1_2/branch1/conv2_3x3"
top: "AttentionC_1/mask/down_sample/res1_2/branch1/conv2_3x3tmp"
}
layer {
name: "AttentionC_1/mask/down_sample/res1_2/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "AttentionC_1/mask/down_sample/res1_2/branch1/conv2_3x3tmp"
top: "AttentionC_1/mask/down_sample/res1_2/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_2/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "AttentionC_1/mask/down_sample/res1_2/branch1/conv2_3x3/bn"
top: "AttentionC_1/mask/down_sample/res1_2/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_2/branch1/conv3_1x1"
type: "Convolution"
bottom: "AttentionC_1/mask/down_sample/res1_2/branch1/conv2_3x3/bn"
top: "AttentionC_1/mask/down_sample/res1_2/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionC_1/mask/down_sample/res1_2"
type: "Eltwise"
bottom: "AttentionC_1/mask/down_sample/res1_2/branch1/conv3_1x1"
bottom: "AttentionC_1/mask/down_sample/res1_1"
top: "AttentionC_1/mask/down_sample/res1_2"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionC_1/mask/up_sample/interp_1"
type: "Interp"
bottom: "AttentionC_1/mask/down_sample/res1_2"
bottom: "res3_2/concat/bn/linear"
top: "AttentionC_1/mask/up_sample/interp_1"
}
layer {
name: "AttentionC_1/mask/up_sample/interp_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionC_1/mask/up_sample/interp_1"
top: "AttentionC_1/mask/up_sample/interp_1tmp"
}
layer {
name: "AttentionC_1/mask/up_sample/interp_1/bn_scale"
type: "Scale"
bottom: "AttentionC_1/mask/up_sample/interp_1tmp"
top: "AttentionC_1/mask/up_sample/interp_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionC_1/mask/up_sample/interp_1/bn/relu"
type: "PReLU"
bottom: "AttentionC_1/mask/up_sample/interp_1/bn"
top: "AttentionC_1/mask/up_sample/interp_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionC_1/mask/linear_1"
type: "Convolution"
bottom: "AttentionC_1/mask/up_sample/interp_1/bn"
top: "AttentionC_1/mask/linear_1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionC_1/mask/linear_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionC_1/mask/linear_1"
top: "AttentionC_1/mask/linear_1tmp"
}
layer {
name: "AttentionC_1/mask/linear_1/bn_scale"
type: "Scale"
bottom: "AttentionC_1/mask/linear_1tmp"
top: "AttentionC_1/mask/linear_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionC_1/mask/linear_1/bn/relu"
type: "PReLU"
bottom: "AttentionC_1/mask/linear_1/bn"
top: "AttentionC_1/mask/linear_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "AttentionC_1/mask/linear_2"
type: "Convolution"
bottom: "AttentionC_1/mask/linear_1/bn"
top: "AttentionC_1/mask/linear_2"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 128
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "AttentionC_1/mask"
type: "TanH"
bottom: "AttentionC_1/mask/linear_2"
top: "AttentionC_1/mask"
}
layer {
name: "AttentionC_1_residual"
type: "Eltwise"
bottom: "res3_2"
bottom: "AttentionC_1/mask"
top: "AttentionC_1_residual"
eltwise_param {
operation: PROD
}
}
layer {
name: "AttentionC_1"
type: "Eltwise"
bottom: "AttentionC_1_residual"
bottom: "res3_2"
top: "AttentionC_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "AttentionC_1/bn_batchmorn"
type: "BatchNorm"
bottom: "AttentionC_1"
top: "AttentionC_1tmp"
}
layer {
name: "AttentionC_1/bn_scale"
type: "Scale"
bottom: "AttentionC_1tmp"
top: "AttentionC_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "AttentionC_1/bn/relu"
type: "PReLU"
bottom: "AttentionC_1/bn"
top: "AttentionC_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res4_1/branch1/conv1_1x1"
type: "Convolution"
bottom: "AttentionC_1/bn"
top: "res4_1/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res4_1/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "res4_1/branch1/conv1_1x1"
top: "res4_1/branch1/conv1_1x1tmp"
}
layer {
name: "res4_1/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "res4_1/branch1/conv1_1x1tmp"
top: "res4_1/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res4_1/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "res4_1/branch1/conv1_1x1/bn"
top: "res4_1/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res4_1/branch1/conv2_3x3"
type: "Convolution"
bottom: "res4_1/branch1/conv1_1x1/bn"
top: "res4_1/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 2
weight_filler {
type: "msra"
}
}
}
layer {
name: "res4_1/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "res4_1/branch1/conv2_3x3"
top: "res4_1/branch1/conv2_3x3tmp"
}
layer {
name: "res4_1/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "res4_1/branch1/conv2_3x3tmp"
top: "res4_1/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res4_1/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "res4_1/branch1/conv2_3x3/bn"
top: "res4_1/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res4_1/branch1/conv3_1x1"
type: "Convolution"
bottom: "res4_1/branch1/conv2_3x3/bn"
top: "res4_1/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res4_1/branch2/conv1_1x1"
type: "Convolution"
bottom: "AttentionC_1/bn"
top: "res4_1/branch2/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 2
weight_filler {
type: "msra"
}
}
}
layer {
name: "res4_1"
type: "Eltwise"
bottom: "res4_1/branch2/conv1_1x1"
bottom: "res4_1/branch1/conv3_1x1"
top: "res4_1"
eltwise_param {
operation: SUM
}
}
layer {
name: "res4_1/bn_batchmorn"
type: "BatchNorm"
bottom: "res4_1"
top: "res4_1tmp"
}
layer {
name: "res4_1/bn_scale"
type: "Scale"
bottom: "res4_1tmp"
top: "res4_1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res4_1/bn/relu"
type: "PReLU"
bottom: "res4_1/bn"
top: "res4_1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res4_2/branch1/conv1_1x1"
type: "Convolution"
bottom: "res4_1/bn"
top: "res4_2/branch1/conv1_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res4_2/branch1/conv1_1x1/bn_batchmorn"
type: "BatchNorm"
bottom: "res4_2/branch1/conv1_1x1"
top: "res4_2/branch1/conv1_1x1tmp"
}
layer {
name: "res4_2/branch1/conv1_1x1/bn_scale"
type: "Scale"
bottom: "res4_2/branch1/conv1_1x1tmp"
top: "res4_2/branch1/conv1_1x1/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res4_2/branch1/conv1_1x1/bn/relu"
type: "PReLU"
bottom: "res4_2/branch1/conv1_1x1/bn"
top: "res4_2/branch1/conv1_1x1/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res4_2/branch1/conv2_3x3"
type: "Convolution"
bottom: "res4_2/branch1/conv1_1x1/bn"
top: "res4_2/branch1/conv2_3x3"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 64
bias_term: false
pad: 1
kernel_size: 3
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res4_2/branch1/conv2_3x3/bn_batchmorn"
type: "BatchNorm"
bottom: "res4_2/branch1/conv2_3x3"
top: "res4_2/branch1/conv2_3x3tmp"
}
layer {
name: "res4_2/branch1/conv2_3x3/bn_scale"
type: "Scale"
bottom: "res4_2/branch1/conv2_3x3tmp"
top: "res4_2/branch1/conv2_3x3/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res4_2/branch1/conv2_3x3/bn/relu"
type: "PReLU"
bottom: "res4_2/branch1/conv2_3x3/bn"
top: "res4_2/branch1/conv2_3x3/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "res4_2/branch1/conv3_1x1"
type: "Convolution"
bottom: "res4_2/branch1/conv2_3x3/bn"
top: "res4_2/branch1/conv3_1x1"
param {
lr_mult: 0
decay_mult: 1
}
convolution_param {
num_output: 256
bias_term: false
pad: 0
kernel_size: 1
stride: 1
weight_filler {
type: "msra"
}
}
}
layer {
name: "res4_2"
type: "Eltwise"
bottom: "res4_2/branch1/conv3_1x1"
bottom: "res4_1"
top: "res4_2"
eltwise_param {
operation: SUM
}
}
layer {
name: "res4_2/bn_batchmorn"
type: "BatchNorm"
bottom: "res4_2"
top: "res4_2tmp"
}
layer {
name: "res4_2/bn_scale"
type: "Scale"
bottom: "res4_2tmp"
top: "res4_2/bn"
scale_param {
bias_term: true
}
}
layer {
name: "res4_2/bn/relu"
type: "PReLU"
bottom: "res4_2/bn"
top: "res4_2/bn"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "ip1"
type: "InnerProduct"
bottom: "res4_2/bn"
top: "ip1"
param {
lr_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
inner_product_param {
num_output: 256
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu_ip1"
type: "PReLU"
bottom: "ip1"
top: "ip1"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "ip2"
type: "InnerProduct"
bottom: "ip1"
top: "ip2"
param {
lr_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
inner_product_param {
num_output: 256
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "relu_ip2"
type: "PReLU"
bottom: "ip2"
top: "ip2"
param {
lr_mult: 0
decay_mult: 0
}
}
layer {
name: "ip3"
type: "InnerProduct"
bottom: "ip2"
top: "ip3"
param {
lr_mult: 0
}
param {
lr_mult: 0
decay_mult: 0
}
inner_product_param {
num_output: 196
weight_filler {
type: "msra"
}
bias_filler {
type: "constant"
}
}
}
layer {
name: "result"
type: "Eltwise"
bottom: "ip3"
bottom: "ip3"
top: "result"
eltwise_param {
operation: SUM
coeff: 0.5
coeff: 0.5
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment