Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

training loss is strange,for openpose body_25 model training #226

Open
oujieww opened this issue Apr 28, 2019 · 9 comments
Open

training loss is strange,for openpose body_25 model training #226

oujieww opened this issue Apr 28, 2019 · 9 comments

Comments

@oujieww
Copy link

oujieww commented Apr 28, 2019

I use that model to train my dataset ,train.prototxt as :
layer {
name: "data"
type: "CPMData"
top: "data"
top: "label"
data_param {
source: "/home/oujie/Desktop/Realtime_Multi-Person_Pose_Estimation/training/dataset/lmdb/"
batch_size: 8
backend: LMDB
}
cpm_transform_param {
stride: 8
max_rotate_degree: 40
visualize: false
crop_size_x: 368
crop_size_y: 368
scale_prob: 1
scale_min: 0.5
scale_max: 1.1
target_dist: 0.6
center_perterb_max: 40
do_clahe: false
num_parts: 58
np_in_lmdb: 19
}
}
layer {
name: "vec_weight"
type: "Slice"
bottom: "label"
top: "vec_weight"
top: "heat_weight"
top: "vec_temp"
top: "heat_temp"
slice_param {
slice_point: 38
slice_point: 59
slice_point: 97
axis: 1
}
}
layer {
name: "label_vec"
type: "Eltwise"
bottom: "vec_weight"
bottom: "vec_temp"
top: "label_vec"
eltwise_param {
operation: PROD
}
}
layer {
name: "label_heat"
type: "Eltwise"
bottom: "heat_weight"
bottom: "heat_temp"
top: "label_heat"
eltwise_param {
operation: PROD
}
}
layer {
name: "image"
type: "Slice"
bottom: "data"
top: "image"
top: "center_map"
slice_param {
slice_point: 3
axis: 1
}
}
layer {
name: "silence2"
type: "Silence"
bottom: "center_map"
}
layer {
name: "conv1_1"
type: "Convolution"
bottom: "image"
top: "conv1_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
}
}
layer {
name: "relu1_1"
type: "ReLU"
bottom: "conv1_1"
top: "conv1_1"
}
layer {
name: "conv1_2"
type: "Convolution"
bottom: "conv1_1"
top: "conv1_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 64
pad: 1
kernel_size: 3
}
}
layer {
name: "relu1_2"
type: "ReLU"
bottom: "conv1_2"
top: "conv1_2"
}
layer {
name: "pool1_stage1"
type: "Pooling"
bottom: "conv1_2"
top: "pool1_stage1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv2_1"
type: "Convolution"
bottom: "pool1_stage1"
top: "conv2_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "relu2_1"
type: "ReLU"
bottom: "conv2_1"
top: "conv2_1"
}
layer {
name: "conv2_2"
type: "Convolution"
bottom: "conv2_1"
top: "conv2_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "relu2_2"
type: "ReLU"
bottom: "conv2_2"
top: "conv2_2"
}
layer {
name: "pool2_stage1"
type: "Pooling"
bottom: "conv2_2"
top: "pool2_stage1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv3_1"
type: "Convolution"
bottom: "pool2_stage1"
top: "conv3_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
}
}
layer {
name: "relu3_1"
type: "ReLU"
bottom: "conv3_1"
top: "conv3_1"
}
layer {
name: "conv3_2"
type: "Convolution"
bottom: "conv3_1"
top: "conv3_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
}
}
layer {
name: "relu3_2"
type: "ReLU"
bottom: "conv3_2"
top: "conv3_2"
}
layer {
name: "conv3_3"
type: "Convolution"
bottom: "conv3_2"
top: "conv3_3"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
}
}
layer {
name: "relu3_3"
type: "ReLU"
bottom: "conv3_3"
top: "conv3_3"
}
layer {
name: "conv3_4"
type: "Convolution"
bottom: "conv3_3"
top: "conv3_4"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
}
}
layer {
name: "relu3_4"
type: "ReLU"
bottom: "conv3_4"
top: "conv3_4"
}
layer {
name: "pool3_stage1"
type: "Pooling"
bottom: "conv3_4"
top: "pool3_stage1"
pooling_param {
pool: MAX
kernel_size: 2
stride: 2
}
}
layer {
name: "conv4_1"
type: "Convolution"
bottom: "pool3_stage1"
top: "conv4_1"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
}
}
layer {
name: "relu4_1"
type: "ReLU"
bottom: "conv4_1"
top: "conv4_1"
}
layer {
name: "conv4_2"
type: "Convolution"
bottom: "conv4_1"
top: "conv4_2"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 1
kernel_size: 3
}
}
layer {
name: "prelu4_2"
type: "PReLU"
bottom: "conv4_2"
top: "conv4_2"
}
layer {
name: "conv4_3_CPM"
type: "Convolution"
bottom: "conv4_2"
top: "conv4_3_CPM"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 1
kernel_size: 3
}
}
layer {
name: "prelu4_3_CPM"
type: "PReLU"
bottom: "conv4_3_CPM"
top: "conv4_3_CPM"
}
layer {
name: "conv4_4_CPM"
type: "Convolution"
bottom: "conv4_3_CPM"
top: "conv4_4_CPM"
param {
lr_mult: 1.0
decay_mult: 1
}
param {
lr_mult: 2.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "prelu4_4_CPM"
type: "PReLU"
bottom: "conv4_4_CPM"
top: "conv4_4_CPM"
}
layer {
name: "Mconv1_stage0_L2_0"
type: "Convolution"
bottom: "conv4_4_CPM"
top: "Mconv1_stage0_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage0_L2_0"
type: "PReLU"
bottom: "Mconv1_stage0_L2_0"
top: "Mconv1_stage0_L2_0"
}
layer {
name: "Mconv1_stage0_L2_1"
type: "Convolution"
bottom: "Mconv1_stage0_L2_0"
top: "Mconv1_stage0_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage0_L2_1"
type: "PReLU"
bottom: "Mconv1_stage0_L2_1"
top: "Mconv1_stage0_L2_1"
}
layer {
name: "Mconv1_stage0_L2_2"
type: "Convolution"
bottom: "Mconv1_stage0_L2_1"
top: "Mconv1_stage0_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage0_L2_2"
type: "PReLU"
bottom: "Mconv1_stage0_L2_2"
top: "Mconv1_stage0_L2_2"
}
layer {
name: "Mconv1_stage0_L2_concat"
type: "Concat"
bottom: "Mconv1_stage0_L2_0"
bottom: "Mconv1_stage0_L2_1"
bottom: "Mconv1_stage0_L2_2"
top: "Mconv1_stage0_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv2_stage0_L2_0"
type: "Convolution"
bottom: "Mconv1_stage0_L2_concat"
top: "Mconv2_stage0_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage0_L2_0"
type: "PReLU"
bottom: "Mconv2_stage0_L2_0"
top: "Mconv2_stage0_L2_0"
}
layer {
name: "Mconv2_stage0_L2_1"
type: "Convolution"
bottom: "Mconv2_stage0_L2_0"
top: "Mconv2_stage0_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage0_L2_1"
type: "PReLU"
bottom: "Mconv2_stage0_L2_1"
top: "Mconv2_stage0_L2_1"
}
layer {
name: "Mconv2_stage0_L2_2"
type: "Convolution"
bottom: "Mconv2_stage0_L2_1"
top: "Mconv2_stage0_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage0_L2_2"
type: "PReLU"
bottom: "Mconv2_stage0_L2_2"
top: "Mconv2_stage0_L2_2"
}
layer {
name: "Mconv2_stage0_L2_concat"
type: "Concat"
bottom: "Mconv2_stage0_L2_0"
bottom: "Mconv2_stage0_L2_1"
bottom: "Mconv2_stage0_L2_2"
top: "Mconv2_stage0_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv3_stage0_L2_0"
type: "Convolution"
bottom: "Mconv2_stage0_L2_concat"
top: "Mconv3_stage0_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage0_L2_0"
type: "PReLU"
bottom: "Mconv3_stage0_L2_0"
top: "Mconv3_stage0_L2_0"
}
layer {
name: "Mconv3_stage0_L2_1"
type: "Convolution"
bottom: "Mconv3_stage0_L2_0"
top: "Mconv3_stage0_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage0_L2_1"
type: "PReLU"
bottom: "Mconv3_stage0_L2_1"
top: "Mconv3_stage0_L2_1"
}
layer {
name: "Mconv3_stage0_L2_2"
type: "Convolution"
bottom: "Mconv3_stage0_L2_1"
top: "Mconv3_stage0_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage0_L2_2"
type: "PReLU"
bottom: "Mconv3_stage0_L2_2"
top: "Mconv3_stage0_L2_2"
}
layer {
name: "Mconv3_stage0_L2_concat"
type: "Concat"
bottom: "Mconv3_stage0_L2_0"
bottom: "Mconv3_stage0_L2_1"
bottom: "Mconv3_stage0_L2_2"
top: "Mconv3_stage0_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv4_stage0_L2_0"
type: "Convolution"
bottom: "Mconv3_stage0_L2_concat"
top: "Mconv4_stage0_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage0_L2_0"
type: "PReLU"
bottom: "Mconv4_stage0_L2_0"
top: "Mconv4_stage0_L2_0"
}
layer {
name: "Mconv4_stage0_L2_1"
type: "Convolution"
bottom: "Mconv4_stage0_L2_0"
top: "Mconv4_stage0_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage0_L2_1"
type: "PReLU"
bottom: "Mconv4_stage0_L2_1"
top: "Mconv4_stage0_L2_1"
}
layer {
name: "Mconv4_stage0_L2_2"
type: "Convolution"
bottom: "Mconv4_stage0_L2_1"
top: "Mconv4_stage0_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage0_L2_2"
type: "PReLU"
bottom: "Mconv4_stage0_L2_2"
top: "Mconv4_stage0_L2_2"
}
layer {
name: "Mconv4_stage0_L2_concat"
type: "Concat"
bottom: "Mconv4_stage0_L2_0"
bottom: "Mconv4_stage0_L2_1"
bottom: "Mconv4_stage0_L2_2"
top: "Mconv4_stage0_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv5_stage0_L2_0"
type: "Convolution"
bottom: "Mconv4_stage0_L2_concat"
top: "Mconv5_stage0_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage0_L2_0"
type: "PReLU"
bottom: "Mconv5_stage0_L2_0"
top: "Mconv5_stage0_L2_0"
}
layer {
name: "Mconv5_stage0_L2_1"
type: "Convolution"
bottom: "Mconv5_stage0_L2_0"
top: "Mconv5_stage0_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage0_L2_1"
type: "PReLU"
bottom: "Mconv5_stage0_L2_1"
top: "Mconv5_stage0_L2_1"
}
layer {
name: "Mconv5_stage0_L2_2"
type: "Convolution"
bottom: "Mconv5_stage0_L2_1"
top: "Mconv5_stage0_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage0_L2_2"
type: "PReLU"
bottom: "Mconv5_stage0_L2_2"
top: "Mconv5_stage0_L2_2"
}
layer {
name: "Mconv5_stage0_L2_concat"
type: "Concat"
bottom: "Mconv5_stage0_L2_0"
bottom: "Mconv5_stage0_L2_1"
bottom: "Mconv5_stage0_L2_2"
top: "Mconv5_stage0_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv6_stage0_L2"
type: "Convolution"
bottom: "Mconv5_stage0_L2_concat"
top: "Mconv6_stage0_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 0
kernel_size: 1
}
}
layer {
name: "Mprelu6_stage0_L2"
type: "PReLU"
bottom: "Mconv6_stage0_L2"
top: "Mconv6_stage0_L2"
}
layer {
name: "Mconv7_stage0_L2"
type: "Convolution"
bottom: "Mconv6_stage0_L2"
top: "Mconv7_stage0_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 38
pad: 0
kernel_size: 1
}
}
###loss#####
layer {
name: "weight_stage0_L2"
type: "Eltwise"
bottom: "Mconv7_stage0_L2"
bottom: "vec_weight"
top: "weight_stage0_L2"
eltwise_param {
operation: PROD
}
}
layer {
name: "loss_stage0_L2"
type: "EuclideanLoss"
bottom: "weight_stage0_L2"
bottom: "label_vec"
top: "loss_stage0_L2"
loss_weight: 1
}

