name: "face_id_small_v1" input: "data" input_dim: 1 input_dim: 1 input_dim: 224 input_dim: 224 layer { name: "backbone.input_block_1.0.0.conv" type: "Convolution" bottom: "data" top: "backbone.input_block_1.0.0" param { name: "backbone.input_block_1.0.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 16 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: false } } layer { name: "backbone.input_block_1.1.0.bn" type: "BatchNorm" bottom: "backbone.input_block_1.0.0" top: "backbone.input_block_1.0.0" param { name: "backbone.input_block_1.1.0.running_mean" lr_mult: 0.0 } param { name: "backbone.input_block_1.1.0.running_var" lr_mult: 0.0 } param { name: "backbone.input_block_1.1.0.for_train" lr_mult: 0.0 } } layer { name: "backbone.input_block_1.1.0.scale" type: "Scale" bottom: "backbone.input_block_1.0.0" top: "backbone.input_block_1.0.0" param { name: "backbone.input_block_1.1.0.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "backbone.input_block_1.1.0.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "backbone.input_block_1.0.0.conv_relu" type: "ReLU" bottom: "backbone.input_block_1.0.0" top: "backbone.input_block_1.0.0" } layer { name: "backbone.input_block_1.0.0.pool1" type: "Pooling" bottom: "backbone.input_block_1.0.0" top: "backbone.input_block.0.1.pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } #============================================== layer { name: "backbone.input_block_2.0.0.conv" type: "Convolution" bottom: "backbone.input_block.0.1.pool1" top: "backbone.input_block_2.0.0" param { name: "backbone.input_block_2.0.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 32 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: false } } layer { name: "backbone.input_block_2.1.0.bn" type: "BatchNorm" bottom: "backbone.input_block_2.0.0" top: "backbone.input_block_2.0.0" param { name: "backbone.input_block_2.1.0.running_mean" lr_mult: 0.0 } param { name: "backbone.input_block_2.1.0.running_var" lr_mult: 0.0 } param { name: "backbone.input_block_2.1.0.for_train" lr_mult: 0.0 } } layer { name: "backbone.input_block_2.1.0.scale" type: "Scale" bottom: "backbone.input_block_2.0.0" top: "backbone.input_block_2.0.0" param { name: "backbone.input_block_2.1.0.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "backbone.input_block_2.1.0.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "backbone.input_block_2.0.0.conv_relu" type: "ReLU" bottom: "backbone.input_block_2.0.0" top: "backbone.input_block_2.0.0" } layer { name: "backbone.input_block_2.0.0.pool1" type: "Pooling" bottom: "backbone.input_block_2.0.0" top: "backbone.input_block_2.0.0.pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } #============================================== layer { name: "backbone.input_block_3.0.0.conv" type: "Convolution" bottom: "backbone.input_block_2.0.0.pool1" top: "backbone.input_block_3.0.0" param { name: "backbone.input_block_3.0.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: false } } layer { name: "backbone.input_block_3.1.0.bn" type: "BatchNorm" bottom: "backbone.input_block_3.0.0" top: "backbone.input_block_3.0.0" param { name: "backbone.input_block_3.1.0.running_mean" lr_mult: 0.0 } param { name: "backbone.input_block_3.1.0.running_var" lr_mult: 0.0 } param { name: "backbone.input_block_3.1.0.for_train" lr_mult: 0.0 } } layer { name: "backbone.input_block_3.1.0.scale" type: "Scale" bottom: "backbone.input_block_3.0.0" top: "backbone.input_block_3.0.0" param { name: "backbone.input_block_3.1.0.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "backbone.input_block_3.1.0.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "backbone.input_block_3.0.0.conv_relu" type: "ReLU" bottom: "backbone.input_block_3.0.0" top: "backbone.input_block_3.0.0" } layer { name: "backbone.input_block_3.0.0.pool1" type: "Pooling" bottom: "backbone.input_block_3.0.0" top: "backbone.input_block_3.0.0.pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } #============================================== layer { name: "backbone.input_block_4.0.0.conv" type: "Convolution" bottom: "backbone.input_block_3.0.0.pool1" top: "backbone.input_block_4.0.0" param { name: "backbone.input_block_4.0.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: false } } layer { name: "backbone.input_block_4.1.0.bn" type: "BatchNorm" bottom: "backbone.input_block_4.0.0" top: "backbone.input_block_4.0.0" param { name: "backbone.input_block_4.1.0.running_mean" lr_mult: 0.0 } param { name: "backbone.input_block_4.1.0.running_var" lr_mult: 0.0 } param { name: "backbone.input_block_4.1.0.for_train" lr_mult: 0.0 } } layer { name: "backbone.input_block_4.1.0.scale" type: "Scale" bottom: "backbone.input_block_4.0.0" top: "backbone.input_block_4.0.0" param { name: "backbone.input_block_4.1.0.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "backbone.input_block_4.1.0.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "backbone.input_block_4.0.0.conv_relu" type: "ReLU" bottom: "backbone.input_block_4.0.0" top: "backbone.input_block_4.0.0" } layer { name: "backbone.input_block_4.0.0.pool1" type: "Pooling" bottom: "backbone.input_block_4.0.0" top: "backbone.input_block_4.0.0.pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } #============================================== layer { name: "backbone.input_block_5.0.0.conv" type: "Convolution" bottom: "backbone.input_block_4.0.0.pool1" top: "backbone.input_block_5.0.0" param { name: "backbone.input_block_5.0.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: false } } layer { name: "backbone.input_block_5.1.0.bn" type: "BatchNorm" bottom: "backbone.input_block_5.0.0" top: "backbone.input_block_5.0.0" param { name: "backbone.input_block_5.1.0.running_mean" lr_mult: 0.0 } param { name: "backbone.input_block_5.1.0.running_var" lr_mult: 0.0 } param { name: "backbone.input_block_5.1.0.for_train" lr_mult: 0.0 } } layer { name: "backbone.input_block_5.1.0.scale" type: "Scale" bottom: "backbone.input_block_5.0.0" top: "backbone.input_block_5.0.0" param { name: "backbone.input_block_5.1.0.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "backbone.input_block_5.1.0.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "backbone.input_block_5.0.0.conv_relu" type: "ReLU" bottom: "backbone.input_block_5.0.0" top: "backbone.input_block_5.0.0" } #============================================== layer { name: "backbone.input_block_6.0.0.conv" type: "Convolution" bottom: "backbone.input_block_5.0.0" top: "backbone.input_block_6.0.0" param { name: "backbone.input_block_6.0.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 256 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: false } } layer { name: "backbone.input_block_6.1.0.bn" type: "BatchNorm" bottom: "backbone.input_block_6.0.0" top: "backbone.input_block_6.0.0" param { name: "backbone.input_block_6.1.0.running_mean" lr_mult: 0.0 } param { name: "backbone.input_block_6.1.0.running_var" lr_mult: 0.0 } param { name: "backbone.input_block_6.1.0.for_train" lr_mult: 0.0 } } layer { name: "backbone.input_block_6.1.0.scale" type: "Scale" bottom: "backbone.input_block_6.0.0" top: "backbone.input_block_6.0.0" param { name: "backbone.input_block_6.1.0.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "backbone.input_block_6.1.0.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "backbone.input_block_6.0.0.conv_relu" type: "ReLU" bottom: "backbone.input_block_6.0.0" top: "backbone.input_block_6.0.0" } #============================================== layer { name: "backbone.input_block_7.0.0.conv" type: "Convolution" bottom: "backbone.input_block_6.0.0" top: "backbone.input_block_7.0.0" param { name: "backbone.input_block_7.0.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: false } } layer { name: "backbone.input_block_7.1.0.bn" type: "BatchNorm" bottom: "backbone.input_block_7.0.0" top: "backbone.input_block_7.0.0" param { name: "backbone.input_block_7.1.0.running_mean" lr_mult: 0.0 } param { name: "backbone.input_block_7.1.0.running_var" lr_mult: 0.0 } param { name: "backbone.input_block_7.1.0.for_train" lr_mult: 0.0 } } layer { name: "backbone.input_block_7.1.0.scale" type: "Scale" bottom: "backbone.input_block_7.0.0" top: "backbone.input_block_7.0.0" param { name: "backbone.input_block_7.1.0.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "backbone.input_block_7.1.0.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "backbone.input_block_7.0.0.conv_relu" type: "ReLU" bottom: "backbone.input_block_7.0.0" top: "backbone.input_block_7.0.0" } #============================================== layer { name: "backbone.input_block_8.0.0.conv" type: "Convolution" bottom: "backbone.input_block_7.0.0" top: "backbone.input_block_8.0.0" param { name: "backbone.input_block_8.0.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: false } } layer { name: "backbone.input_block_8.1.0.bn" type: "BatchNorm" bottom: "backbone.input_block_8.0.0" top: "backbone.input_block_8.0.0" param { name: "backbone.input_block_8.1.0.running_mean" lr_mult: 0.0 } param { name: "backbone.input_block_8.1.0.running_var" lr_mult: 0.0 } param { name: "backbone.input_block_8.1.0.for_train" lr_mult: 0.0 } } layer { name: "backbone.input_block_8.1.0.scale" type: "Scale" bottom: "backbone.input_block_8.0.0" top: "backbone.input_block_8.0.0" param { name: "backbone.input_block_8.1.0.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "backbone.input_block_8.1.0.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "backbone.input_block_8.0.0.conv_relu" type: "ReLU" bottom: "backbone.input_block_8.0.0" top: "backbone.input_block_8.0.0" } #============================================== layer { name: "backbone.input_block_9.0.0.conv" type: "Convolution" bottom: "backbone.input_block_8.0.0" top: "backbone.input_block_9.0.0" param { name: "backbone.input_block_9.0.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: false } } layer { name: "backbone.input_block_9.1.0.bn" type: "BatchNorm" bottom: "backbone.input_block_9.0.0" top: "backbone.input_block_9.0.0" param { name: "backbone.input_block_9.1.0.running_mean" lr_mult: 0.0 } param { name: "backbone.input_block_9.1.0.running_var" lr_mult: 0.0 } param { name: "backbone.input_block_9.1.0.for_train" lr_mult: 0.0 } } layer { name: "backbone.input_block_9.1.0.scale" type: "Scale" bottom: "backbone.input_block_9.0.0" top: "backbone.input_block_9.0.0" param { name: "backbone.input_block_9.1.0.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "backbone.input_block_9.1.0.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "backbone.input_block_9.0.0.conv_relu" type: "ReLU" bottom: "backbone.input_block_9.0.0" top: "backbone.input_block_9.0.0" } #============================================== layer { name: "backbone.final.0.0.conv" type: "Convolution" bottom: "backbone.input_block_9.0.0" top: "backbone.final.0.0" param { name: "backbone.final.0.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: true } } layer { name: "backbone.final.1.0.bn" type: "BatchNorm" bottom: "backbone.final.0.0" top: "backbone.final.0.0" param { name: "backbone.final.1.0.running_mean" lr_mult: 0.0 } param { name: "backbone.final.1.0.running_var" lr_mult: 0.0 } param { name: "backbone.final.1.0.for_train" lr_mult: 0.0 } } layer { name: "backbone.final.1.0.scale" type: "Scale" bottom: "backbone.final.0.0" top: "backbone.final.0.0" param { name: "backbone.final.1.0.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "backbone.final.1.0.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "backbone.final.0.0.conv_relu" type: "ReLU" bottom: "backbone.final.0.0" top: "backbone.final.0.0" } layer { name: "backbone.final.0.0.pool1" type: "Pooling" bottom: "backbone.final.0.0" top: "backbone.final.0.0.pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } #============================================== layer { name: "HWFPN.head1.0.conv" type: "Convolution" bottom: "backbone.input_block_3.0.0.pool1" top: "HWFPN.head1.0" param { name: "HWFPN.head1.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: false } } layer { name: "HWFPN.head1.1.bn" type: "BatchNorm" bottom: "HWFPN.head1.0" top: "HWFPN.head1.0" param { name: "HWFPN.head1.1.running_mean" lr_mult: 0.0 } param { name: "HWFPN.head1.1.running_var" lr_mult: 0.0 } param { name: "HWFPN.head1.1.for_train" lr_mult: 0.0 } } layer { name: "HWFPN.head1.1.scale" type: "Scale" bottom: "HWFPN.head1.0" top: "HWFPN.head1.0" param { name: "HWFPN.head1.1.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "HWFPN.head1.1.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "HWFPN.head1.0.conv_relu" type: "ReLU" bottom: "HWFPN.head1.0" top: "HWFPN.head1.0" } #============================================== layer { name: "HWFPN.head2.0.conv" type: "Convolution" bottom: "backbone.input_block_9.0.0" top: "HWFPN.head2.0" param { name: "HWFPN.head2.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: false } } layer { name: "HWFPN.head2.1.bn" type: "BatchNorm" bottom: "HWFPN.head2.0" top: "HWFPN.head2.0" param { name: "HWFPN.head2.1.running_mean" lr_mult: 0.0 } param { name: "HWFPN.head2.1.running_var" lr_mult: 0.0 } param { name: "HWFPN.head2.1.for_train" lr_mult: 0.0 } } layer { name: "HWFPN.head2.1.scale" type: "Scale" bottom: "HWFPN.head2.0" top: "HWFPN.head2.0" param { name: "HWFPN.head2.1.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "HWFPN.head2.1.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "HWFPN.head2.0.conv_relu" type: "ReLU" bottom: "HWFPN.head2.0" top: "HWFPN.head2.0" } #============================================== layer { name: "HWFPN.head3.0.conv" type: "Convolution" #bottom: "backbone.input_block_3.0.0" bottom: "backbone.final.0.0.pool1" top: "HWFPN.head3.0" param { name: "HWFPN.head3.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: false } } layer { name: "HWFPN.head3.1.bn" type: "BatchNorm" bottom: "HWFPN.head3.0" top: "HWFPN.head3.0" param { name: "HWFPN.head3.1.running_mean" lr_mult: 0.0 } param { name: "HWFPN.head3.1.running_var" lr_mult: 0.0 } param { name: "HWFPN.head3.1.for_train" lr_mult: 0.0 } } layer { name: "HWFPN.head3.1.scale" type: "Scale" bottom: "HWFPN.head3.0" top: "HWFPN.head3.0" param { name: "HWFPN.head3.1.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "HWFPN.head3.1.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "HWFPN.head3.0.conv_relu" type: "ReLU" bottom: "HWFPN.head3.0" top: "HWFPN.head3.0" } #============================================== layer { name: "up1" type: "Deconvolution" bottom: "HWFPN.head3.0" top: "up1" convolution_param { kernel_size: 2 stride: 2 pad: 0 #group: 32 num_output: 64 bias_term: false weight_filler { type: "bilinear" } } param { lr_mult: 0 decay_mult: 0 } } layer { name: "up1.add" type: "Eltwise" bottom: "up1" bottom: "HWFPN.head2.0" top: "up1_output" eltwise_param { operation: SUM } } layer { name: "up2" type: "Deconvolution" bottom: "up1_output" top: "up2" convolution_param { kernel_size: 2 stride: 2 pad: 0 #group: 32 num_output: 64 bias_term: false weight_filler { type: "bilinear" } } param { lr_mult: 0 decay_mult: 0 } } layer { name: "up2.add" type: "Eltwise" bottom: "up2" bottom: "HWFPN.head1.0" top: "fpn_output_pre" eltwise_param { operation: SUM } } layer { name: "HWFPN.0.0.pool1" type: "Pooling" bottom: "fpn_output_pre" top: "fpn_output" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } #============================================== #============================================== layer { name: "heat_map_head.0.conv" type: "Convolution" bottom: "fpn_output" top: "heat_map_head" param { name: "heat_map_head.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 1 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: false } } #============================================== layer { name: "local_wh_head.0.conv" type: "Convolution" bottom: "fpn_output" top: "local_wh_head" param { name: "local_wh_head.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 2 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: false } } #============================================== layer { name: "local_xy_head.0.conv" type: "Convolution" bottom: "fpn_output" top: "local_xy_head" param { name: "local_xy_head.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 2 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: false } } #============================================== layer { name: "landmark_head.0.bn" type: "BatchNorm" bottom: "fpn_output" top: "landmark_head.0" param { name: "landmark_head.0.running_mean" lr_mult: 0.0 } param { name: "landmark_head.0.running_var" lr_mult: 0.0 } param { name: "landmark_head.0.for_train" lr_mult: 0.0 } } layer { name: "landmark_head.0.scale" type: "Scale" bottom: "landmark_head.0" top: "landmark_head.0" param { name: "landmark_head.0.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "landmark_head.0.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "landmark_head.0.conv_relu" type: "ReLU" bottom: "landmark_head.0" top: "landmark_head.0" } layer { name: "landmark_head.2.0.conv" type: "Convolution" bottom: "landmark_head.0" top: "landmark_head.0" param { name: "landmark_head.2.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 64 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: false } } #============================================== layer { name: "landmark_head.3.bn" type: "BatchNorm" bottom: "landmark_head.0" top: "landmark_head.3" param { name: "landmark_head.3.running_mean" lr_mult: 0.0 } param { name: "landmark_head.3.running_var" lr_mult: 0.0 } param { name: "landmark_head.3.for_train" lr_mult: 0.0 } } layer { name: "landmark_head.3.scale" type: "Scale" bottom: "landmark_head.3" top: "landmark_head.3" param { name: "landmark_head.3.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "landmark_head.3.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "landmark_head.3.conv_relu" type: "ReLU" bottom: "landmark_head.3" top: "landmark_head.3" } layer { name: "landmark_head.5.0.conv" type: "Convolution" bottom: "landmark_head.3" top: "landmark_head.3" param { name: "landmark_head.5.0.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 128 pad: 1 kernel_size: 3 stride: 1 weight_filler { type: "msra" } bias_term: false } } #============================================== layer { name: "landmark_head.6.bn" type: "BatchNorm" bottom: "landmark_head.3" top: "landmark_head.6" param { name: "landmark_head.6.running_mean" lr_mult: 0.0 } param { name: "landmark_head.6.running_var" lr_mult: 0.0 } param { name: "landmark_head.6.for_train" lr_mult: 0.0 } } layer { name: "landmark_head.6.scale" type: "Scale" bottom: "landmark_head.6" top: "landmark_head.6" param { name: "landmark_head.6.weight" lr_mult: 1.0 decay_mult: 1.0 } param { name: "landmark_head.6.bias" lr_mult: 1.0 decay_mult: 1.0 } scale_param { bias_term: true } } layer { name: "landmark_head.6.conv_relu" type: "ReLU" bottom: "landmark_head.6" top: "landmark_head.6" } layer { name: "landmark_head.8.conv" type: "Convolution" bottom: "landmark_head.6" top: "landmark_head" param { name: "landmark_head.8.weight" lr_mult: 1.0 decay_mult: 1.0 } convolution_param { num_output: 136 pad: 0 kernel_size: 1 stride: 1 weight_filler { type: "msra" } bias_term: false } }