####loss###########
layer {
name: "concat_stage1_L2"
type: "Concat"
bottom: "conv4_4_CPM"
bottom: "Mconv7_stage0_L2"
top: "concat_stage1_L2"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage1_L2_0"
type: "Convolution"
bottom: "concat_stage1_L2"
top: "Mconv1_stage1_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage1_L2_0"
type: "PReLU"
bottom: "Mconv1_stage1_L2_0"
top: "Mconv1_stage1_L2_0"
}
layer {
name: "Mconv1_stage1_L2_1"
type: "Convolution"
bottom: "Mconv1_stage1_L2_0"
top: "Mconv1_stage1_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage1_L2_1"
type: "PReLU"
bottom: "Mconv1_stage1_L2_1"
top: "Mconv1_stage1_L2_1"
}
layer {
name: "Mconv1_stage1_L2_2"
type: "Convolution"
bottom: "Mconv1_stage1_L2_1"
top: "Mconv1_stage1_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage1_L2_2"
type: "PReLU"
bottom: "Mconv1_stage1_L2_2"
top: "Mconv1_stage1_L2_2"
}
layer {
name: "Mconv1_stage1_L2_concat"
type: "Concat"
bottom: "Mconv1_stage1_L2_0"
bottom: "Mconv1_stage1_L2_1"
bottom: "Mconv1_stage1_L2_2"
top: "Mconv1_stage1_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv2_stage1_L2_0"
type: "Convolution"
bottom: "Mconv1_stage1_L2_concat"
top: "Mconv2_stage1_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage1_L2_0"
type: "PReLU"
bottom: "Mconv2_stage1_L2_0"
top: "Mconv2_stage1_L2_0"
}
layer {
name: "Mconv2_stage1_L2_1"
type: "Convolution"
bottom: "Mconv2_stage1_L2_0"
top: "Mconv2_stage1_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage1_L2_1"
type: "PReLU"
bottom: "Mconv2_stage1_L2_1"
top: "Mconv2_stage1_L2_1"
}
layer {
name: "Mconv2_stage1_L2_2"
type: "Convolution"
bottom: "Mconv2_stage1_L2_1"
top: "Mconv2_stage1_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage1_L2_2"
type: "PReLU"
bottom: "Mconv2_stage1_L2_2"
top: "Mconv2_stage1_L2_2"
}
layer {
name: "Mconv2_stage1_L2_concat"
type: "Concat"
bottom: "Mconv2_stage1_L2_0"
bottom: "Mconv2_stage1_L2_1"
bottom: "Mconv2_stage1_L2_2"
top: "Mconv2_stage1_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv3_stage1_L2_0"
type: "Convolution"
bottom: "Mconv2_stage1_L2_concat"
top: "Mconv3_stage1_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage1_L2_0"
type: "PReLU"
bottom: "Mconv3_stage1_L2_0"
top: "Mconv3_stage1_L2_0"
}
layer {
name: "Mconv3_stage1_L2_1"
type: "Convolution"
bottom: "Mconv3_stage1_L2_0"
top: "Mconv3_stage1_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage1_L2_1"
type: "PReLU"
bottom: "Mconv3_stage1_L2_1"
top: "Mconv3_stage1_L2_1"
}
layer {
name: "Mconv3_stage1_L2_2"
type: "Convolution"
bottom: "Mconv3_stage1_L2_1"
top: "Mconv3_stage1_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage1_L2_2"
type: "PReLU"
bottom: "Mconv3_stage1_L2_2"
top: "Mconv3_stage1_L2_2"
}
layer {
name: "Mconv3_stage1_L2_concat"
type: "Concat"
bottom: "Mconv3_stage1_L2_0"
bottom: "Mconv3_stage1_L2_1"
bottom: "Mconv3_stage1_L2_2"
top: "Mconv3_stage1_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv4_stage1_L2_0"
type: "Convolution"
bottom: "Mconv3_stage1_L2_concat"
top: "Mconv4_stage1_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage1_L2_0"
type: "PReLU"
bottom: "Mconv4_stage1_L2_0"
top: "Mconv4_stage1_L2_0"
}
layer {
name: "Mconv4_stage1_L2_1"
type: "Convolution"
bottom: "Mconv4_stage1_L2_0"
top: "Mconv4_stage1_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage1_L2_1"
type: "PReLU"
bottom: "Mconv4_stage1_L2_1"
top: "Mconv4_stage1_L2_1"
}
layer {
name: "Mconv4_stage1_L2_2"
type: "Convolution"
bottom: "Mconv4_stage1_L2_1"
top: "Mconv4_stage1_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage1_L2_2"
type: "PReLU"
bottom: "Mconv4_stage1_L2_2"
top: "Mconv4_stage1_L2_2"
}
layer {
name: "Mconv4_stage1_L2_concat"
type: "Concat"
bottom: "Mconv4_stage1_L2_0"
bottom: "Mconv4_stage1_L2_1"
bottom: "Mconv4_stage1_L2_2"
top: "Mconv4_stage1_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv5_stage1_L2_0"
type: "Convolution"
bottom: "Mconv4_stage1_L2_concat"
top: "Mconv5_stage1_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage1_L2_0"
type: "PReLU"
bottom: "Mconv5_stage1_L2_0"
top: "Mconv5_stage1_L2_0"
}
layer {
name: "Mconv5_stage1_L2_1"
type: "Convolution"
bottom: "Mconv5_stage1_L2_0"
top: "Mconv5_stage1_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage1_L2_1"
type: "PReLU"
bottom: "Mconv5_stage1_L2_1"
top: "Mconv5_stage1_L2_1"
}
layer {
name: "Mconv5_stage1_L2_2"
type: "Convolution"
bottom: "Mconv5_stage1_L2_1"
top: "Mconv5_stage1_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage1_L2_2"
type: "PReLU"
bottom: "Mconv5_stage1_L2_2"
top: "Mconv5_stage1_L2_2"
}
layer {
name: "Mconv5_stage1_L2_concat"
type: "Concat"
bottom: "Mconv5_stage1_L2_0"
bottom: "Mconv5_stage1_L2_1"
bottom: "Mconv5_stage1_L2_2"
top: "Mconv5_stage1_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv6_stage1_L2"
type: "Convolution"
bottom: "Mconv5_stage1_L2_concat"
top: "Mconv6_stage1_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
}
}
layer {
name: "Mprelu6_stage1_L2"
type: "PReLU"
bottom: "Mconv6_stage1_L2"
top: "Mconv6_stage1_L2"
}
layer {
name: "Mconv7_stage1_L2"
type: "Convolution"
bottom: "Mconv6_stage1_L2"
top: "Mconv7_stage1_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 38
pad: 0
kernel_size: 1
}
}
###loss#####
layer {
name: "weight_stage1_L2"
type: "Eltwise"
bottom: "Mconv7_stage1_L2"
bottom: "vec_weight"
top: "weight_stage1_L2"
eltwise_param {
operation: PROD
}
}
layer {
name: "loss_stage1_L2"
type: "EuclideanLoss"
bottom: "weight_stage1_L2"
bottom: "label_vec"
top: "loss_stage1_L2"
loss_weight: 1
}

####loss###########
layer {
name: "concat_stage2_L2"
type: "Concat"
bottom: "conv4_4_CPM"
bottom: "Mconv7_stage1_L2"
top: "concat_stage2_L2"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage2_L2_0"
type: "Convolution"
bottom: "concat_stage2_L2"
top: "Mconv1_stage2_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage2_L2_0"
type: "PReLU"
bottom: "Mconv1_stage2_L2_0"
top: "Mconv1_stage2_L2_0"
}
layer {
name: "Mconv1_stage2_L2_1"
type: "Convolution"
bottom: "Mconv1_stage2_L2_0"
top: "Mconv1_stage2_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage2_L2_1"
type: "PReLU"
bottom: "Mconv1_stage2_L2_1"
top: "Mconv1_stage2_L2_1"
}
layer {
name: "Mconv1_stage2_L2_2"
type: "Convolution"
bottom: "Mconv1_stage2_L2_1"
top: "Mconv1_stage2_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage2_L2_2"
type: "PReLU"
bottom: "Mconv1_stage2_L2_2"
top: "Mconv1_stage2_L2_2"
}
layer {
name: "Mconv1_stage2_L2_concat"
type: "Concat"
bottom: "Mconv1_stage2_L2_0"
bottom: "Mconv1_stage2_L2_1"
bottom: "Mconv1_stage2_L2_2"
top: "Mconv1_stage2_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv2_stage2_L2_0"
type: "Convolution"
bottom: "Mconv1_stage2_L2_concat"
top: "Mconv2_stage2_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage2_L2_0"
type: "PReLU"
bottom: "Mconv2_stage2_L2_0"
top: "Mconv2_stage2_L2_0"
}
layer {
name: "Mconv2_stage2_L2_1"
type: "Convolution"
bottom: "Mconv2_stage2_L2_0"
top: "Mconv2_stage2_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage2_L2_1"
type: "PReLU"
bottom: "Mconv2_stage2_L2_1"
top: "Mconv2_stage2_L2_1"
}
layer {
name: "Mconv2_stage2_L2_2"
type: "Convolution"
bottom: "Mconv2_stage2_L2_1"
top: "Mconv2_stage2_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage2_L2_2"
type: "PReLU"
bottom: "Mconv2_stage2_L2_2"
top: "Mconv2_stage2_L2_2"
}
layer {
name: "Mconv2_stage2_L2_concat"
type: "Concat"
bottom: "Mconv2_stage2_L2_0"
bottom: "Mconv2_stage2_L2_1"
bottom: "Mconv2_stage2_L2_2"
top: "Mconv2_stage2_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv3_stage2_L2_0"
type: "Convolution"
bottom: "Mconv2_stage2_L2_concat"
top: "Mconv3_stage2_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage2_L2_0"
type: "PReLU"
bottom: "Mconv3_stage2_L2_0"
top: "Mconv3_stage2_L2_0"
}
layer {
name: "Mconv3_stage2_L2_1"
type: "Convolution"
bottom: "Mconv3_stage2_L2_0"
top: "Mconv3_stage2_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage2_L2_1"
type: "PReLU"
bottom: "Mconv3_stage2_L2_1"
top: "Mconv3_stage2_L2_1"
}
layer {
name: "Mconv3_stage2_L2_2"
type: "Convolution"
bottom: "Mconv3_stage2_L2_1"
top: "Mconv3_stage2_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage2_L2_2"
type: "PReLU"
bottom: "Mconv3_stage2_L2_2"
top: "Mconv3_stage2_L2_2"
}
layer {
name: "Mconv3_stage2_L2_concat"
type: "Concat"
bottom: "Mconv3_stage2_L2_0"
bottom: "Mconv3_stage2_L2_1"
bottom: "Mconv3_stage2_L2_2"
top: "Mconv3_stage2_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv4_stage2_L2_0"
type: "Convolution"
bottom: "Mconv3_stage2_L2_concat"
top: "Mconv4_stage2_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage2_L2_0"
type: "PReLU"
bottom: "Mconv4_stage2_L2_0"
top: "Mconv4_stage2_L2_0"
}
layer {
name: "Mconv4_stage2_L2_1"
type: "Convolution"
bottom: "Mconv4_stage2_L2_0"
top: "Mconv4_stage2_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage2_L2_1"
type: "PReLU"
bottom: "Mconv4_stage2_L2_1"
top: "Mconv4_stage2_L2_1"
}
layer {
name: "Mconv4_stage2_L2_2"
type: "Convolution"
bottom: "Mconv4_stage2_L2_1"
top: "Mconv4_stage2_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage2_L2_2"
type: "PReLU"
bottom: "Mconv4_stage2_L2_2"
top: "Mconv4_stage2_L2_2"
}
layer {
name: "Mconv4_stage2_L2_concat"
type: "Concat"
bottom: "Mconv4_stage2_L2_0"
bottom: "Mconv4_stage2_L2_1"
bottom: "Mconv4_stage2_L2_2"
top: "Mconv4_stage2_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv5_stage2_L2_0"
type: "Convolution"
bottom: "Mconv4_stage2_L2_concat"
top: "Mconv5_stage2_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage2_L2_0"
type: "PReLU"
bottom: "Mconv5_stage2_L2_0"
top: "Mconv5_stage2_L2_0"
}
layer {
name: "Mconv5_stage2_L2_1"
type: "Convolution"
bottom: "Mconv5_stage2_L2_0"
top: "Mconv5_stage2_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage2_L2_1"
type: "PReLU"
bottom: "Mconv5_stage2_L2_1"
top: "Mconv5_stage2_L2_1"
}
layer {
name: "Mconv5_stage2_L2_2"
type: "Convolution"
bottom: "Mconv5_stage2_L2_1"
top: "Mconv5_stage2_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage2_L2_2"
type: "PReLU"
bottom: "Mconv5_stage2_L2_2"
top: "Mconv5_stage2_L2_2"
}
layer {
name: "Mconv5_stage2_L2_concat"
type: "Concat"
bottom: "Mconv5_stage2_L2_0"
bottom: "Mconv5_stage2_L2_1"
bottom: "Mconv5_stage2_L2_2"
top: "Mconv5_stage2_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv6_stage2_L2"
type: "Convolution"
bottom: "Mconv5_stage2_L2_concat"
top: "Mconv6_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
}
}
layer {
name: "Mprelu6_stage2_L2"
type: "PReLU"
bottom: "Mconv6_stage2_L2"
top: "Mconv6_stage2_L2"
}
layer {
name: "Mconv7_stage2_L2"
type: "Convolution"
bottom: "Mconv6_stage2_L2"
top: "Mconv7_stage2_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 38
pad: 0
kernel_size: 1
}
}
###loss#####
layer {
name: "weight_stage2_L2"
type: "Eltwise"
bottom: "Mconv7_stage2_L2"
bottom: "vec_weight"
top: "weight_stage2_L2"
eltwise_param {
operation: PROD
}
}
layer {
name: "loss_stage2_L2"
type: "EuclideanLoss"
bottom: "weight_stage2_L2"
bottom: "label_vec"
top: "loss_stage2_L2"
loss_weight: 1
}

####loss###########
layer {
name: "concat_stage3_L2"
type: "Concat"
bottom: "conv4_4_CPM"
bottom: "Mconv7_stage2_L2"
top: "concat_stage3_L2"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage3_L2_0"
type: "Convolution"
bottom: "concat_stage3_L2"
top: "Mconv1_stage3_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage3_L2_0"
type: "PReLU"
bottom: "Mconv1_stage3_L2_0"
top: "Mconv1_stage3_L2_0"
}
layer {
name: "Mconv1_stage3_L2_1"
type: "Convolution"
bottom: "Mconv1_stage3_L2_0"
top: "Mconv1_stage3_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage3_L2_1"
type: "PReLU"
bottom: "Mconv1_stage3_L2_1"
top: "Mconv1_stage3_L2_1"
}
layer {
name: "Mconv1_stage3_L2_2"
type: "Convolution"
bottom: "Mconv1_stage3_L2_1"
top: "Mconv1_stage3_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage3_L2_2"
type: "PReLU"
bottom: "Mconv1_stage3_L2_2"
top: "Mconv1_stage3_L2_2"
}
layer {
name: "Mconv1_stage3_L2_concat"
type: "Concat"
bottom: "Mconv1_stage3_L2_0"
bottom: "Mconv1_stage3_L2_1"
bottom: "Mconv1_stage3_L2_2"
top: "Mconv1_stage3_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv2_stage3_L2_0"
type: "Convolution"
bottom: "Mconv1_stage3_L2_concat"
top: "Mconv2_stage3_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage3_L2_0"
type: "PReLU"
bottom: "Mconv2_stage3_L2_0"
top: "Mconv2_stage3_L2_0"
}
layer {
name: "Mconv2_stage3_L2_1"
type: "Convolution"
bottom: "Mconv2_stage3_L2_0"
top: "Mconv2_stage3_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage3_L2_1"
type: "PReLU"
bottom: "Mconv2_stage3_L2_1"
top: "Mconv2_stage3_L2_1"
}
layer {
name: "Mconv2_stage3_L2_2"
type: "Convolution"
bottom: "Mconv2_stage3_L2_1"
top: "Mconv2_stage3_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage3_L2_2"
type: "PReLU"
bottom: "Mconv2_stage3_L2_2"
top: "Mconv2_stage3_L2_2"
}
layer {
name: "Mconv2_stage3_L2_concat"
type: "Concat"
bottom: "Mconv2_stage3_L2_0"
bottom: "Mconv2_stage3_L2_1"
bottom: "Mconv2_stage3_L2_2"
top: "Mconv2_stage3_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv3_stage3_L2_0"
type: "Convolution"
bottom: "Mconv2_stage3_L2_concat"
top: "Mconv3_stage3_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage3_L2_0"
type: "PReLU"
bottom: "Mconv3_stage3_L2_0"
top: "Mconv3_stage3_L2_0"
}
layer {
name: "Mconv3_stage3_L2_1"
type: "Convolution"
bottom: "Mconv3_stage3_L2_0"
top: "Mconv3_stage3_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage3_L2_1"
type: "PReLU"
bottom: "Mconv3_stage3_L2_1"
top: "Mconv3_stage3_L2_1"
}
layer {
name: "Mconv3_stage3_L2_2"
type: "Convolution"
bottom: "Mconv3_stage3_L2_1"
top: "Mconv3_stage3_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage3_L2_2"
type: "PReLU"
bottom: "Mconv3_stage3_L2_2"
top: "Mconv3_stage3_L2_2"
}
layer {
name: "Mconv3_stage3_L2_concat"
type: "Concat"
bottom: "Mconv3_stage3_L2_0"
bottom: "Mconv3_stage3_L2_1"
bottom: "Mconv3_stage3_L2_2"
top: "Mconv3_stage3_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv4_stage3_L2_0"
type: "Convolution"
bottom: "Mconv3_stage3_L2_concat"
top: "Mconv4_stage3_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage3_L2_0"
type: "PReLU"
bottom: "Mconv4_stage3_L2_0"
top: "Mconv4_stage3_L2_0"
}
layer {
name: "Mconv4_stage3_L2_1"
type: "Convolution"
bottom: "Mconv4_stage3_L2_0"
top: "Mconv4_stage3_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage3_L2_1"
type: "PReLU"
bottom: "Mconv4_stage3_L2_1"
top: "Mconv4_stage3_L2_1"
}
layer {
name: "Mconv4_stage3_L2_2"
type: "Convolution"
bottom: "Mconv4_stage3_L2_1"
top: "Mconv4_stage3_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage3_L2_2"
type: "PReLU"
bottom: "Mconv4_stage3_L2_2"
top: "Mconv4_stage3_L2_2"
}
layer {
name: "Mconv4_stage3_L2_concat"
type: "Concat"
bottom: "Mconv4_stage3_L2_0"
bottom: "Mconv4_stage3_L2_1"
bottom: "Mconv4_stage3_L2_2"
top: "Mconv4_stage3_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv5_stage3_L2_0"
type: "Convolution"
bottom: "Mconv4_stage3_L2_concat"
top: "Mconv5_stage3_L2_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage3_L2_0"
type: "PReLU"
bottom: "Mconv5_stage3_L2_0"
top: "Mconv5_stage3_L2_0"
}
layer {
name: "Mconv5_stage3_L2_1"
type: "Convolution"
bottom: "Mconv5_stage3_L2_0"
top: "Mconv5_stage3_L2_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage3_L2_1"
type: "PReLU"
bottom: "Mconv5_stage3_L2_1"
top: "Mconv5_stage3_L2_1"
}
layer {
name: "Mconv5_stage3_L2_2"
type: "Convolution"
bottom: "Mconv5_stage3_L2_1"
top: "Mconv5_stage3_L2_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage3_L2_2"
type: "PReLU"
bottom: "Mconv5_stage3_L2_2"
top: "Mconv5_stage3_L2_2"
}
layer {
name: "Mconv5_stage3_L2_concat"
type: "Concat"
bottom: "Mconv5_stage3_L2_0"
bottom: "Mconv5_stage3_L2_1"
bottom: "Mconv5_stage3_L2_2"
top: "Mconv5_stage3_L2_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv6_stage3_L2"
type: "Convolution"
bottom: "Mconv5_stage3_L2_concat"
top: "Mconv6_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
}
}
layer {
name: "Mprelu6_stage3_L2"
type: "PReLU"
bottom: "Mconv6_stage3_L2"
top: "Mconv6_stage3_L2"
}
layer {
name: "Mconv7_stage3_L2"
type: "Convolution"
bottom: "Mconv6_stage3_L2"
top: "Mconv7_stage3_L2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 38
pad: 0
kernel_size: 1
}
}
###loss#####
layer {
name: "weight_stage3_L2"
type: "Eltwise"
bottom: "Mconv7_stage3_L2"
bottom: "vec_weight"
top: "weight_stage3_L2"
eltwise_param {
operation: PROD
}
}
layer {
name: "loss_stage3_L2"
type: "EuclideanLoss"
bottom: "weight_stage3_L2"
bottom: "label_vec"
top: "loss_stage3_L2"
loss_weight: 1
}

####loss###########
layer {
name: "concat_stage0_L1"
type: "Concat"
bottom: "conv4_4_CPM"
bottom: "Mconv7_stage3_L2"
top: "concat_stage0_L1"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage0_L1_0"
type: "Convolution"
bottom: "concat_stage0_L1"
top: "Mconv1_stage0_L1_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage0_L1_0"
type: "PReLU"
bottom: "Mconv1_stage0_L1_0"
top: "Mconv1_stage0_L1_0"
}
layer {
name: "Mconv1_stage0_L1_1"
type: "Convolution"
bottom: "Mconv1_stage0_L1_0"
top: "Mconv1_stage0_L1_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage0_L1_1"
type: "PReLU"
bottom: "Mconv1_stage0_L1_1"
top: "Mconv1_stage0_L1_1"
}
layer {
name: "Mconv1_stage0_L1_2"
type: "Convolution"
bottom: "Mconv1_stage0_L1_1"
top: "Mconv1_stage0_L1_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage0_L1_2"
type: "PReLU"
bottom: "Mconv1_stage0_L1_2"
top: "Mconv1_stage0_L1_2"
}
layer {
name: "Mconv1_stage0_L1_concat"
type: "Concat"
bottom: "Mconv1_stage0_L1_0"
bottom: "Mconv1_stage0_L1_1"
bottom: "Mconv1_stage0_L1_2"
top: "Mconv1_stage0_L1_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv2_stage0_L1_0"
type: "Convolution"
bottom: "Mconv1_stage0_L1_concat"
top: "Mconv2_stage0_L1_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage0_L1_0"
type: "PReLU"
bottom: "Mconv2_stage0_L1_0"
top: "Mconv2_stage0_L1_0"
}
layer {
name: "Mconv2_stage0_L1_1"
type: "Convolution"
bottom: "Mconv2_stage0_L1_0"
top: "Mconv2_stage0_L1_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage0_L1_1"
type: "PReLU"
bottom: "Mconv2_stage0_L1_1"
top: "Mconv2_stage0_L1_1"
}
layer {
name: "Mconv2_stage0_L1_2"
type: "Convolution"
bottom: "Mconv2_stage0_L1_1"
top: "Mconv2_stage0_L1_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage0_L1_2"
type: "PReLU"
bottom: "Mconv2_stage0_L1_2"
top: "Mconv2_stage0_L1_2"
}
layer {
name: "Mconv2_stage0_L1_concat"
type: "Concat"
bottom: "Mconv2_stage0_L1_0"
bottom: "Mconv2_stage0_L1_1"
bottom: "Mconv2_stage0_L1_2"
top: "Mconv2_stage0_L1_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv3_stage0_L1_0"
type: "Convolution"
bottom: "Mconv2_stage0_L1_concat"
top: "Mconv3_stage0_L1_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage0_L1_0"
type: "PReLU"
bottom: "Mconv3_stage0_L1_0"
top: "Mconv3_stage0_L1_0"
}
layer {
name: "Mconv3_stage0_L1_1"
type: "Convolution"
bottom: "Mconv3_stage0_L1_0"
top: "Mconv3_stage0_L1_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage0_L1_1"
type: "PReLU"
bottom: "Mconv3_stage0_L1_1"
top: "Mconv3_stage0_L1_1"
}
layer {
name: "Mconv3_stage0_L1_2"
type: "Convolution"
bottom: "Mconv3_stage0_L1_1"
top: "Mconv3_stage0_L1_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage0_L1_2"
type: "PReLU"
bottom: "Mconv3_stage0_L1_2"
top: "Mconv3_stage0_L1_2"
}
layer {
name: "Mconv3_stage0_L1_concat"
type: "Concat"
bottom: "Mconv3_stage0_L1_0"
bottom: "Mconv3_stage0_L1_1"
bottom: "Mconv3_stage0_L1_2"
top: "Mconv3_stage0_L1_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv4_stage0_L1_0"
type: "Convolution"
bottom: "Mconv3_stage0_L1_concat"
top: "Mconv4_stage0_L1_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage0_L1_0"
type: "PReLU"
bottom: "Mconv4_stage0_L1_0"
top: "Mconv4_stage0_L1_0"
}
layer {
name: "Mconv4_stage0_L1_1"
type: "Convolution"
bottom: "Mconv4_stage0_L1_0"
top: "Mconv4_stage0_L1_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage0_L1_1"
type: "PReLU"
bottom: "Mconv4_stage0_L1_1"
top: "Mconv4_stage0_L1_1"
}
layer {
name: "Mconv4_stage0_L1_2"
type: "Convolution"
bottom: "Mconv4_stage0_L1_1"
top: "Mconv4_stage0_L1_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage0_L1_2"
type: "PReLU"
bottom: "Mconv4_stage0_L1_2"
top: "Mconv4_stage0_L1_2"
}
layer {
name: "Mconv4_stage0_L1_concat"
type: "Concat"
bottom: "Mconv4_stage0_L1_0"
bottom: "Mconv4_stage0_L1_1"
bottom: "Mconv4_stage0_L1_2"
top: "Mconv4_stage0_L1_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv5_stage0_L1_0"
type: "Convolution"
bottom: "Mconv4_stage0_L1_concat"
top: "Mconv5_stage0_L1_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage0_L1_0"
type: "PReLU"
bottom: "Mconv5_stage0_L1_0"
top: "Mconv5_stage0_L1_0"
}
layer {
name: "Mconv5_stage0_L1_1"
type: "Convolution"
bottom: "Mconv5_stage0_L1_0"
top: "Mconv5_stage0_L1_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage0_L1_1"
type: "PReLU"
bottom: "Mconv5_stage0_L1_1"
top: "Mconv5_stage0_L1_1"
}
layer {
name: "Mconv5_stage0_L1_2"
type: "Convolution"
bottom: "Mconv5_stage0_L1_1"
top: "Mconv5_stage0_L1_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 96
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage0_L1_2"
type: "PReLU"
bottom: "Mconv5_stage0_L1_2"
top: "Mconv5_stage0_L1_2"
}
layer {
name: "Mconv5_stage0_L1_concat"
type: "Concat"
bottom: "Mconv5_stage0_L1_0"
bottom: "Mconv5_stage0_L1_1"
bottom: "Mconv5_stage0_L1_2"
top: "Mconv5_stage0_L1_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv6_stage0_L1"
type: "Convolution"
bottom: "Mconv5_stage0_L1_concat"
top: "Mconv6_stage0_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 256
pad: 0
kernel_size: 1
}
}
layer {
name: "Mprelu6_stage0_L1"
type: "PReLU"
bottom: "Mconv6_stage0_L1"
top: "Mconv6_stage0_L1"
}
layer {
name: "Mconv7_stage0_L1"
type: "Convolution"
bottom: "Mconv6_stage0_L1"
top: "Mconv7_stage0_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 21
pad: 0
kernel_size: 1
}
}
#########loss##############
layer {
name: "weight_stage0_L1"
type: "Eltwise"
bottom: "Mconv7_stage0_L1"
bottom: "heat_weight"
top: "weight_stage0_L1"
eltwise_param {
operation: PROD
}
}
layer {
name: "loss_stage0_L1"
type: "EuclideanLoss"
bottom: "weight_stage0_L1"
bottom: "label_heat"
top: "loss_stage0_L1"
loss_weight: 1
}

#########loss##############
layer {
name: "concat_stage1_L1"
type: "Concat"
bottom: "conv4_4_CPM"
bottom: "Mconv7_stage0_L1"
bottom: "Mconv7_stage3_L2"
top: "concat_stage1_L1"
concat_param {
axis: 1
}
}
layer {
name: "Mconv1_stage1_L1_0"
type: "Convolution"
bottom: "concat_stage1_L1"
top: "Mconv1_stage1_L1_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage1_L1_0"
type: "PReLU"
bottom: "Mconv1_stage1_L1_0"
top: "Mconv1_stage1_L1_0"
}
layer {
name: "Mconv1_stage1_L1_1"
type: "Convolution"
bottom: "Mconv1_stage1_L1_0"
top: "Mconv1_stage1_L1_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage1_L1_1"
type: "PReLU"
bottom: "Mconv1_stage1_L1_1"
top: "Mconv1_stage1_L1_1"
}
layer {
name: "Mconv1_stage1_L1_2"
type: "Convolution"
bottom: "Mconv1_stage1_L1_1"
top: "Mconv1_stage1_L1_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu1_stage1_L1_2"
type: "PReLU"
bottom: "Mconv1_stage1_L1_2"
top: "Mconv1_stage1_L1_2"
}
layer {
name: "Mconv1_stage1_L1_concat"
type: "Concat"
bottom: "Mconv1_stage1_L1_0"
bottom: "Mconv1_stage1_L1_1"
bottom: "Mconv1_stage1_L1_2"
top: "Mconv1_stage1_L1_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv2_stage1_L1_0"
type: "Convolution"
bottom: "Mconv1_stage1_L1_concat"
top: "Mconv2_stage1_L1_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage1_L1_0"
type: "PReLU"
bottom: "Mconv2_stage1_L1_0"
top: "Mconv2_stage1_L1_0"
}
layer {
name: "Mconv2_stage1_L1_1"
type: "Convolution"
bottom: "Mconv2_stage1_L1_0"
top: "Mconv2_stage1_L1_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage1_L1_1"
type: "PReLU"
bottom: "Mconv2_stage1_L1_1"
top: "Mconv2_stage1_L1_1"
}
layer {
name: "Mconv2_stage1_L1_2"
type: "Convolution"
bottom: "Mconv2_stage1_L1_1"
top: "Mconv2_stage1_L1_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu2_stage1_L1_2"
type: "PReLU"
bottom: "Mconv2_stage1_L1_2"
top: "Mconv2_stage1_L1_2"
}
layer {
name: "Mconv2_stage1_L1_concat"
type: "Concat"
bottom: "Mconv2_stage1_L1_0"
bottom: "Mconv2_stage1_L1_1"
bottom: "Mconv2_stage1_L1_2"
top: "Mconv2_stage1_L1_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv3_stage1_L1_0"
type: "Convolution"
bottom: "Mconv2_stage1_L1_concat"
top: "Mconv3_stage1_L1_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage1_L1_0"
type: "PReLU"
bottom: "Mconv3_stage1_L1_0"
top: "Mconv3_stage1_L1_0"
}
layer {
name: "Mconv3_stage1_L1_1"
type: "Convolution"
bottom: "Mconv3_stage1_L1_0"
top: "Mconv3_stage1_L1_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage1_L1_1"
type: "PReLU"
bottom: "Mconv3_stage1_L1_1"
top: "Mconv3_stage1_L1_1"
}
layer {
name: "Mconv3_stage1_L1_2"
type: "Convolution"
bottom: "Mconv3_stage1_L1_1"
top: "Mconv3_stage1_L1_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu3_stage1_L1_2"
type: "PReLU"
bottom: "Mconv3_stage1_L1_2"
top: "Mconv3_stage1_L1_2"
}
layer {
name: "Mconv3_stage1_L1_concat"
type: "Concat"
bottom: "Mconv3_stage1_L1_0"
bottom: "Mconv3_stage1_L1_1"
bottom: "Mconv3_stage1_L1_2"
top: "Mconv3_stage1_L1_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv4_stage1_L1_0"
type: "Convolution"
bottom: "Mconv3_stage1_L1_concat"
top: "Mconv4_stage1_L1_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage1_L1_0"
type: "PReLU"
bottom: "Mconv4_stage1_L1_0"
top: "Mconv4_stage1_L1_0"
}
layer {
name: "Mconv4_stage1_L1_1"
type: "Convolution"
bottom: "Mconv4_stage1_L1_0"
top: "Mconv4_stage1_L1_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage1_L1_1"
type: "PReLU"
bottom: "Mconv4_stage1_L1_1"
top: "Mconv4_stage1_L1_1"
}
layer {
name: "Mconv4_stage1_L1_2"
type: "Convolution"
bottom: "Mconv4_stage1_L1_1"
top: "Mconv4_stage1_L1_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu4_stage1_L1_2"
type: "PReLU"
bottom: "Mconv4_stage1_L1_2"
top: "Mconv4_stage1_L1_2"
}
layer {
name: "Mconv4_stage1_L1_concat"
type: "Concat"
bottom: "Mconv4_stage1_L1_0"
bottom: "Mconv4_stage1_L1_1"
bottom: "Mconv4_stage1_L1_2"
top: "Mconv4_stage1_L1_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv5_stage1_L1_0"
type: "Convolution"
bottom: "Mconv4_stage1_L1_concat"
top: "Mconv5_stage1_L1_0"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage1_L1_0"
type: "PReLU"
bottom: "Mconv5_stage1_L1_0"
top: "Mconv5_stage1_L1_0"
}
layer {
name: "Mconv5_stage1_L1_1"
type: "Convolution"
bottom: "Mconv5_stage1_L1_0"
top: "Mconv5_stage1_L1_1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage1_L1_1"
type: "PReLU"
bottom: "Mconv5_stage1_L1_1"
top: "Mconv5_stage1_L1_1"
}
layer {
name: "Mconv5_stage1_L1_2"
type: "Convolution"
bottom: "Mconv5_stage1_L1_1"
top: "Mconv5_stage1_L1_2"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 128
pad: 1
kernel_size: 3
}
}
layer {
name: "Mprelu5_stage1_L1_2"
type: "PReLU"
bottom: "Mconv5_stage1_L1_2"
top: "Mconv5_stage1_L1_2"
}
layer {
name: "Mconv5_stage1_L1_concat"
type: "Concat"
bottom: "Mconv5_stage1_L1_0"
bottom: "Mconv5_stage1_L1_1"
bottom: "Mconv5_stage1_L1_2"
top: "Mconv5_stage1_L1_concat"
concat_param {
axis: 1
}
}
layer {
name: "Mconv6_stage1_L1"
type: "Convolution"
bottom: "Mconv5_stage1_L1_concat"
top: "Mconv6_stage1_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 512
pad: 0
kernel_size: 1
}
}
layer {
name: "Mprelu6_stage1_L1"
type: "PReLU"
bottom: "Mconv6_stage1_L1"
top: "Mconv6_stage1_L1"
}
layer {
name: "Mconv7_stage1_L1"
type: "Convolution"
bottom: "Mconv6_stage1_L1"
top: "Mconv7_stage1_L1"
param {
lr_mult: 4.0
decay_mult: 1
}
param {
lr_mult: 8.0
decay_mult: 0
}
convolution_param {
num_output: 21
pad: 0
kernel_size: 1
}
}
#########loss##############
layer {
name: "weight_stage1_L1"
type: "Eltwise"
bottom: "Mconv7_stage1_L1"
bottom: "heat_weight"
top: "weight_stage1_L1"
eltwise_param {
operation: PROD
}
}
layer {
name: "loss_stage1_L1"
type: "EuclideanLoss"
bottom: "weight_stage1_L1"
bottom: "label_heat"
top: "loss_stage1_L1"
loss_weight: 1
}

#########loss##############

layer {
name: "net_output"
type: "Concat"
bottom: "Mconv7_stage1_L1"
bottom: "Mconv7_stage3_L2"
top: "net_output"
concat_param {
axis: 1
}
}
layer {
name: "silence3"
type: "Silence"
bottom: "net_output"
}

but the loss for different stage is always same ,and loss is around 400~700, cannot get convergence,please help me.
I0428 15:09:29.172890 2554 solver.cpp:228] Iteration 1600, loss = 479.462
I0428 15:09:29.172938 2554 solver.cpp:244] Train net output #0: loss_stage0_L1 = 43.9503 (* 1 = 43.9503 loss)
I0428 15:09:29.172947 2554 solver.cpp:244] Train net output #1: loss_stage0_L2 = 97.8904 (* 1 = 97.8904 loss)
I0428 15:09:29.172953 2554 solver.cpp:244] Train net output #2: loss_stage1_L1 = 43.9503 (* 1 = 43.9503 loss)
I0428 15:09:29.172960 2554 solver.cpp:244] Train net output #3: loss_stage1_L2 = 97.8904 (* 1 = 97.8904 loss)
I0428 15:09:29.172968 2554 solver.cpp:244] Train net output #4: loss_stage2_L2 = 97.8904 (* 1 = 97.8904 loss)
I0428 15:09:29.172976 2554 solver.cpp:244] Train net output #5: loss_stage3_L2 = 97.8904 (* 1 = 97.8904 loss)
I0428 15:09:29.492501 2554 sgd_solver.cpp:106] Iteration 1600, lr = 8e-11

@SyGoing
Copy link

SyGoing commented May 16, 2019

hello, have you solved this question? my architecture is the same as you

@oujieww
Copy link
Author

oujieww commented May 16, 2019

@SyGoing no , my finall loss is too big ,i still try to change lr .but ~~~~~,i have no idea ~~~~, how do u think about this?

@SyGoing
Copy link

SyGoing commented May 16, 2019

maybe the real architecture is only one L1 loss and L2 loss. I am trying it again !

@oujieww
Copy link
Author

oujieww commented May 16, 2019

@SyGoing i think should have multi stage , i add normlize for net, my last problem is solved. but ~~~~finall loss is still too big~~~,and result is not good

@oujieww
Copy link
Author

oujieww commented May 16, 2019

@SyGoing sorry not normlize, should be initialize

@SyGoing
Copy link

SyGoing commented May 16, 2019

yean ,like your architecture(4 stages L2 loss and 2 stages L1 loss, I use the vgg19 pretrained model to initialize the pose model , and the loss is changing smaller during training.

@rafuck
Copy link

rafuck commented May 23, 2019

@oujieww, hello. I want to train body_25 on my dataset too. And my question, how did you obtain your train model?

@wuxiaomin0110
Copy link

Hi, @oujieww I wanna train body 25 model by this rep. I do not need feet keypoints, so I only modify the prototxt file like yours but with the 17-points coco data (download from this rep, 188G lmdb file). However, my new trained model can not detect any points. Can you give me some advice?
I set the outputs of 'Mconv7_stage0_L1' and 'Mconv7_stage1_L1' as 19, I wonder why you set them to 21? I will get an error when I set them to 21.

@luqiang-guo
Copy link

How can I find models and papers about body25?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants