Created
November 26, 2020 09:30
-
-
Save se7oluti0n/5f5ffa0166974bde7cb4495e9e6a9d85 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "RHDLatentHMMap" | |
| #-----Generate random image index for training 0 | |
| layer { | |
| name: "image_index_0" | |
| type: "DeepHandModelGenRandIndex" | |
| top: "image_index_0" | |
| gen_rand_index_param { | |
| index_lower_bound: 0 | |
| index_upper_bound: 10000 | |
| batch_size: 32 | |
| missing_index_file: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\missing_left_new.txt" | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----Generate random image index for training 0 | |
| layer { | |
| name: "image_index_1" | |
| type: "DeepHandModelGenRandIndex" | |
| top: "image_index_1" | |
| gen_rand_index_param { | |
| index_lower_bound: 10001 | |
| index_upper_bound: 20000 | |
| batch_size: 32 | |
| missing_index_file: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\missing_left_new.txt" | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----Generate random image index for training 0 | |
| layer { | |
| name: "image_index_2" | |
| type: "DeepHandModelGenRandIndex" | |
| top: "image_index_2" | |
| gen_rand_index_param { | |
| index_lower_bound: 20001 | |
| index_upper_bound: 30000 | |
| batch_size: 32 | |
| missing_index_file: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\missing_left_new.txt" | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----Generate random image index for training 0 | |
| layer { | |
| name: "image_index_3" | |
| type: "DeepHandModelGenRandIndex" | |
| top: "image_index_3" | |
| gen_rand_index_param { | |
| index_lower_bound: 30001 | |
| index_upper_bound: 40000 | |
| batch_size: 32 | |
| missing_index_file: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\missing_left_new.txt" | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----Generate random image index for training 0 | |
| layer { | |
| name: "image_index_4" | |
| type: "DeepHandModelGenRandIndex" | |
| top: "image_index_4" | |
| gen_rand_index_param { | |
| index_lower_bound: 40001 | |
| index_upper_bound: 50000 | |
| batch_size: 32 | |
| missing_index_file: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\missing_left_new.txt" | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----Generate random image index for training 0 | |
| layer { | |
| name: "image_index_5" | |
| type: "DeepHandModelGenRandIndex" | |
| top: "image_index_5" | |
| gen_rand_index_param { | |
| index_lower_bound: 50001 | |
| index_upper_bound: 60000 | |
| batch_size: 32 | |
| missing_index_file: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\missing_left_new.txt" | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----Generate random image index for training 0 | |
| layer { | |
| name: "image_index_6" | |
| type: "DeepHandModelGenRandIndex" | |
| top: "image_index_6" | |
| gen_rand_index_param { | |
| index_lower_bound: 60001 | |
| index_upper_bound: 70000 | |
| batch_size: 32 | |
| missing_index_file: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\missing_left_new.txt" | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----Generate random image index for training 0 | |
| layer { | |
| name: "image_index_7" | |
| type: "DeepHandModelGenRandIndex" | |
| top: "image_index_7" | |
| gen_rand_index_param { | |
| index_lower_bound: 70001 | |
| index_upper_bound: 80000 | |
| batch_size: 32 | |
| missing_index_file: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\missing_left_new.txt" | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----Generate random image index for training 0 | |
| layer { | |
| name: "image_index_8" | |
| type: "DeepHandModelGenRandIndex" | |
| top: "image_index_8" | |
| gen_rand_index_param { | |
| index_lower_bound: 80001 | |
| index_upper_bound: 82515 | |
| batch_size: 32 | |
| missing_index_file: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\missing_left_new.txt" | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----Concat the indexes leave image_index_4 out | |
| layer { | |
| name: "image_index_concat" | |
| type: "Concat" | |
| bottom: "image_index_0" | |
| bottom: "image_index_1" | |
| bottom: "image_index_2" | |
| bottom: "image_index_3" | |
| bottom: "image_index_4" | |
| bottom: "image_index_5" | |
| bottom: "image_index_6" | |
| bottom: "image_index_7" | |
| bottom: "image_index_8" | |
| top: "image_index_concat" | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----Random choose from one index | |
| layer { | |
| name: "image_index" | |
| type: "CrossValidationRandomChooseIndex" | |
| bottom: "image_index_concat" | |
| top: "image_index" | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----Generate random image index for training 0 | |
| layer { | |
| name: "image_index" | |
| type: "DeepHandModelGenRandIndex" | |
| top: "image_index" | |
| gen_rand_index_param { | |
| index_lower_bound: 0 | |
| index_upper_bound: 5455 | |
| batch_size: 32 | |
| missing_index_file: "C:\\RHD_v1-1\\RHD_published_v2\\evaluation\\all_hand\\missing_left_new.txt" | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| #----- Read | |
| layer { | |
| name: "readimage" | |
| type: "ReadImage" | |
| bottom: "image_index" | |
| top: "image" | |
| read_image_param { | |
| read_path: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\crop_image\\" | |
| resize_size: 224 | |
| zero_pad: 0 | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #----- Read | |
| layer { | |
| name: "readimage" | |
| type: "ReadImage" | |
| bottom: "image_index" | |
| top: "image" | |
| read_image_param { | |
| read_path: "C:\\RHD_v1-1\\RHD_published_v2\\evaluation\\all_hand\\crop_image\\" | |
| resize_size: 224 | |
| zero_pad: 0 | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| #----- Read raw image index | |
| layer { | |
| name: "read_raw_image_index" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "raw_image_index" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\image_index\\" | |
| num_to_read: 1 | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #----- Read raw image index | |
| layer { | |
| name: "read_raw_image_index" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "raw_image_index" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\evaluation\\all_hand\\image_index\\" | |
| num_to_read: 1 | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| #----- Read avg bone | |
| layer { | |
| name: "avg_bone" | |
| type: "ReadBlobFromFile" | |
| top: "avg_bone" | |
| read_blob_from_file_param { | |
| file_path: "D:\\handpose\\CalcRHDBoneStats\\avg_bone.txt" | |
| num_to_read: 20 | |
| batch_size: 32 | |
| } | |
| } | |
| #-----read bbx x1 | |
| layer { | |
| name: "bbx_x1" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "bbx_x1" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\bbx_x1\\" | |
| num_to_read: 1 | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----read bbx x1 | |
| layer { | |
| name: "bbx_x1" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "bbx_x1" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\evaluation\\all_hand\\bbx_x1\\" | |
| num_to_read: 1 | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| #-----read bbx y1 | |
| layer { | |
| name: "bbx_y1" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "bbx_y1" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\bbx_y1\\" | |
| num_to_read: 1 | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----read bbx y1 | |
| layer { | |
| name: "bbx_y1" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "bbx_y1" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\evaluation\\all_hand\\bbx_y1\\" | |
| num_to_read: 1 | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| #-----read bbx x2 | |
| layer { | |
| name: "bbx_x2" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "bbx_x2" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\bbx_x2\\" | |
| num_to_read: 1 | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----read bbx x2 | |
| layer { | |
| name: "bbx_x2" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "bbx_x2" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\evaluation\\all_hand\\bbx_x2\\" | |
| num_to_read: 1 | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| #-----read bbx y2 | |
| layer { | |
| name: "bbx_y2" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "bbx_y2" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\bbx_y2\\" | |
| num_to_read: 1 | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----read bbx y2 | |
| layer { | |
| name: "bbx_y2" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "bbx_y2" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\evaluation\\all_hand\\bbx_y2\\" | |
| num_to_read: 1 | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| #----gen bbx_x2 - bbx_x1 | |
| layer { | |
| bottom: "bbx_x1" | |
| top: "neg_bbx_x1" | |
| type: "ScaleVector" | |
| name: "neg_bbx_x1" | |
| scale_vector_param { | |
| scale_factor: -1.0 | |
| } | |
| } | |
| #----gen bbx_y2 - bbx_y1 | |
| layer { | |
| bottom: "bbx_y1" | |
| top: "neg_bbx_y1" | |
| type: "ScaleVector" | |
| name: "neg_bbx_y1" | |
| scale_vector_param { | |
| scale_factor: -1.0 | |
| } | |
| } | |
| layer { | |
| bottom: "bbx_x2" | |
| bottom: "neg_bbx_x1" | |
| top: "width" | |
| name: "width" | |
| type: "Eltwise" | |
| } | |
| layer { | |
| bottom: "bbx_y2" | |
| bottom: "neg_bbx_y1" | |
| top: "height" | |
| name: "height" | |
| type: "Eltwise" | |
| } | |
| #-----read camera k 3*3 | |
| layer { | |
| name: "read_camera_k" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "raw_image_index" | |
| top: "camera_k" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\training\\matlab_gt_camera_k\\" | |
| num_to_read: 9 | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #-----read camera k 3*3 | |
| layer { | |
| name: "read_camera_k" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "raw_image_index" | |
| top: "camera_k" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\evaluation\\matlab_gt_camera_k\\" | |
| num_to_read: 9 | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| #-----slice to fx 0 u0 0 fy v0 0 0 1 | |
| layer { | |
| name: "slice_camera_k" | |
| bottom: "camera_k" | |
| top: "fx" | |
| top: "zero_0" | |
| top: "u0" | |
| top: "zero_1" | |
| top: "fy" | |
| top: "v0" | |
| top: "zero_2" | |
| top: "zero_3" | |
| top: "one" | |
| type: "Slice" | |
| slice_param { | |
| axis: 1 | |
| slice_point: 1 | |
| slice_point: 2 | |
| slice_point: 3 | |
| slice_point: 4 | |
| slice_point: 5 | |
| slice_point: 6 | |
| slice_point: 7 | |
| slice_point: 8 | |
| } | |
| } | |
| layer { | |
| bottom: "zero_0" | |
| bottom: "zero_1" | |
| top: "nothing_0" | |
| name: "nothing_0" | |
| type: "EuclideanLoss" | |
| loss_weight: 0.0 | |
| } | |
| layer { | |
| bottom: "zero_2" | |
| bottom: "zero_3" | |
| top: "nothing_1" | |
| name: "nothing_1" | |
| type: "EuclideanLoss" | |
| loss_weight: 0.0 | |
| } | |
| layer { | |
| bottom: "zero_2" | |
| bottom: "one" | |
| top: "nothing_2" | |
| name: "nothing_2" | |
| type: "EuclideanLoss" | |
| loss_weight: 0.0 | |
| } | |
| #----- Read crop gt 2d | |
| layer { | |
| name: "read_gt_2d" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "gt_joint_2d" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\crop_gt_2d\\" | |
| num_to_read: 42 | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #----- Read crop gt 2d | |
| layer { | |
| name: "read_gt_2d" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "gt_joint_2d" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\evaluation\\all_hand\\crop_gt_2d\\" | |
| num_to_read: 42 | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| #----- Read gt | |
| layer { | |
| name: "read_gt_3d_read" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "gt_joint_3d_read" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\training\\all_hand\\gt_3d\\" | |
| num_to_read: 63 | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| #----- Read gt | |
| layer { | |
| name: "read_gt_3d_read" | |
| type: "ReadBlobFromFileIndexing" | |
| bottom: "image_index" | |
| top: "gt_joint_3d_read" | |
| read_blob_from_file_indexing_param { | |
| file_prefix: "C:\\RHD_v1-1\\RHD_published_v2\\evaluation\\all_hand\\gt_3d\\" | |
| num_to_read: 63 | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| #-----gt 3d vector / 1000.0 | |
| layer { | |
| name: "gt_joint_3d" | |
| bottom: "gt_joint_3d_read" | |
| top: "gt_joint_3d" | |
| type: "ScaleVector" | |
| scale_vector_param { | |
| scale_factor: 0.001 | |
| } | |
| } | |
| #------to compute scale for ground truth s | |
| layer { | |
| bottom: "gt_joint_3d" | |
| top: "gt_norm_scale" | |
| name: "gt_norm_scale" | |
| type: "DeepHandModelCalcNormScale" | |
| } | |
| #----slice to root and other joints root_RHD = 0 | |
| layer { | |
| name: "slice_gt_joint_3d" | |
| type: "Slice" | |
| bottom: "gt_joint_3d" | |
| top: "gt_root" | |
| top: "gt_other_joint" | |
| slice_param { | |
| axis: 1 | |
| slice_point: 3 | |
| } | |
| } | |
| #---nothing | |
| layer { | |
| bottom: "gt_other_joint" | |
| bottom: "gt_other_joint" | |
| top: "nothing_gt_other_joint" | |
| type: "EuclideanLoss" | |
| loss_weight: 0.0 | |
| } | |
| #----take negative of gt root (3-d) | |
| layer { | |
| bottom: "gt_root" | |
| top: "neg_gt_root" | |
| type: "ScaleVector" | |
| scale_vector_param { | |
| scale_factor: -1.0 | |
| } | |
| } | |
| #-----slice gt_joint_3d to all | |
| layer { | |
| bottom: "gt_joint_3d" | |
| top: "gt_joint_3d_0_x" | |
| top: "gt_joint_3d_0_y" | |
| top: "gt_joint_3d_0_z" | |
| top: "gt_joint_3d_1_x" | |
| top: "gt_joint_3d_1_y" | |
| top: "gt_joint_3d_1_z" | |
| top: "gt_joint_3d_2_x" | |
| top: "gt_joint_3d_2_y" | |
| top: "gt_joint_3d_2_z" | |
| top: "gt_joint_3d_3_x" | |
| top: "gt_joint_3d_3_y" | |
| top: "gt_joint_3d_3_z" | |
| top: "gt_joint_3d_4_x" | |
| top: "gt_joint_3d_4_y" | |
| top: "gt_joint_3d_4_z" | |
| top: "gt_joint_3d_5_x" | |
| top: "gt_joint_3d_5_y" | |
| top: "gt_joint_3d_5_z" | |
| top: "gt_joint_3d_6_x" | |
| top: "gt_joint_3d_6_y" | |
| top: "gt_joint_3d_6_z" | |
| top: "gt_joint_3d_7_x" | |
| top: "gt_joint_3d_7_y" | |
| top: "gt_joint_3d_7_z" | |
| top: "gt_joint_3d_8_x" | |
| top: "gt_joint_3d_8_y" | |
| top: "gt_joint_3d_8_z" | |
| top: "gt_joint_3d_9_x" | |
| top: "gt_joint_3d_9_y" | |
| top: "gt_joint_3d_9_z" | |
| top: "gt_joint_3d_10_x" | |
| top: "gt_joint_3d_10_y" | |
| top: "gt_joint_3d_10_z" | |
| top: "gt_joint_3d_11_x" | |
| top: "gt_joint_3d_11_y" | |
| top: "gt_joint_3d_11_z" | |
| top: "gt_joint_3d_12_x" | |
| top: "gt_joint_3d_12_y" | |
| top: "gt_joint_3d_12_z" | |
| top: "gt_joint_3d_13_x" | |
| top: "gt_joint_3d_13_y" | |
| top: "gt_joint_3d_13_z" | |
| top: "gt_joint_3d_14_x" | |
| top: "gt_joint_3d_14_y" | |
| top: "gt_joint_3d_14_z" | |
| top: "gt_joint_3d_15_x" | |
| top: "gt_joint_3d_15_y" | |
| top: "gt_joint_3d_15_z" | |
| top: "gt_joint_3d_16_x" | |
| top: "gt_joint_3d_16_y" | |
| top: "gt_joint_3d_16_z" | |
| top: "gt_joint_3d_17_x" | |
| top: "gt_joint_3d_17_y" | |
| top: "gt_joint_3d_17_z" | |
| top: "gt_joint_3d_18_x" | |
| top: "gt_joint_3d_18_y" | |
| top: "gt_joint_3d_18_z" | |
| top: "gt_joint_3d_19_x" | |
| top: "gt_joint_3d_19_y" | |
| top: "gt_joint_3d_19_z" | |
| top: "gt_joint_3d_20_x" | |
| top: "gt_joint_3d_20_y" | |
| top: "gt_joint_3d_20_z" | |
| type: "Slice" | |
| slice_param { | |
| axis: 1 | |
| slice_point: 1 | |
| slice_point: 2 | |
| slice_point: 3 | |
| slice_point: 4 | |
| slice_point: 5 | |
| slice_point: 6 | |
| slice_point: 7 | |
| slice_point: 8 | |
| slice_point: 9 | |
| slice_point: 10 | |
| slice_point: 11 | |
| slice_point: 12 | |
| slice_point: 13 | |
| slice_point: 14 | |
| slice_point: 15 | |
| slice_point: 16 | |
| slice_point: 17 | |
| slice_point: 18 | |
| slice_point: 19 | |
| slice_point: 20 | |
| slice_point: 21 | |
| slice_point: 22 | |
| slice_point: 23 | |
| slice_point: 24 | |
| slice_point: 25 | |
| slice_point: 26 | |
| slice_point: 27 | |
| slice_point: 28 | |
| slice_point: 29 | |
| slice_point: 30 | |
| slice_point: 31 | |
| slice_point: 32 | |
| slice_point: 33 | |
| slice_point: 34 | |
| slice_point: 35 | |
| slice_point: 36 | |
| slice_point: 37 | |
| slice_point: 38 | |
| slice_point: 39 | |
| slice_point: 40 | |
| slice_point: 41 | |
| slice_point: 42 | |
| slice_point: 43 | |
| slice_point: 44 | |
| slice_point: 45 | |
| slice_point: 46 | |
| slice_point: 47 | |
| slice_point: 48 | |
| slice_point: 49 | |
| slice_point: 50 | |
| slice_point: 51 | |
| slice_point: 52 | |
| slice_point: 53 | |
| slice_point: 54 | |
| slice_point: 55 | |
| slice_point: 56 | |
| slice_point: 57 | |
| slice_point: 58 | |
| slice_point: 59 | |
| slice_point: 60 | |
| slice_point: 61 | |
| slice_point: 62 | |
| } | |
| } | |
| #----concat x component | |
| layer { | |
| bottom: "gt_joint_3d_0_x" | |
| bottom: "gt_joint_3d_1_x" | |
| bottom: "gt_joint_3d_2_x" | |
| bottom: "gt_joint_3d_3_x" | |
| bottom: "gt_joint_3d_4_x" | |
| bottom: "gt_joint_3d_5_x" | |
| bottom: "gt_joint_3d_6_x" | |
| bottom: "gt_joint_3d_7_x" | |
| bottom: "gt_joint_3d_8_x" | |
| bottom: "gt_joint_3d_9_x" | |
| bottom: "gt_joint_3d_10_x" | |
| bottom: "gt_joint_3d_11_x" | |
| bottom: "gt_joint_3d_12_x" | |
| bottom: "gt_joint_3d_13_x" | |
| bottom: "gt_joint_3d_14_x" | |
| bottom: "gt_joint_3d_15_x" | |
| bottom: "gt_joint_3d_16_x" | |
| bottom: "gt_joint_3d_17_x" | |
| bottom: "gt_joint_3d_18_x" | |
| bottom: "gt_joint_3d_19_x" | |
| bottom: "gt_joint_3d_20_x" | |
| top: "gt_joint_3d_x" | |
| name: "gt_joint_3d_x" | |
| type: "Concat" | |
| } | |
| #----concat y component | |
| layer { | |
| bottom: "gt_joint_3d_0_y" | |
| bottom: "gt_joint_3d_1_y" | |
| bottom: "gt_joint_3d_2_y" | |
| bottom: "gt_joint_3d_3_y" | |
| bottom: "gt_joint_3d_4_y" | |
| bottom: "gt_joint_3d_5_y" | |
| bottom: "gt_joint_3d_6_y" | |
| bottom: "gt_joint_3d_7_y" | |
| bottom: "gt_joint_3d_8_y" | |
| bottom: "gt_joint_3d_9_y" | |
| bottom: "gt_joint_3d_10_y" | |
| bottom: "gt_joint_3d_11_y" | |
| bottom: "gt_joint_3d_12_y" | |
| bottom: "gt_joint_3d_13_y" | |
| bottom: "gt_joint_3d_14_y" | |
| bottom: "gt_joint_3d_15_y" | |
| bottom: "gt_joint_3d_16_y" | |
| bottom: "gt_joint_3d_17_y" | |
| bottom: "gt_joint_3d_18_y" | |
| bottom: "gt_joint_3d_19_y" | |
| bottom: "gt_joint_3d_20_y" | |
| top: "gt_joint_3d_y" | |
| name: "gt_joint_3d_y" | |
| type: "Concat" | |
| } | |
| #----concat z component | |
| layer { | |
| bottom: "gt_joint_3d_0_z" | |
| bottom: "gt_joint_3d_1_z" | |
| bottom: "gt_joint_3d_2_z" | |
| bottom: "gt_joint_3d_3_z" | |
| bottom: "gt_joint_3d_4_z" | |
| bottom: "gt_joint_3d_5_z" | |
| bottom: "gt_joint_3d_6_z" | |
| bottom: "gt_joint_3d_7_z" | |
| bottom: "gt_joint_3d_8_z" | |
| bottom: "gt_joint_3d_9_z" | |
| bottom: "gt_joint_3d_10_z" | |
| bottom: "gt_joint_3d_11_z" | |
| bottom: "gt_joint_3d_12_z" | |
| bottom: "gt_joint_3d_13_z" | |
| bottom: "gt_joint_3d_14_z" | |
| bottom: "gt_joint_3d_15_z" | |
| bottom: "gt_joint_3d_16_z" | |
| bottom: "gt_joint_3d_17_z" | |
| bottom: "gt_joint_3d_18_z" | |
| bottom: "gt_joint_3d_19_z" | |
| bottom: "gt_joint_3d_20_z" | |
| top: "gt_joint_3d_z" | |
| name: "gt_joint_3d_z" | |
| type: "Concat" | |
| } | |
| layer { | |
| type: "Slice" | |
| bottom: "neg_gt_root" | |
| top: "neg_gt_root_x" | |
| top: "neg_gt_root_y" | |
| top: "neg_gt_root_z" | |
| slice_param { | |
| axis: 1 | |
| slice_point: 1 | |
| slice_point: 2 | |
| } | |
| } | |
| #---- minus root x to get rel x | |
| layer { | |
| type: "AddVectorBySingleVector" | |
| bottom: "gt_joint_3d_x" | |
| bottom: "neg_gt_root_x" | |
| top: "gt_rel_x" | |
| name: "gt_rel_x" | |
| } | |
| #---- minus root y to get rel y | |
| layer { | |
| type: "AddVectorBySingleVector" | |
| bottom: "gt_joint_3d_y" | |
| bottom: "neg_gt_root_y" | |
| top: "gt_rel_y" | |
| name: "gt_rel_y" | |
| } | |
| #---- minus root z to get rel z | |
| layer { | |
| type: "AddVectorBySingleVector" | |
| bottom: "gt_joint_3d_z" | |
| bottom: "neg_gt_root_z" | |
| top: "gt_rel_z" | |
| name: "gt_rel_z" | |
| } | |
| #-----ignore gt rel 3d x & y (root-relative 3d w/o normed) | |
| layer { | |
| bottom: "gt_rel_x" | |
| bottom: "gt_rel_y" | |
| top: "euc_gt_rel_xy" | |
| name: "euc_gt_rel_xy" | |
| type: "EuclideanLoss" | |
| loss_weight: 0.0 | |
| } | |
| #----- zkr[j] * C / s | |
| layer { | |
| bottom: "gt_rel_z" | |
| bottom: "gt_norm_scale" | |
| type: "ScaleVectorBySingleVector" | |
| top: "gt_rel_z_scale_norm" | |
| name: "gt_rel_z_scale_norm" | |
| } | |
| #---- + -minz | |
| layer { | |
| type: "AddVectorByConstant" | |
| bottom: "gt_rel_z_scale_norm" | |
| top: "gt_rel_z_scale_norm_minus_minz" | |
| name: "gt_rel_z_scale_norm_minus_minz" | |
| add_vector_by_constant_param { | |
| add_value: 0.326900 #- (-0.326900) | |
| } | |
| } | |
| #----- / (maxz - minz) | |
| layer { | |
| type: "ScaleVector" | |
| bottom: "gt_rel_z_scale_norm_minus_minz" | |
| top: "gt_rel_z_scale_norm_minus_minz_scale" | |
| name: "gt_rel_z_scale_norm_minus_minz_scale" | |
| scale_vector_param { | |
| scale_factor: 1.529285823520416 #/ (0.6539) | |
| } | |
| } | |
| #---gen 56x56 heatmap gt | |
| layer { | |
| bottom : "gt_joint_2d" | |
| top: "gt_56x56_hm" | |
| name: "gt_56x56_hm" | |
| type: "DeepHandModelGenHeatmapAllChannels" | |
| deep_hand_model_gen_heatmap_all_channels_param { | |
| gen_size: 56 | |
| render_sigma: 0.08 | |
| } | |
| } | |
| #---gen 28x28 heatmap gt | |
| layer { | |
| bottom : "gt_joint_2d" | |
| top: "gt_28x28_hm" | |
| name: "gt_28x28_hm" | |
| type: "DeepHandModelGenHeatmapAllChannels" | |
| deep_hand_model_gen_heatmap_all_channels_param { | |
| gen_size: 28 | |
| render_sigma: 0.08 | |
| } | |
| } | |
| #---gen 14x14 heatmap gt | |
| layer { | |
| bottom : "gt_joint_2d" | |
| top: "gt_14x14_hm" | |
| name: "gt_14x14_hm" | |
| type: "DeepHandModelGenHeatmapAllChannels" | |
| deep_hand_model_gen_heatmap_all_channels_param { | |
| gen_size: 14 | |
| render_sigma: 0.08 | |
| } | |
| } | |
| #---gen 7x7 heatmap gt | |
| layer { | |
| bottom : "gt_joint_2d" | |
| top: "gt_7x7_hm" | |
| name: "gt_7x7_hm" | |
| type: "DeepHandModelGenHeatmapAllChannels" | |
| deep_hand_model_gen_heatmap_all_channels_param { | |
| gen_size: 7 | |
| render_sigma: 0.08 | |
| } | |
| } | |
| #-----generate ground truth "depth" map as in paper | |
| #--Hand Pose Estimation via Latent 2.5D Heatmap Representation | |
| layer { | |
| type: "DeepHandModelGenDepthMap" | |
| bottom: "gt_56x56_hm" | |
| bottom: "gt_rel_z_scale_norm_minus_minz_scale" | |
| top: "gt_depth_map_56x56" | |
| name: "gt_depth_map_56x56" | |
| deep_hand_model_gen_depth_map_param { | |
| map_size: 56 | |
| joint_num: 21 | |
| depth_lower_bound: 0.0 | |
| depth_upper_bound: 1.0 | |
| } | |
| } | |
| layer { | |
| type: "DeepHandModelGenDepthMap" | |
| bottom: "gt_28x28_hm" | |
| bottom: "gt_rel_z_scale_norm_minus_minz_scale" | |
| top: "gt_depth_map_28x28" | |
| name: "gt_depth_map_28x28" | |
| deep_hand_model_gen_depth_map_param { | |
| map_size: 28 | |
| joint_num: 21 | |
| depth_lower_bound: 0.0 | |
| depth_upper_bound: 1.0 | |
| } | |
| } | |
| layer { | |
| type: "DeepHandModelGenDepthMap" | |
| bottom: "gt_14x14_hm" | |
| bottom: "gt_rel_z_scale_norm_minus_minz_scale" | |
| top: "gt_depth_map_14x14" | |
| name: "gt_depth_map_14x14" | |
| deep_hand_model_gen_depth_map_param { | |
| map_size: 14 | |
| joint_num: 21 | |
| depth_lower_bound: 0.0 | |
| depth_upper_bound: 1.0 | |
| } | |
| } | |
| layer { | |
| type: "DeepHandModelGenDepthMap" | |
| bottom: "gt_7x7_hm" | |
| bottom: "gt_rel_z_scale_norm_minus_minz_scale" | |
| top: "gt_depth_map_7x7" | |
| name: "gt_depth_map_7x7" | |
| deep_hand_model_gen_depth_map_param { | |
| map_size: 7 | |
| joint_num: 21 | |
| depth_lower_bound: 0.0 | |
| depth_upper_bound: 1.0 | |
| } | |
| } | |
| #-----concat ground truth latent heatmap and ground truth latent depth map | |
| layer { | |
| bottom: "gt_56x56_hm" | |
| bottom: "gt_depth_map_56x56" | |
| top: "gt_56x56_ske_s1" | |
| name: "gt_56x56_ske_s1" | |
| type: "Concat" | |
| } | |
| layer { | |
| bottom: "gt_28x28_hm" | |
| bottom: "gt_depth_map_28x28" | |
| top: "gt_28x28_ske_s1" | |
| name: "gt_28x28_ske_s1" | |
| type: "Concat" | |
| } | |
| layer { | |
| bottom: "gt_14x14_hm" | |
| bottom: "gt_depth_map_14x14" | |
| top: "gt_14x14_ske_s1" | |
| name: "gt_14x14_ske_s1" | |
| type: "Concat" | |
| } | |
| layer { | |
| bottom: "gt_7x7_hm" | |
| bottom: "gt_depth_map_7x7" | |
| top: "gt_7x7_ske_s1" | |
| name: "gt_7x7_ske_s1" | |
| type: "Concat" | |
| } | |
| layer { | |
| name: "conv1" | |
| type: "Convolution" | |
| bottom: "image" | |
| top: "conv1" | |
| convolution_param { | |
| num_output: 24 | |
| pad: 1 | |
| kernel_size: 3 | |
| stride: 2 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "conv1" | |
| top: "conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "conv1" | |
| top: "conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "conv1_scale" | |
| bottom: "conv1" | |
| top: "conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "conv1_relu" | |
| type: "ReLU" | |
| bottom: "conv1" | |
| top: "conv1" | |
| } | |
| layer { | |
| name: "pool1" | |
| type: "Pooling" | |
| bottom: "conv1" | |
| top: "pool1" | |
| pooling_param { | |
| pool: MAX | |
| kernel_size: 3 | |
| stride: 2 | |
| } | |
| } | |
| layer { | |
| name: "resx1_match_conv" | |
| type: "Pooling" | |
| bottom: "pool1" | |
| top: "resx1_match_conv" | |
| pooling_param { | |
| pool: AVE | |
| kernel_size: 3 | |
| stride: 2 | |
| } | |
| } | |
| layer { | |
| name: "resx1_conv1" | |
| type: "Convolution" | |
| bottom: "pool1" | |
| top: "resx1_conv1" | |
| convolution_param { | |
| num_output: 54 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx1_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx1_conv1" | |
| top: "resx1_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx1_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx1_conv1" | |
| top: "resx1_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx1_conv1_scale" | |
| bottom: "resx1_conv1" | |
| top: "resx1_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx1_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx1_conv1" | |
| top: "resx1_conv1" | |
| } | |
| layer { | |
| name: "resx1_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "resx1_conv1" | |
| top: "resx1_conv2" | |
| convolution_param { | |
| num_output: 54 | |
| kernel_size: 3 | |
| stride: 2 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx1_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx1_conv2" | |
| top: "resx1_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx1_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx1_conv2" | |
| top: "resx1_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx1_conv2_scale" | |
| bottom: "resx1_conv2" | |
| top: "resx1_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx1_conv3" | |
| type: "Convolution" | |
| bottom: "resx1_conv2" | |
| top: "resx1_conv3" | |
| convolution_param { | |
| num_output: 216 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx1_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx1_conv3" | |
| top: "resx1_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx1_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx1_conv3" | |
| top: "resx1_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx1_conv3_scale" | |
| bottom: "resx1_conv3" | |
| top: "resx1_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx1_concat" | |
| type: "Concat" | |
| bottom: "resx1_match_conv" | |
| bottom: "resx1_conv3" | |
| top: "resx1_concat" | |
| } | |
| layer { | |
| name: "resx1_concat_relu" | |
| type: "ReLU" | |
| bottom: "resx1_concat" | |
| top: "resx1_concat" | |
| } | |
| layer { | |
| name: "resx2_conv1" | |
| type: "Convolution" | |
| bottom: "resx1_concat" | |
| top: "resx2_conv1" | |
| convolution_param { | |
| num_output: 60 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx2_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx2_conv1" | |
| top: "resx2_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx2_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx2_conv1" | |
| top: "resx2_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx2_conv1_scale" | |
| bottom: "resx2_conv1" | |
| top: "resx2_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx2_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx2_conv1" | |
| top: "resx2_conv1" | |
| } | |
| layer { | |
| name: "shuffle2" | |
| type: "ShuffleChannel" | |
| bottom: "resx2_conv1" | |
| top: "shuffle2" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx2_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle2" | |
| top: "resx2_conv2" | |
| convolution_param { | |
| num_output: 60 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx2_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx2_conv2" | |
| top: "resx2_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx2_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx2_conv2" | |
| top: "resx2_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx2_conv2_scale" | |
| bottom: "resx2_conv2" | |
| top: "resx2_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx2_conv3" | |
| type: "Convolution" | |
| bottom: "resx2_conv2" | |
| top: "resx2_conv3" | |
| convolution_param { | |
| num_output: 240 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx2_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx2_conv3" | |
| top: "resx2_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx2_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx2_conv3" | |
| top: "resx2_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx2_conv3_scale" | |
| bottom: "resx2_conv3" | |
| top: "resx2_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx2_elewise" | |
| type: "Eltwise" | |
| bottom: "resx1_concat" | |
| bottom: "resx2_conv3" | |
| top: "resx2_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx2_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx2_elewise" | |
| top: "resx2_elewise" | |
| } | |
| layer { | |
| name: "resx3_conv1" | |
| type: "Convolution" | |
| bottom: "resx2_elewise" | |
| top: "resx3_conv1" | |
| convolution_param { | |
| num_output: 60 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx3_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx3_conv1" | |
| top: "resx3_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx3_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx3_conv1" | |
| top: "resx3_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx3_conv1_scale" | |
| bottom: "resx3_conv1" | |
| top: "resx3_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx3_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx3_conv1" | |
| top: "resx3_conv1" | |
| } | |
| layer { | |
| name: "shuffle3" | |
| type: "ShuffleChannel" | |
| bottom: "resx3_conv1" | |
| top: "shuffle3" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx3_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle3" | |
| top: "resx3_conv2" | |
| convolution_param { | |
| num_output: 60 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx3_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx3_conv2" | |
| top: "resx3_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx3_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx3_conv2" | |
| top: "resx3_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx3_conv2_scale" | |
| bottom: "resx3_conv2" | |
| top: "resx3_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx3_conv3" | |
| type: "Convolution" | |
| bottom: "resx3_conv2" | |
| top: "resx3_conv3" | |
| convolution_param { | |
| num_output: 240 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx3_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx3_conv3" | |
| top: "resx3_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx3_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx3_conv3" | |
| top: "resx3_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx3_conv3_scale" | |
| bottom: "resx3_conv3" | |
| top: "resx3_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx3_elewise" | |
| type: "Eltwise" | |
| bottom: "resx2_elewise" | |
| bottom: "resx3_conv3" | |
| top: "resx3_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx3_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx3_elewise" | |
| top: "resx3_elewise" | |
| } | |
| layer { | |
| name: "resx4_conv1" | |
| type: "Convolution" | |
| bottom: "resx3_elewise" | |
| top: "resx4_conv1" | |
| convolution_param { | |
| num_output: 60 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx4_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx4_conv1" | |
| top: "resx4_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx4_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx4_conv1" | |
| top: "resx4_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx4_conv1_scale" | |
| bottom: "resx4_conv1" | |
| top: "resx4_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx4_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx4_conv1" | |
| top: "resx4_conv1" | |
| } | |
| layer { | |
| name: "shuffle4" | |
| type: "ShuffleChannel" | |
| bottom: "resx4_conv1" | |
| top: "shuffle4" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx4_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle4" | |
| top: "resx4_conv2" | |
| convolution_param { | |
| num_output: 60 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx4_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx4_conv2" | |
| top: "resx4_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx4_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx4_conv2" | |
| top: "resx4_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx4_conv2_scale" | |
| bottom: "resx4_conv2" | |
| top: "resx4_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx4_conv3" | |
| type: "Convolution" | |
| bottom: "resx4_conv2" | |
| top: "resx4_conv3" | |
| convolution_param { | |
| num_output: 240 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx4_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx4_conv3" | |
| top: "resx4_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx4_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx4_conv3" | |
| top: "resx4_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx4_conv3_scale" | |
| bottom: "resx4_conv3" | |
| top: "resx4_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx4_elewise" | |
| type: "Eltwise" | |
| bottom: "resx3_elewise" | |
| bottom: "resx4_conv3" | |
| top: "resx4_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx4_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx4_elewise" | |
| top: "resx4_elewise" | |
| } | |
| layer { | |
| name: "resx5_match_conv" | |
| type: "Pooling" | |
| bottom: "resx4_elewise" | |
| top: "resx5_match_conv" | |
| pooling_param { | |
| pool: AVE | |
| kernel_size: 3 | |
| stride: 2 | |
| } | |
| } | |
| layer { | |
| name: "resx5_conv1" | |
| type: "Convolution" | |
| bottom: "resx4_elewise" | |
| top: "resx5_conv1" | |
| convolution_param { | |
| num_output: 60 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx5_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx5_conv1" | |
| top: "resx5_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx5_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx5_conv1" | |
| top: "resx5_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx5_conv1_scale" | |
| bottom: "resx5_conv1" | |
| top: "resx5_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx5_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx5_conv1" | |
| top: "resx5_conv1" | |
| } | |
| layer { | |
| name: "shuffle5" | |
| type: "ShuffleChannel" | |
| bottom: "resx5_conv1" | |
| top: "shuffle5" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx5_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle5" | |
| top: "resx5_conv2" | |
| convolution_param { | |
| num_output: 60 | |
| kernel_size: 3 | |
| stride: 2 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx5_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx5_conv2" | |
| top: "resx5_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx5_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx5_conv2" | |
| top: "resx5_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx5_conv2_scale" | |
| bottom: "resx5_conv2" | |
| top: "resx5_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx5_conv3" | |
| type: "Convolution" | |
| bottom: "resx5_conv2" | |
| top: "resx5_conv3" | |
| convolution_param { | |
| num_output: 240 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx5_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx5_conv3" | |
| top: "resx5_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx5_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx5_conv3" | |
| top: "resx5_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx5_conv3_scale" | |
| bottom: "resx5_conv3" | |
| top: "resx5_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx5_concat" | |
| type: "Concat" | |
| bottom: "resx5_match_conv" | |
| bottom: "resx5_conv3" | |
| top: "resx5_concat" | |
| } | |
| layer { | |
| name: "resx5_concat_relu" | |
| type: "ReLU" | |
| bottom: "resx5_concat" | |
| top: "resx5_concat" | |
| } | |
| layer { | |
| name: "resx6_conv1" | |
| type: "Convolution" | |
| bottom: "resx5_concat" | |
| top: "resx6_conv1" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx6_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx6_conv1" | |
| top: "resx6_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx6_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx6_conv1" | |
| top: "resx6_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx6_conv1_scale" | |
| bottom: "resx6_conv1" | |
| top: "resx6_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx6_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx6_conv1" | |
| top: "resx6_conv1" | |
| } | |
| layer { | |
| name: "shuffle6" | |
| type: "ShuffleChannel" | |
| bottom: "resx6_conv1" | |
| top: "shuffle6" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx6_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle6" | |
| top: "resx6_conv2" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx6_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx6_conv2" | |
| top: "resx6_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx6_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx6_conv2" | |
| top: "resx6_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx6_conv2_scale" | |
| bottom: "resx6_conv2" | |
| top: "resx6_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx6_conv3" | |
| type: "Convolution" | |
| bottom: "resx6_conv2" | |
| top: "resx6_conv3" | |
| convolution_param { | |
| num_output: 480 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx6_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx6_conv3" | |
| top: "resx6_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx6_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx6_conv3" | |
| top: "resx6_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx6_conv3_scale" | |
| bottom: "resx6_conv3" | |
| top: "resx6_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx6_elewise" | |
| type: "Eltwise" | |
| bottom: "resx5_concat" | |
| bottom: "resx6_conv3" | |
| top: "resx6_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx6_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx6_elewise" | |
| top: "resx6_elewise" | |
| } | |
| layer { | |
| name: "resx7_conv1" | |
| type: "Convolution" | |
| bottom: "resx6_elewise" | |
| top: "resx7_conv1" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx7_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx7_conv1" | |
| top: "resx7_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx7_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx7_conv1" | |
| top: "resx7_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx7_conv1_scale" | |
| bottom: "resx7_conv1" | |
| top: "resx7_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx7_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx7_conv1" | |
| top: "resx7_conv1" | |
| } | |
| layer { | |
| name: "shuffle7" | |
| type: "ShuffleChannel" | |
| bottom: "resx7_conv1" | |
| top: "shuffle7" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx7_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle7" | |
| top: "resx7_conv2" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx7_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx7_conv2" | |
| top: "resx7_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx7_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx7_conv2" | |
| top: "resx7_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx7_conv2_scale" | |
| bottom: "resx7_conv2" | |
| top: "resx7_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx7_conv3" | |
| type: "Convolution" | |
| bottom: "resx7_conv2" | |
| top: "resx7_conv3" | |
| convolution_param { | |
| num_output: 480 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx7_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx7_conv3" | |
| top: "resx7_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx7_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx7_conv3" | |
| top: "resx7_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx7_conv3_scale" | |
| bottom: "resx7_conv3" | |
| top: "resx7_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx7_elewise" | |
| type: "Eltwise" | |
| bottom: "resx6_elewise" | |
| bottom: "resx7_conv3" | |
| top: "resx7_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx7_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx7_elewise" | |
| top: "resx7_elewise" | |
| } | |
| layer { | |
| name: "resx8_conv1" | |
| type: "Convolution" | |
| bottom: "resx7_elewise" | |
| top: "resx8_conv1" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx8_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx8_conv1" | |
| top: "resx8_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx8_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx8_conv1" | |
| top: "resx8_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx8_conv1_scale" | |
| bottom: "resx8_conv1" | |
| top: "resx8_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx8_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx8_conv1" | |
| top: "resx8_conv1" | |
| } | |
| layer { | |
| name: "shuffle8" | |
| type: "ShuffleChannel" | |
| bottom: "resx8_conv1" | |
| top: "shuffle8" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx8_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle8" | |
| top: "resx8_conv2" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx8_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx8_conv2" | |
| top: "resx8_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx8_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx8_conv2" | |
| top: "resx8_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx8_conv2_scale" | |
| bottom: "resx8_conv2" | |
| top: "resx8_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx8_conv3" | |
| type: "Convolution" | |
| bottom: "resx8_conv2" | |
| top: "resx8_conv3" | |
| convolution_param { | |
| num_output: 480 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx8_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx8_conv3" | |
| top: "resx8_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx8_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx8_conv3" | |
| top: "resx8_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx8_conv3_scale" | |
| bottom: "resx8_conv3" | |
| top: "resx8_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx8_elewise" | |
| type: "Eltwise" | |
| bottom: "resx7_elewise" | |
| bottom: "resx8_conv3" | |
| top: "resx8_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx8_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx8_elewise" | |
| top: "resx8_elewise" | |
| } | |
| layer { | |
| name: "resx9_conv1" | |
| type: "Convolution" | |
| bottom: "resx8_elewise" | |
| top: "resx9_conv1" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx9_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx9_conv1" | |
| top: "resx9_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx9_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx9_conv1" | |
| top: "resx9_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx9_conv1_scale" | |
| bottom: "resx9_conv1" | |
| top: "resx9_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx9_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx9_conv1" | |
| top: "resx9_conv1" | |
| } | |
| layer { | |
| name: "shuffle9" | |
| type: "ShuffleChannel" | |
| bottom: "resx9_conv1" | |
| top: "shuffle9" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx9_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle9" | |
| top: "resx9_conv2" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx9_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx9_conv2" | |
| top: "resx9_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx9_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx9_conv2" | |
| top: "resx9_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx9_conv2_scale" | |
| bottom: "resx9_conv2" | |
| top: "resx9_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx9_conv3" | |
| type: "Convolution" | |
| bottom: "resx9_conv2" | |
| top: "resx9_conv3" | |
| convolution_param { | |
| num_output: 480 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx9_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx9_conv3" | |
| top: "resx9_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx9_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx9_conv3" | |
| top: "resx9_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx9_conv3_scale" | |
| bottom: "resx9_conv3" | |
| top: "resx9_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx9_elewise" | |
| type: "Eltwise" | |
| bottom: "resx8_elewise" | |
| bottom: "resx9_conv3" | |
| top: "resx9_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx9_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx9_elewise" | |
| top: "resx9_elewise" | |
| } | |
| layer { | |
| name: "resx10_conv1" | |
| type: "Convolution" | |
| bottom: "resx9_elewise" | |
| top: "resx10_conv1" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx10_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx10_conv1" | |
| top: "resx10_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx10_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx10_conv1" | |
| top: "resx10_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx10_conv1_scale" | |
| bottom: "resx10_conv1" | |
| top: "resx10_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx10_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx10_conv1" | |
| top: "resx10_conv1" | |
| } | |
| layer { | |
| name: "shuffle10" | |
| type: "ShuffleChannel" | |
| bottom: "resx10_conv1" | |
| top: "shuffle10" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx10_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle10" | |
| top: "resx10_conv2" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx10_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx10_conv2" | |
| top: "resx10_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx10_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx10_conv2" | |
| top: "resx10_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx10_conv2_scale" | |
| bottom: "resx10_conv2" | |
| top: "resx10_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx10_conv3" | |
| type: "Convolution" | |
| bottom: "resx10_conv2" | |
| top: "resx10_conv3" | |
| convolution_param { | |
| num_output: 480 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx10_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx10_conv3" | |
| top: "resx10_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx10_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx10_conv3" | |
| top: "resx10_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx10_conv3_scale" | |
| bottom: "resx10_conv3" | |
| top: "resx10_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx10_elewise" | |
| type: "Eltwise" | |
| bottom: "resx9_elewise" | |
| bottom: "resx10_conv3" | |
| top: "resx10_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx10_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx10_elewise" | |
| top: "resx10_elewise" | |
| } | |
| layer { | |
| name: "resx11_conv1" | |
| type: "Convolution" | |
| bottom: "resx10_elewise" | |
| top: "resx11_conv1" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx11_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx11_conv1" | |
| top: "resx11_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx11_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx11_conv1" | |
| top: "resx11_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx11_conv1_scale" | |
| bottom: "resx11_conv1" | |
| top: "resx11_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx11_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx11_conv1" | |
| top: "resx11_conv1" | |
| } | |
| layer { | |
| name: "shuffle11" | |
| type: "ShuffleChannel" | |
| bottom: "resx11_conv1" | |
| top: "shuffle11" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx11_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle11" | |
| top: "resx11_conv2" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx11_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx11_conv2" | |
| top: "resx11_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx11_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx11_conv2" | |
| top: "resx11_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx11_conv2_scale" | |
| bottom: "resx11_conv2" | |
| top: "resx11_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx11_conv3" | |
| type: "Convolution" | |
| bottom: "resx11_conv2" | |
| top: "resx11_conv3" | |
| convolution_param { | |
| num_output: 480 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx11_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx11_conv3" | |
| top: "resx11_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx11_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx11_conv3" | |
| top: "resx11_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx11_conv3_scale" | |
| bottom: "resx11_conv3" | |
| top: "resx11_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx11_elewise" | |
| type: "Eltwise" | |
| bottom: "resx10_elewise" | |
| bottom: "resx11_conv3" | |
| top: "resx11_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx11_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx11_elewise" | |
| top: "resx11_elewise" | |
| } | |
| layer { | |
| name: "resx12_conv1" | |
| type: "Convolution" | |
| bottom: "resx11_elewise" | |
| top: "resx12_conv1" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx12_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx12_conv1" | |
| top: "resx12_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx12_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx12_conv1" | |
| top: "resx12_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx12_conv1_scale" | |
| bottom: "resx12_conv1" | |
| top: "resx12_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx12_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx12_conv1" | |
| top: "resx12_conv1" | |
| } | |
| layer { | |
| name: "shuffle12" | |
| type: "ShuffleChannel" | |
| bottom: "resx12_conv1" | |
| top: "shuffle12" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx12_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle12" | |
| top: "resx12_conv2" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx12_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx12_conv2" | |
| top: "resx12_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx12_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx12_conv2" | |
| top: "resx12_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx12_conv2_scale" | |
| bottom: "resx12_conv2" | |
| top: "resx12_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx12_conv3" | |
| type: "Convolution" | |
| bottom: "resx12_conv2" | |
| top: "resx12_conv3" | |
| convolution_param { | |
| num_output: 480 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx12_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx12_conv3" | |
| top: "resx12_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx12_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx12_conv3" | |
| top: "resx12_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx12_conv3_scale" | |
| bottom: "resx12_conv3" | |
| top: "resx12_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx12_elewise" | |
| type: "Eltwise" | |
| bottom: "resx11_elewise" | |
| bottom: "resx12_conv3" | |
| top: "resx12_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx12_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx12_elewise" | |
| top: "resx12_elewise" | |
| } | |
| layer { | |
| name: "resx13_match_conv" | |
| type: "Pooling" | |
| bottom: "resx12_elewise" | |
| top: "resx13_match_conv" | |
| pooling_param { | |
| pool: AVE | |
| kernel_size: 3 | |
| stride: 2 | |
| } | |
| } | |
| layer { | |
| name: "resx13_conv1" | |
| type: "Convolution" | |
| bottom: "resx12_elewise" | |
| top: "resx13_conv1" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx13_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx13_conv1" | |
| top: "resx13_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx13_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx13_conv1" | |
| top: "resx13_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx13_conv1_scale" | |
| bottom: "resx13_conv1" | |
| top: "resx13_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx13_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx13_conv1" | |
| top: "resx13_conv1" | |
| } | |
| layer { | |
| name: "shuffle13" | |
| type: "ShuffleChannel" | |
| bottom: "resx13_conv1" | |
| top: "shuffle13" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx13_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle13" | |
| top: "resx13_conv2" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 3 | |
| stride: 2 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx13_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx13_conv2" | |
| top: "resx13_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx13_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx13_conv2" | |
| top: "resx13_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx13_conv2_scale" | |
| bottom: "resx13_conv2" | |
| top: "resx13_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx13_conv3" | |
| type: "Convolution" | |
| bottom: "resx13_conv2" | |
| top: "resx13_conv3" | |
| convolution_param { | |
| num_output: 480 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx13_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx13_conv3" | |
| top: "resx13_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx13_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx13_conv3" | |
| top: "resx13_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx13_conv3_scale" | |
| bottom: "resx13_conv3" | |
| top: "resx13_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx13_concat" | |
| type: "Concat" | |
| bottom: "resx13_match_conv" | |
| bottom: "resx13_conv3" | |
| top: "resx13_concat" | |
| } | |
| layer { | |
| name: "resx13_concat_relu" | |
| type: "ReLU" | |
| bottom: "resx13_concat" | |
| top: "resx13_concat" | |
| } | |
| layer { | |
| name: "resx14_conv1" | |
| type: "Convolution" | |
| bottom: "resx13_concat" | |
| top: "resx14_conv1" | |
| convolution_param { | |
| num_output: 240 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx14_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx14_conv1" | |
| top: "resx14_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx14_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx14_conv1" | |
| top: "resx14_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx14_conv1_scale" | |
| bottom: "resx14_conv1" | |
| top: "resx14_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx14_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx14_conv1" | |
| top: "resx14_conv1" | |
| } | |
| layer { | |
| name: "shuffle14" | |
| type: "ShuffleChannel" | |
| bottom: "resx14_conv1" | |
| top: "shuffle14" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx14_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle14" | |
| top: "resx14_conv2" | |
| convolution_param { | |
| num_output: 240 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx14_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx14_conv2" | |
| top: "resx14_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx14_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx14_conv2" | |
| top: "resx14_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx14_conv2_scale" | |
| bottom: "resx14_conv2" | |
| top: "resx14_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx14_conv3" | |
| type: "Convolution" | |
| bottom: "resx14_conv2" | |
| top: "resx14_conv3" | |
| convolution_param { | |
| num_output: 960 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx14_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx14_conv3" | |
| top: "resx14_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx14_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx14_conv3" | |
| top: "resx14_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx14_conv3_scale" | |
| bottom: "resx14_conv3" | |
| top: "resx14_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx14_elewise" | |
| type: "Eltwise" | |
| bottom: "resx13_concat" | |
| bottom: "resx14_conv3" | |
| top: "resx14_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx14_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx14_elewise" | |
| top: "resx14_elewise" | |
| } | |
| layer { | |
| name: "resx15_conv1" | |
| type: "Convolution" | |
| bottom: "resx14_elewise" | |
| top: "resx15_conv1" | |
| convolution_param { | |
| num_output: 240 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx15_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx15_conv1" | |
| top: "resx15_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx15_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx15_conv1" | |
| top: "resx15_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx15_conv1_scale" | |
| bottom: "resx15_conv1" | |
| top: "resx15_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx15_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx15_conv1" | |
| top: "resx15_conv1" | |
| } | |
| layer { | |
| name: "shuffle15" | |
| type: "ShuffleChannel" | |
| bottom: "resx15_conv1" | |
| top: "shuffle15" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx15_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle15" | |
| top: "resx15_conv2" | |
| convolution_param { | |
| num_output: 240 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx15_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx15_conv2" | |
| top: "resx15_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx15_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx15_conv2" | |
| top: "resx15_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx15_conv2_scale" | |
| bottom: "resx15_conv2" | |
| top: "resx15_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx15_conv3" | |
| type: "Convolution" | |
| bottom: "resx15_conv2" | |
| top: "resx15_conv3" | |
| convolution_param { | |
| num_output: 960 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx15_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx15_conv3" | |
| top: "resx15_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx15_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx15_conv3" | |
| top: "resx15_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx15_conv3_scale" | |
| bottom: "resx15_conv3" | |
| top: "resx15_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx15_elewise" | |
| type: "Eltwise" | |
| bottom: "resx14_elewise" | |
| bottom: "resx15_conv3" | |
| top: "resx15_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx15_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx15_elewise" | |
| top: "resx15_elewise" | |
| } | |
| layer { | |
| name: "resx16_conv1" | |
| type: "Convolution" | |
| bottom: "resx15_elewise" | |
| top: "resx16_conv1" | |
| convolution_param { | |
| num_output: 240 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx16_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx16_conv1" | |
| top: "resx16_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx16_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx16_conv1" | |
| top: "resx16_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx16_conv1_scale" | |
| bottom: "resx16_conv1" | |
| top: "resx16_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx16_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx16_conv1" | |
| top: "resx16_conv1" | |
| } | |
| layer { | |
| name: "shuffle16" | |
| type: "ShuffleChannel" | |
| bottom: "resx16_conv1" | |
| top: "shuffle16" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx16_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle16" | |
| top: "resx16_conv2" | |
| convolution_param { | |
| num_output: 240 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx16_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx16_conv2" | |
| top: "resx16_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx16_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx16_conv2" | |
| top: "resx16_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx16_conv2_scale" | |
| bottom: "resx16_conv2" | |
| top: "resx16_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx16_conv3" | |
| type: "Convolution" | |
| bottom: "resx16_conv2" | |
| top: "resx16_conv3" | |
| convolution_param { | |
| num_output: 960 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx16_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx16_conv3" | |
| top: "resx16_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx16_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx16_conv3" | |
| top: "resx16_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx16_conv3_scale" | |
| bottom: "resx16_conv3" | |
| top: "resx16_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx16_elewise" | |
| type: "Eltwise" | |
| bottom: "resx15_elewise" | |
| bottom: "resx16_conv3" | |
| top: "resx16_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx16_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx16_elewise" | |
| top: "resx16_elewise" | |
| } | |
| #----these following fully connected layers for [0, 1] normalized depth prediction branch is disabled | |
| #layer { | |
| #bottom: "resx16_elewise" | |
| #top: "resx16_elewise_global_avg" | |
| #name: "resx16_elewise_global_avg" | |
| #type: "Pooling" | |
| #pooling_param { | |
| #kernel_size: 7 | |
| #stride: 1 | |
| #pool: AVE | |
| #} | |
| #} | |
| #layer { | |
| #name: "FC1" | |
| #type: "InnerProduct" | |
| #bottom: "resx16_elewise_global_avg" | |
| #top: "FC1" | |
| #param { | |
| #lr_mult: 1 | |
| #decay_mult: 1 | |
| #} | |
| #param { | |
| #lr_mult: 2 | |
| #decay_mult: 0 | |
| #} | |
| #inner_product_param { | |
| #num_output: 512 | |
| #weight_filler { | |
| ##type: "xavier" | |
| #type: "gaussian" | |
| #std: 0.01 | |
| #} | |
| #} | |
| #} | |
| #layer { | |
| #name: "FC1_relu" | |
| #bottom: "FC1" | |
| #top: "FC1" | |
| #type: "ReLU" | |
| #} | |
| #layer { | |
| #name: "pred_joint_3d_scale_norm_rel_z" | |
| #type: "InnerProduct" | |
| #bottom: "FC1" | |
| #top: "pred_joint_3d_scale_norm_rel_z" | |
| #param { | |
| #lr_mult: 1 | |
| #decay_mult: 1 | |
| #} | |
| #param { | |
| #lr_mult: 2 | |
| #decay_mult: 0 | |
| #} | |
| #inner_product_param { | |
| #num_output: 21 | |
| #weight_filler { | |
| ##type: "xavier" | |
| #type: "gaussian" | |
| #std: 0.01 | |
| #} | |
| #} | |
| #} | |
| #-----------------2d branch | |
| layer { | |
| name: "resx17_conv1" | |
| type: "Convolution" | |
| bottom: "resx16_elewise" | |
| top: "resx17_conv1" | |
| convolution_param { | |
| num_output: 240 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx17_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx17_conv1" | |
| top: "resx17_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx17_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx17_conv1" | |
| top: "resx17_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx17_conv1_scale" | |
| bottom: "resx17_conv1" | |
| top: "resx17_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx17_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx17_conv1" | |
| top: "resx17_conv1" | |
| } | |
| layer { | |
| name: "shuffle17" | |
| type: "ShuffleChannel" | |
| bottom: "resx17_conv1" | |
| top: "shuffle17" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx17_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle17" | |
| top: "resx17_conv2" | |
| convolution_param { | |
| num_output: 240 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx17_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx17_conv2" | |
| top: "resx17_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx17_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx17_conv2" | |
| top: "resx17_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx17_conv2_scale" | |
| bottom: "resx17_conv2" | |
| top: "resx17_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx17_conv3" | |
| type: "Convolution" | |
| bottom: "resx17_conv2" | |
| top: "resx17_conv3" | |
| convolution_param { | |
| num_output: 42 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx17_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx17_conv3" | |
| top: "resx17_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx17_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx17_conv3" | |
| top: "resx17_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx17_conv3_scale" | |
| bottom: "resx17_conv3" | |
| top: "resx17_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx16_match_conv" | |
| type: "Convolution" | |
| bottom: "resx16_elewise" | |
| top: "resx16_match_conv" | |
| convolution_param { | |
| num_output: 42 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx17_elewise" | |
| type: "Eltwise" | |
| bottom: "resx17_conv3" | |
| bottom: "resx16_match_conv" | |
| top: "resx17_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| #layer { | |
| #name: "resx17_elewise_relu" | |
| #type: "ReLU" | |
| #bottom: "resx17_elewise" | |
| #top: "resx17_elewise" | |
| #} | |
| #------cross entropy loss of | |
| layer { | |
| bottom: "resx17_elewise" | |
| bottom: "gt_7x7_ske_s1" | |
| type: "SigmoidCrossEntropyLoss" | |
| top: "ske_7x7_ent_s1" | |
| name: "ske_7x7_ent_s1" | |
| loss_weight: 1.0 | |
| } | |
| #-------sigmoid | |
| layer { | |
| bottom: "resx17_elewise" | |
| top: "resx17_elewise_sigmoid" | |
| name: "sigmoid_resx17_elewise" | |
| type: "Sigmoid" | |
| } | |
| #-------Euclidean Loss of | |
| layer { | |
| bottom: "resx17_elewise_sigmoid" | |
| bottom: "gt_7x7_ske_s1" | |
| type: "EuclideanLoss" | |
| top: "ske_7x7_euc_s1" | |
| name: "ske_7x7_euc_s1" | |
| loss_weight: 0.0 | |
| } | |
| #-------Euclidean Loss of | |
| #layer { | |
| #bottom: "resx17_elewise" | |
| #bottom: "gt_7x7_ske" | |
| #type: "EuclideanLoss" | |
| #top: "ske_7x7_euc" | |
| #name: "ske_7x7_euc" | |
| #loss_weight: 1.0 | |
| #} | |
| #----------------------------------42x7x7->42x14x14 | |
| layer { | |
| bottom: "resx17_elewise" | |
| top: "resx18_deconv" | |
| name: "resx18_deconv" | |
| type: "Deconvolution" | |
| param { | |
| lr_mult: 1 | |
| } | |
| param { | |
| lr_mult: 2 | |
| } | |
| convolution_param { | |
| num_output: 42 | |
| pad: 0 | |
| group: 42 | |
| kernel_size: 2 | |
| stride: 2 | |
| weight_filler { | |
| type: "bilinear" | |
| } | |
| bias_filler { | |
| type: "gaussian" | |
| std: 0.01 | |
| } | |
| engine: CUDNN | |
| } | |
| } | |
| layer { | |
| name: "resx18_conv1" | |
| type: "Convolution" | |
| bottom: "resx18_deconv" | |
| top: "resx18_conv1" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx18_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx18_conv1" | |
| top: "resx18_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx18_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx18_conv1" | |
| top: "resx18_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx18_conv1_scale" | |
| bottom: "resx18_conv1" | |
| top: "resx18_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx18_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx18_conv1" | |
| top: "resx18_conv1" | |
| } | |
| layer { | |
| name: "shuffle18" | |
| type: "ShuffleChannel" | |
| bottom: "resx18_conv1" | |
| top: "shuffle18" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx18_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle18" | |
| top: "resx18_conv2" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx18_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx18_conv2" | |
| top: "resx18_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx18_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx18_conv2" | |
| top: "resx18_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx18_conv2_scale" | |
| bottom: "resx18_conv2" | |
| top: "resx18_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx18_conv3" | |
| type: "Convolution" | |
| bottom: "resx18_conv2" | |
| top: "resx18_conv3" | |
| convolution_param { | |
| num_output: 480 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx18_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx18_conv3" | |
| top: "resx18_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx18_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx18_conv3" | |
| top: "resx18_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx18_conv3_scale" | |
| bottom: "resx18_conv3" | |
| top: "resx18_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx18_elewise" | |
| type: "Eltwise" | |
| bottom: "resx18_conv3" | |
| bottom: "resx12_elewise" | |
| top: "resx18_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx18_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx18_elewise" | |
| top: "resx18_elewise" | |
| } | |
| layer { | |
| name: "resx19_conv1" | |
| type: "Convolution" | |
| bottom: "resx18_elewise" | |
| top: "resx19_conv1" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx19_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx19_conv1" | |
| top: "resx19_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx19_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx19_conv1" | |
| top: "resx19_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx19_conv1_scale" | |
| bottom: "resx19_conv1" | |
| top: "resx19_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx19_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx19_conv1" | |
| top: "resx19_conv1" | |
| } | |
| layer { | |
| name: "shuffle19" | |
| type: "ShuffleChannel" | |
| bottom: "resx19_conv1" | |
| top: "shuffle19" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx19_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle19" | |
| top: "resx19_conv2" | |
| convolution_param { | |
| num_output: 120 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx19_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx19_conv2" | |
| top: "resx19_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx19_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx19_conv2" | |
| top: "resx19_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx19_conv2_scale" | |
| bottom: "resx19_conv2" | |
| top: "resx19_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx19_conv3" | |
| type: "Convolution" | |
| bottom: "resx19_conv2" | |
| top: "resx19_conv3" | |
| convolution_param { | |
| num_output: 42 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx19_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx19_conv3" | |
| top: "resx19_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx19_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx19_conv3" | |
| top: "resx19_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx19_conv3_scale" | |
| bottom: "resx19_conv3" | |
| top: "resx19_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx18_match_conv" | |
| type: "Convolution" | |
| bottom: "resx18_elewise" | |
| top: "resx18_match_conv" | |
| convolution_param { | |
| num_output: 42 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx19_elewise" | |
| type: "Eltwise" | |
| bottom: "resx19_conv3" | |
| bottom: "resx18_match_conv" | |
| top: "resx19_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| #layer { | |
| #name: "resx19_elewise_relu" | |
| #type: "ReLU" | |
| #bottom: "resx19_elewise" | |
| #top: "resx19_elewise" | |
| #} | |
| #------cross entropy loss of | |
| layer { | |
| bottom: "resx19_elewise" | |
| bottom: "gt_14x14_ske_s1" | |
| type: "SigmoidCrossEntropyLoss" | |
| top: "ske_14x14_ent_s1" | |
| name: "ske_14x14_ent_s1" | |
| loss_weight: 1.0 | |
| } | |
| #-------sigmoid | |
| layer { | |
| bottom: "resx19_elewise" | |
| top: "resx19_elewise_sigmoid" | |
| name: "sigmoid_resx19_elewise" | |
| type: "Sigmoid" | |
| } | |
| #-------Euclidean Loss of | |
| layer { | |
| bottom: "resx19_elewise_sigmoid" | |
| bottom: "gt_14x14_ske_s1" | |
| type: "EuclideanLoss" | |
| top: "ske_14x14_euc_s1" | |
| name: "ske_14x14_euc_s1" | |
| loss_weight: 0.0 | |
| } | |
| #-------Euclidean Loss of | |
| #layer { | |
| #bottom: "resx19_elewise" | |
| #bottom: "gt_14x14_ske" | |
| #type: "EuclideanLoss" | |
| #top: "ske_14x14_euc" | |
| #name: "ske_14x14_euc" | |
| #loss_weight: 1.0 | |
| #} | |
| #----------------------------------42x14x14->42x28x28 | |
| layer { | |
| bottom: "resx19_elewise" | |
| top: "resx20_deconv" | |
| name: "resx20_deconv" | |
| type: "Deconvolution" | |
| param { | |
| lr_mult: 1 | |
| } | |
| param { | |
| lr_mult: 2 | |
| } | |
| convolution_param { | |
| num_output: 42 | |
| pad: 0 | |
| group: 42 | |
| kernel_size: 2 | |
| stride: 2 | |
| weight_filler { | |
| type: "bilinear" | |
| } | |
| bias_filler { | |
| type: "gaussian" | |
| std: 0.01 | |
| } | |
| engine: CUDNN | |
| } | |
| } | |
| layer { | |
| name: "resx20_conv1" | |
| type: "Convolution" | |
| bottom: "resx20_deconv" | |
| top: "resx20_conv1" | |
| convolution_param { | |
| num_output: 60 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx20_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx20_conv1" | |
| top: "resx20_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx20_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx20_conv1" | |
| top: "resx20_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx20_conv1_scale" | |
| bottom: "resx20_conv1" | |
| top: "resx20_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx20_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx20_conv1" | |
| top: "resx20_conv1" | |
| } | |
| layer { | |
| name: "shuffle20" | |
| type: "ShuffleChannel" | |
| bottom: "resx20_conv1" | |
| top: "shuffle20" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx20_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle20" | |
| top: "resx20_conv2" | |
| convolution_param { | |
| num_output: 60 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx20_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx20_conv2" | |
| top: "resx20_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx20_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx20_conv2" | |
| top: "resx20_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx20_conv2_scale" | |
| bottom: "resx20_conv2" | |
| top: "resx20_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx20_conv3" | |
| type: "Convolution" | |
| bottom: "resx20_conv2" | |
| top: "resx20_conv3" | |
| convolution_param { | |
| num_output: 240 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx20_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx20_conv3" | |
| top: "resx20_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx20_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx20_conv3" | |
| top: "resx20_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx20_conv3_scale" | |
| bottom: "resx20_conv3" | |
| top: "resx20_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx20_elewise" | |
| type: "Eltwise" | |
| bottom: "resx20_conv3" | |
| bottom: "resx4_elewise" | |
| top: "resx20_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx20_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx20_elewise" | |
| top: "resx20_elewise" | |
| } | |
| layer { | |
| name: "resx21_conv1" | |
| type: "Convolution" | |
| bottom: "resx20_elewise" | |
| top: "resx21_conv1" | |
| convolution_param { | |
| num_output: 60 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx21_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx21_conv1" | |
| top: "resx21_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx21_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx21_conv1" | |
| top: "resx21_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx21_conv1_scale" | |
| bottom: "resx21_conv1" | |
| top: "resx21_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx21_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx21_conv1" | |
| top: "resx21_conv1" | |
| } | |
| layer { | |
| name: "shuffle21" | |
| type: "ShuffleChannel" | |
| bottom: "resx21_conv1" | |
| top: "shuffle21" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx21_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle21" | |
| top: "resx21_conv2" | |
| convolution_param { | |
| num_output: 60 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx21_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx21_conv2" | |
| top: "resx21_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx21_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx21_conv2" | |
| top: "resx21_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx21_conv2_scale" | |
| bottom: "resx21_conv2" | |
| top: "resx21_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx21_conv3" | |
| type: "Convolution" | |
| bottom: "resx21_conv2" | |
| top: "resx21_conv3" | |
| convolution_param { | |
| num_output: 42 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx21_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx21_conv3" | |
| top: "resx21_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx21_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx21_conv3" | |
| top: "resx21_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx21_conv3_scale" | |
| bottom: "resx21_conv3" | |
| top: "resx21_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx20_match_conv" | |
| type: "Convolution" | |
| bottom: "resx20_elewise" | |
| top: "resx20_match_conv" | |
| convolution_param { | |
| num_output: 42 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx21_elewise" | |
| type: "Eltwise" | |
| bottom: "resx21_conv3" | |
| bottom: "resx20_match_conv" | |
| top: "resx21_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| #layer { | |
| #name: "resx21_elewise_relu" | |
| #type: "ReLU" | |
| #bottom: "resx21_elewise" | |
| #top: "resx21_elewise" | |
| #} | |
| #------cross entropy loss of | |
| layer { | |
| bottom: "resx21_elewise" | |
| bottom: "gt_28x28_ske_s1" | |
| type: "SigmoidCrossEntropyLoss" | |
| top: "ske_28x28_ent_s1" | |
| name: "ske_28x28_ent_s1" | |
| loss_weight: 1.0 | |
| } | |
| #-------sigmoid | |
| layer { | |
| bottom: "resx21_elewise" | |
| top: "resx21_elewise_sigmoid" | |
| name: "sigmoid_resx21_elewise" | |
| type: "Sigmoid" | |
| } | |
| #-------Euclidean Loss of | |
| layer { | |
| bottom: "resx21_elewise_sigmoid" | |
| bottom: "gt_28x28_ske_s1" | |
| type: "EuclideanLoss" | |
| top: "ske_28x28_euc_s1" | |
| name: "ske_28x28_euc_s1" | |
| loss_weight: 0.0 | |
| } | |
| #-------Euclidean Loss of | |
| #layer { | |
| #bottom: "resx21_elewise" | |
| #bottom: "gt_28x28_ske" | |
| #type: "EuclideanLoss" | |
| #top: "ske_28x28_euc" | |
| #name: "ske_28x28_euc" | |
| #loss_weight: 1.0 | |
| #} | |
| #----------------------------------42x14x14->42x28x28 | |
| layer { | |
| bottom: "resx21_elewise" | |
| top: "resx22_deconv" | |
| name: "resx22_deconv" | |
| type: "Deconvolution" | |
| param { | |
| lr_mult: 1 | |
| } | |
| param { | |
| lr_mult: 2 | |
| } | |
| convolution_param { | |
| num_output: 42 | |
| pad: 0 | |
| group: 42 | |
| kernel_size: 2 | |
| stride: 2 | |
| weight_filler { | |
| type: "bilinear" | |
| } | |
| bias_filler { | |
| type: "gaussian" | |
| std: 0.01 | |
| } | |
| engine: CUDNN | |
| } | |
| } | |
| layer { | |
| name: "resx22_conv1" | |
| type: "Convolution" | |
| bottom: "resx22_deconv" | |
| top: "resx22_conv1" | |
| convolution_param { | |
| num_output: 30 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx22_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx22_conv1" | |
| top: "resx22_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx22_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx22_conv1" | |
| top: "resx22_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx22_conv1_scale" | |
| bottom: "resx22_conv1" | |
| top: "resx22_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx22_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx22_conv1" | |
| top: "resx22_conv1" | |
| } | |
| layer { | |
| name: "shuffle22" | |
| type: "ShuffleChannel" | |
| bottom: "resx22_conv1" | |
| top: "shuffle22" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx22_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle22" | |
| top: "resx22_conv2" | |
| convolution_param { | |
| num_output: 30 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx22_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx22_conv2" | |
| top: "resx22_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx22_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx22_conv2" | |
| top: "resx22_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx22_conv2_scale" | |
| bottom: "resx22_conv2" | |
| top: "resx22_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx22_conv3" | |
| type: "Convolution" | |
| bottom: "resx22_conv2" | |
| top: "resx22_conv3" | |
| convolution_param { | |
| num_output: 54 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx22_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx22_conv3" | |
| top: "resx22_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx22_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx22_conv3" | |
| top: "resx22_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx22_conv3_scale" | |
| bottom: "resx22_conv3" | |
| top: "resx22_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx22_elewise" | |
| type: "Eltwise" | |
| bottom: "resx22_conv3" | |
| bottom: "resx1_conv1" | |
| top: "resx22_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| layer { | |
| name: "resx22_elewise_relu" | |
| type: "ReLU" | |
| bottom: "resx22_elewise" | |
| top: "resx22_elewise" | |
| } | |
| layer { | |
| name: "resx23_conv1" | |
| type: "Convolution" | |
| bottom: "resx22_elewise" | |
| top: "resx23_conv1" | |
| convolution_param { | |
| num_output: 30 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx23_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx23_conv1" | |
| top: "resx23_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx23_conv1_bn" | |
| type: "BatchNorm" | |
| bottom: "resx23_conv1" | |
| top: "resx23_conv1" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx23_conv1_scale" | |
| bottom: "resx23_conv1" | |
| top: "resx23_conv1" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx23_conv1_relu" | |
| type: "ReLU" | |
| bottom: "resx23_conv1" | |
| top: "resx23_conv1" | |
| } | |
| layer { | |
| name: "shuffle23" | |
| type: "ShuffleChannel" | |
| bottom: "resx23_conv1" | |
| top: "shuffle23" | |
| shuffle_channel_param { | |
| group: 3 | |
| } | |
| } | |
| layer { | |
| name: "resx23_conv2" | |
| type: "ConvolutionDepthwise" | |
| bottom: "shuffle23" | |
| top: "resx23_conv2" | |
| convolution_param { | |
| num_output: 30 | |
| kernel_size: 3 | |
| stride: 1 | |
| pad: 1 | |
| group: 3 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx23_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx23_conv2" | |
| top: "resx23_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx23_conv2_bn" | |
| type: "BatchNorm" | |
| bottom: "resx23_conv2" | |
| top: "resx23_conv2" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx23_conv2_scale" | |
| bottom: "resx23_conv2" | |
| top: "resx23_conv2" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx23_conv3" | |
| type: "Convolution" | |
| bottom: "resx23_conv2" | |
| top: "resx23_conv3" | |
| convolution_param { | |
| num_output: 42 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx23_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx23_conv3" | |
| top: "resx23_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "resx23_conv3_bn" | |
| type: "BatchNorm" | |
| bottom: "resx23_conv3" | |
| top: "resx23_conv3" | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| param { | |
| lr_mult: 0 | |
| decay_mult: 0 | |
| } | |
| batch_norm_param { | |
| use_global_stats: false | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| layer { | |
| name: "resx23_conv3_scale" | |
| bottom: "resx23_conv3" | |
| top: "resx23_conv3" | |
| type: "Scale" | |
| scale_param { | |
| filler { | |
| value: 1 | |
| } | |
| bias_term: true | |
| bias_filler { | |
| value: 0 | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx22_match_conv" | |
| type: "Convolution" | |
| bottom: "resx22_elewise" | |
| top: "resx22_match_conv" | |
| convolution_param { | |
| num_output: 42 | |
| kernel_size: 1 | |
| stride: 1 | |
| pad: 0 | |
| bias_term: false | |
| weight_filler { | |
| type: "msra" | |
| } | |
| } | |
| } | |
| layer { | |
| name: "resx23_elewise" | |
| type: "Eltwise" | |
| bottom: "resx23_conv3" | |
| bottom: "resx22_match_conv" | |
| top: "resx23_elewise" | |
| eltwise_param { | |
| operation: SUM | |
| } | |
| } | |
| #layer { | |
| #name: "resx23_elewise_relu" | |
| #type: "ReLU" | |
| #bottom: "resx23_elewise" | |
| #top: "resx23_elewise" | |
| #} | |
| #------cross entropy loss of | |
| layer { | |
| bottom: "resx23_elewise" | |
| bottom: "gt_56x56_ske_s1" | |
| type: "SigmoidCrossEntropyLoss" | |
| top: "ske_56x56_ent_s1" | |
| name: "ske_56x56_ent_s1" | |
| loss_weight: 1.0 | |
| } | |
| #-------sigmoid res5c_blob_14x14_rgb | |
| layer { | |
| bottom: "resx23_elewise" | |
| top: "resx23_elewise_sigmoid" | |
| name: "sigmoid_resx23_elewise" | |
| type: "Sigmoid" | |
| } | |
| #-------Euclidean Loss of | |
| layer { | |
| bottom: "resx23_elewise_sigmoid" | |
| bottom: "gt_56x56_ske_s1" | |
| type: "EuclideanLoss" | |
| top: "ske_56x56_euc_s1" | |
| name: "ske_56x56_euc_s1" | |
| loss_weight: 0.0 | |
| } | |
| #-------Euclidean Loss of | |
| #layer { | |
| #bottom: "resx23_elewise" | |
| #bottom: "gt_56x56_ske" | |
| #type: "EuclideanLoss" | |
| #top: "ske_56x56_euc" | |
| #name: "ske_56x56_euc" | |
| #loss_weight: 1.0 | |
| #} | |
| layer { | |
| name: "slice_map" | |
| bottom: "resx23_elewise_sigmoid" | |
| top: "latent_heatmap" | |
| top: "latent_depthmap" | |
| type: "Slice" | |
| slice_param { | |
| axis: 1 | |
| slice_point: 21 | |
| } | |
| } | |
| #normalization --- generate normalized heatmap (sum of all heatmap responses equals 1.0) | |
| layer { | |
| bottom: "latent_heatmap" | |
| top: "heatmap_norm" | |
| name: "norm_hm" | |
| type: "DeepHandModelNormalizationResponse" | |
| } | |
| #----numerical regression | |
| layer { | |
| bottom: "heatmap_norm" | |
| top: "pred_joint_2d" | |
| type: "DeepHandModelNumericalCoordinateRegression" | |
| name: "pred_joint_2d" | |
| } | |
| #supervision signal | |
| layer { | |
| bottom: "pred_joint_2d" | |
| bottom: "gt_joint_2d" | |
| top: "joint2dloss" | |
| name: "joint2dloss" | |
| type: "EuclideanLoss" | |
| loss_weight: 0.0 | |
| } | |
| layer { | |
| name: "output_depth_map" | |
| type: "DeepHandModelOutputHeatmapSepChannel" | |
| bottom: "latent_depthmap" | |
| #bottom: "gt_depth_map_56x56" | |
| bottom: "image_index" | |
| deep_hand_model_output_heatmap_sep_channel_param { | |
| save_size: 56 | |
| heatmap_size: 56 | |
| save_path: "E:\\tmp\\exp\\RHDLatentHMMap\\traindepth\\" | |
| } | |
| } | |
| layer { | |
| name: "output_joint" | |
| type: "DeepHandModelOutputJointOnSkeletonMapRHD" | |
| bottom: "image" | |
| bottom: "image" | |
| bottom: "image_index" | |
| bottom: "pred_joint_2d" | |
| bottom: "gt_joint_2d" | |
| deep_hand_model_output_joint_on_skeleton_rhd_param { | |
| show_gt: false | |
| save_path: "E:\\tmp\\exp\\RHDLatentHMMap\\train\\" | |
| save_size: 224 | |
| skeleton_size: 224 | |
| } | |
| include { | |
| phase: TRAIN | |
| } | |
| } | |
| layer { | |
| name: "output_joint" | |
| type: "DeepHandModelOutputJointOnSkeletonMapRHD" | |
| bottom: "image" | |
| bottom: "image" | |
| bottom: "image_index" | |
| bottom: "pred_joint_2d" | |
| bottom: "gt_joint_2d" | |
| deep_hand_model_output_joint_on_skeleton_rhd_param { | |
| show_gt: false | |
| save_path: "E:\\tmp\\exp\\RHDLatentHMMap\\valid\\" | |
| save_size: 224 | |
| skeleton_size: 224 | |
| } | |
| include { | |
| phase: TEST | |
| } | |
| } | |
| #----elementwisely multiply latent heatmap with latent depth map | |
| layer { | |
| bottom: "heatmap_norm" | |
| bottom: "latent_depthmap" | |
| top: "elemulmap" | |
| name: "elemulmap" | |
| type: "Eltwise" | |
| eltwise_param { | |
| operation: PROD | |
| } | |
| } | |
| #----slice to elementwisely multiplied map of all joints | |
| layer { | |
| bottom: "elemulmap" | |
| #joint 0 | |
| top: "elemulmap_0" | |
| top: "elemulmap_1" | |
| top: "elemulmap_2" | |
| top: "elemulmap_3" | |
| top: "elemulmap_4" | |
| top: "elemulmap_5" | |
| top: "elemulmap_6" | |
| top: "elemulmap_7" | |
| top: "elemulmap_8" | |
| top: "elemulmap_9" | |
| top: "elemulmap_10" | |
| top: "elemulmap_11" | |
| top: "elemulmap_12" | |
| top: "elemulmap_13" | |
| top: "elemulmap_14" | |
| top: "elemulmap_15" | |
| top: "elemulmap_16" | |
| top: "elemulmap_17" | |
| top: "elemulmap_18" | |
| top: "elemulmap_19" | |
| top: "elemulmap_20" | |
| name: "slice_elemulmap_to_all_joints" | |
| type: "Slice" | |
| slice_param { | |
| axis: 1 | |
| slice_point: 1 | |
| slice_point: 2 | |
| slice_point: 3 | |
| slice_point: 4 | |
| slice_point: 5 | |
| slice_point: 6 | |
| slice_point: 7 | |
| slice_point: 8 | |
| slice_point: 9 | |
| slice_point: 10 | |
| slice_point: 11 | |
| slice_point: 12 | |
| slice_point: 13 | |
| slice_point: 14 | |
| slice_point: 15 | |
| slice_point: 16 | |
| slice_point: 17 | |
| slice_point: 18 | |
| slice_point: 19 | |
| slice_point: 20 | |
| } | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_0" | |
| top: "elemulmap_0_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_0_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_0" | |
| bottom: "elemulmap_0_reshape" | |
| top: "pred_depth_0" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_0" | |
| top: "pred_depth_0_flat" | |
| name: "pred_depth_0_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_1" | |
| top: "elemulmap_1_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_1_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_1" | |
| bottom: "elemulmap_1_reshape" | |
| top: "pred_depth_1" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_1" | |
| top: "pred_depth_1_flat" | |
| name: "pred_depth_1_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_2" | |
| top: "elemulmap_2_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_2_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_2" | |
| bottom: "elemulmap_2_reshape" | |
| top: "pred_depth_2" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_2" | |
| top: "pred_depth_2_flat" | |
| name: "pred_depth_2_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_3" | |
| top: "elemulmap_3_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_3_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_3" | |
| bottom: "elemulmap_3_reshape" | |
| top: "pred_depth_3" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_3" | |
| top: "pred_depth_3_flat" | |
| name: "pred_depth_3_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_4" | |
| top: "elemulmap_4_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_4_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_4" | |
| bottom: "elemulmap_4_reshape" | |
| top: "pred_depth_4" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_4" | |
| top: "pred_depth_4_flat" | |
| name: "pred_depth_4_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_5" | |
| top: "elemulmap_5_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_5_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_5" | |
| bottom: "elemulmap_5_reshape" | |
| top: "pred_depth_5" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_5" | |
| top: "pred_depth_5_flat" | |
| name: "pred_depth_5_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_6" | |
| top: "elemulmap_6_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_6_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_6" | |
| bottom: "elemulmap_6_reshape" | |
| top: "pred_depth_6" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_6" | |
| top: "pred_depth_6_flat" | |
| name: "pred_depth_6_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_7" | |
| top: "elemulmap_7_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_7_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_7" | |
| bottom: "elemulmap_7_reshape" | |
| top: "pred_depth_7" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_7" | |
| top: "pred_depth_7_flat" | |
| name: "pred_depth_7_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_8" | |
| top: "elemulmap_8_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_8_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_8" | |
| bottom: "elemulmap_8_reshape" | |
| top: "pred_depth_8" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_8" | |
| top: "pred_depth_8_flat" | |
| name: "pred_depth_8_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_9" | |
| top: "elemulmap_9_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_9_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_9" | |
| bottom: "elemulmap_9_reshape" | |
| top: "pred_depth_9" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_9" | |
| top: "pred_depth_9_flat" | |
| name: "pred_depth_9_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_10" | |
| top: "elemulmap_10_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_10_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_10" | |
| bottom: "elemulmap_10_reshape" | |
| top: "pred_depth_10" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_10" | |
| top: "pred_depth_10_flat" | |
| name: "pred_depth_10_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_11" | |
| top: "elemulmap_11_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_11_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_11" | |
| bottom: "elemulmap_11_reshape" | |
| top: "pred_depth_11" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_11" | |
| top: "pred_depth_11_flat" | |
| name: "pred_depth_11_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_12" | |
| top: "elemulmap_12_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_12_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_12" | |
| bottom: "elemulmap_12_reshape" | |
| top: "pred_depth_12" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_12" | |
| top: "pred_depth_12_flat" | |
| name: "pred_depth_12_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_13" | |
| top: "elemulmap_13_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_13_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_13" | |
| bottom: "elemulmap_13_reshape" | |
| top: "pred_depth_13" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_13" | |
| top: "pred_depth_13_flat" | |
| name: "pred_depth_13_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_14" | |
| top: "elemulmap_14_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_14_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_14" | |
| bottom: "elemulmap_14_reshape" | |
| top: "pred_depth_14" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_14" | |
| top: "pred_depth_14_flat" | |
| name: "pred_depth_14_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_15" | |
| top: "elemulmap_15_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_15_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_15" | |
| bottom: "elemulmap_15_reshape" | |
| top: "pred_depth_15" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_15" | |
| top: "pred_depth_15_flat" | |
| name: "pred_depth_15_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_16" | |
| top: "elemulmap_16_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_16_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_16" | |
| bottom: "elemulmap_16_reshape" | |
| top: "pred_depth_16" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_16" | |
| top: "pred_depth_16_flat" | |
| name: "pred_depth_16_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_17" | |
| top: "elemulmap_17_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_17_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_17" | |
| bottom: "elemulmap_17_reshape" | |
| top: "pred_depth_17" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_17" | |
| top: "pred_depth_17_flat" | |
| name: "pred_depth_17_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_18" | |
| top: "elemulmap_18_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_18_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_18" | |
| bottom: "elemulmap_18_reshape" | |
| top: "pred_depth_18" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_18" | |
| top: "pred_depth_18_flat" | |
| name: "pred_depth_18_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_19" | |
| top: "elemulmap_19_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_19_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_19" | |
| bottom: "elemulmap_19_reshape" | |
| top: "pred_depth_19" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_19" | |
| top: "pred_depth_19_flat" | |
| name: "pred_depth_19_flat" | |
| } | |
| #-----reshape to channels*1*1 | |
| layer { | |
| bottom: "elemulmap_20" | |
| top: "elemulmap_20_reshape" | |
| type: "Reshape" | |
| name: "elemulmap_20_reshape" | |
| reshape_param { | |
| shape { | |
| dim: 0 | |
| dim: 3136 | |
| dim: 1 | |
| dim: 1 | |
| } | |
| } | |
| } | |
| #----add all channels (add all grids over the whole map) | |
| layer { | |
| type: "EltAddChannels" | |
| name: "elt_add_20" | |
| bottom: "elemulmap_20_reshape" | |
| top: "pred_depth_20" | |
| elt_add_channels_param { | |
| dim_lb: 0 | |
| dim_ub: 3135 | |
| } | |
| } | |
| #---flatten to a vector | |
| layer { | |
| type: "Flatten" | |
| bottom: "pred_depth_20" | |
| top: "pred_depth_20_flat" | |
| name: "pred_depth_20_flat" | |
| } | |
| #-----concat pred depth flat | |
| layer { | |
| type: "Concat" | |
| bottom: "pred_depth_0_flat" | |
| bottom: "pred_depth_1_flat" | |
| bottom: "pred_depth_2_flat" | |
| bottom: "pred_depth_3_flat" | |
| bottom: "pred_depth_4_flat" | |
| bottom: "pred_depth_5_flat" | |
| bottom: "pred_depth_6_flat" | |
| bottom: "pred_depth_7_flat" | |
| bottom: "pred_depth_8_flat" | |
| bottom: "pred_depth_9_flat" | |
| bottom: "pred_depth_10_flat" | |
| bottom: "pred_depth_11_flat" | |
| bottom: "pred_depth_12_flat" | |
| bottom: "pred_depth_13_flat" | |
| bottom: "pred_depth_14_flat" | |
| bottom: "pred_depth_15_flat" | |
| bottom: "pred_depth_16_flat" | |
| bottom: "pred_depth_17_flat" | |
| bottom: "pred_depth_18_flat" | |
| bottom: "pred_depth_19_flat" | |
| bottom: "pred_depth_20_flat" | |
| top: "pred_joint_3d_scale_norm_rel_z" | |
| name: "pred_joint_3d_scale_norm_rel_z" | |
| } | |
| #---recovery pred joint 2d to global | |
| layer { | |
| bottom: "pred_joint_2d" | |
| #bottom: "gt_joint_2d" | |
| name: "slice_pred_joint_2d" | |
| type: "Slice" | |
| top: "pred_joint_2d_0_x" | |
| top: "pred_joint_2d_0_y" | |
| top: "pred_joint_2d_1_x" | |
| top: "pred_joint_2d_1_y" | |
| top: "pred_joint_2d_2_x" | |
| top: "pred_joint_2d_2_y" | |
| top: "pred_joint_2d_3_x" | |
| top: "pred_joint_2d_3_y" | |
| top: "pred_joint_2d_4_x" | |
| top: "pred_joint_2d_4_y" | |
| top: "pred_joint_2d_5_x" | |
| top: "pred_joint_2d_5_y" | |
| top: "pred_joint_2d_6_x" | |
| top: "pred_joint_2d_6_y" | |
| top: "pred_joint_2d_7_x" | |
| top: "pred_joint_2d_7_y" | |
| top: "pred_joint_2d_8_x" | |
| top: "pred_joint_2d_8_y" | |
| top: "pred_joint_2d_9_x" | |
| top: "pred_joint_2d_9_y" | |
| top: "pred_joint_2d_10_x" | |
| top: "pred_joint_2d_10_y" | |
| top: "pred_joint_2d_11_x" | |
| top: "pred_joint_2d_11_y" | |
| top: "pred_joint_2d_12_x" | |
| top: "pred_joint_2d_12_y" | |
| top: "pred_joint_2d_13_x" | |
| top: "pred_joint_2d_13_y" | |
| top: "pred_joint_2d_14_x" | |
| top: "pred_joint_2d_14_y" | |
| top: "pred_joint_2d_15_x" | |
| top: "pred_joint_2d_15_y" | |
| top: "pred_joint_2d_16_x" | |
| top: "pred_joint_2d_16_y" | |
| top: "pred_joint_2d_17_x" | |
| top: "pred_joint_2d_17_y" | |
| top: "pred_joint_2d_18_x" | |
| top: "pred_joint_2d_18_y" | |
| top: "pred_joint_2d_19_x" | |
| top: "pred_joint_2d_19_y" | |
| top: "pred_joint_2d_20_x" | |
| top: "pred_joint_2d_20_y" | |
| } | |
| layer { | |
| bottom: "pred_joint_2d_0_x" | |
| bottom: "pred_joint_2d_1_x" | |
| bottom: "pred_joint_2d_2_x" | |
| bottom: "pred_joint_2d_3_x" | |
| bottom: "pred_joint_2d_4_x" | |
| bottom: "pred_joint_2d_5_x" | |
| bottom: "pred_joint_2d_6_x" | |
| bottom: "pred_joint_2d_7_x" | |
| bottom: "pred_joint_2d_8_x" | |
| bottom: "pred_joint_2d_9_x" | |
| bottom: "pred_joint_2d_10_x" | |
| bottom: "pred_joint_2d_11_x" | |
| bottom: "pred_joint_2d_12_x" | |
| bottom: "pred_joint_2d_13_x" | |
| bottom: "pred_joint_2d_14_x" | |
| bottom: "pred_joint_2d_15_x" | |
| bottom: "pred_joint_2d_16_x" | |
| bottom: "pred_joint_2d_17_x" | |
| bottom: "pred_joint_2d_18_x" | |
| bottom: "pred_joint_2d_19_x" | |
| bottom: "pred_joint_2d_20_x" | |
| top: "pred_joint_2d_x" | |
| name: "pred_joint_2d_x" | |
| type: "Concat" | |
| } | |
| layer { | |
| bottom: "pred_joint_2d_0_y" | |
| bottom: "pred_joint_2d_1_y" | |
| bottom: "pred_joint_2d_2_y" | |
| bottom: "pred_joint_2d_3_y" | |
| bottom: "pred_joint_2d_4_y" | |
| bottom: "pred_joint_2d_5_y" | |
| bottom: "pred_joint_2d_6_y" | |
| bottom: "pred_joint_2d_7_y" | |
| bottom: "pred_joint_2d_8_y" | |
| bottom: "pred_joint_2d_9_y" | |
| bottom: "pred_joint_2d_10_y" | |
| bottom: "pred_joint_2d_11_y" | |
| bottom: "pred_joint_2d_12_y" | |
| bottom: "pred_joint_2d_13_y" | |
| bottom: "pred_joint_2d_14_y" | |
| bottom: "pred_joint_2d_15_y" | |
| bottom: "pred_joint_2d_16_y" | |
| bottom: "pred_joint_2d_17_y" | |
| bottom: "pred_joint_2d_18_y" | |
| bottom: "pred_joint_2d_19_y" | |
| bottom: "pred_joint_2d_20_y" | |
| top: "pred_joint_2d_y" | |
| name: "pred_joint_2d_y" | |
| type: "Concat" | |
| } | |
| #----[0, 1] * width | |
| layer { | |
| bottom: "pred_joint_2d_x" | |
| bottom: "width" | |
| top: "pred_joint_2d_x_scalewidth" | |
| name: "pred_joint_2d_x_scalewidth" | |
| type: "ScaleVectorBySingleVector" | |
| } | |
| #----- + bbx_x1 to get raw projection | |
| layer { | |
| bottom: "pred_joint_2d_x_scalewidth" | |
| bottom: "bbx_x1" | |
| top: "pred_joint_2d_x_on_raw" | |
| name: "pred_joint_2d_x_on_raw" | |
| type: "AddVectorBySingleVector" | |
| } | |
| #----[0, 1] * height | |
| layer { | |
| bottom: "pred_joint_2d_y" | |
| bottom: "height" | |
| top: "pred_joint_2d_y_scaleheight" | |
| name: "pred_joint_2d_y_scaleheight" | |
| type: "ScaleVectorBySingleVector" | |
| } | |
| #----- + bbx_y1 to get raw projection | |
| layer { | |
| bottom: "pred_joint_2d_y_scaleheight" | |
| bottom: "bbx_y1" | |
| top: "pred_joint_2d_y_on_raw" | |
| name: "pred_joint_2d_y_on_raw" | |
| type: "AddVectorBySingleVector" | |
| } | |
| #----slice pred joint 2d x on raw to .... | |
| layer { | |
| bottom: "pred_joint_2d_x_on_raw" | |
| top: "pred_joint_2d_on_raw_0_x" | |
| top: "pred_joint_2d_on_raw_1_x" | |
| top: "pred_joint_2d_on_raw_2_x" | |
| top: "pred_joint_2d_on_raw_3_x" | |
| top: "pred_joint_2d_on_raw_4_x" | |
| top: "pred_joint_2d_on_raw_5_x" | |
| top: "pred_joint_2d_on_raw_6_x" | |
| top: "pred_joint_2d_on_raw_7_x" | |
| top: "pred_joint_2d_on_raw_8_x" | |
| top: "pred_joint_2d_on_raw_9_x" | |
| top: "pred_joint_2d_on_raw_10_x" | |
| top: "pred_joint_2d_on_raw_11_x" | |
| top: "pred_joint_2d_on_raw_12_x" | |
| top: "pred_joint_2d_on_raw_13_x" | |
| top: "pred_joint_2d_on_raw_14_x" | |
| top: "pred_joint_2d_on_raw_15_x" | |
| top: "pred_joint_2d_on_raw_16_x" | |
| top: "pred_joint_2d_on_raw_17_x" | |
| top: "pred_joint_2d_on_raw_18_x" | |
| top: "pred_joint_2d_on_raw_19_x" | |
| top: "pred_joint_2d_on_raw_20_x" | |
| type: "Slice" | |
| slice_param { | |
| axis: 1 | |
| slice_point: 1 | |
| slice_point: 2 | |
| slice_point: 3 | |
| slice_point: 4 | |
| slice_point: 5 | |
| slice_point: 6 | |
| slice_point: 7 | |
| slice_point: 8 | |
| slice_point: 9 | |
| slice_point: 10 | |
| slice_point: 11 | |
| slice_point: 12 | |
| slice_point: 13 | |
| slice_point: 14 | |
| slice_point: 15 | |
| slice_point: 16 | |
| slice_point: 17 | |
| slice_point: 18 | |
| slice_point: 19 | |
| slice_point: 20 | |
| } | |
| } | |
| #----slice pred joint 2d x on raw to .... | |
| layer { | |
| bottom: "pred_joint_2d_y_on_raw" | |
| top: "pred_joint_2d_on_raw_0_y" | |
| top: "pred_joint_2d_on_raw_1_y" | |
| top: "pred_joint_2d_on_raw_2_y" | |
| top: "pred_joint_2d_on_raw_3_y" | |
| top: "pred_joint_2d_on_raw_4_y" | |
| top: "pred_joint_2d_on_raw_5_y" | |
| top: "pred_joint_2d_on_raw_6_y" | |
| top: "pred_joint_2d_on_raw_7_y" | |
| top: "pred_joint_2d_on_raw_8_y" | |
| top: "pred_joint_2d_on_raw_9_y" | |
| top: "pred_joint_2d_on_raw_10_y" | |
| top: "pred_joint_2d_on_raw_11_y" | |
| top: "pred_joint_2d_on_raw_12_y" | |
| top: "pred_joint_2d_on_raw_13_y" | |
| top: "pred_joint_2d_on_raw_14_y" | |
| top: "pred_joint_2d_on_raw_15_y" | |
| top: "pred_joint_2d_on_raw_16_y" | |
| top: "pred_joint_2d_on_raw_17_y" | |
| top: "pred_joint_2d_on_raw_18_y" | |
| top: "pred_joint_2d_on_raw_19_y" | |
| top: "pred_joint_2d_on_raw_20_y" | |
| type: "Slice" | |
| slice_param { | |
| axis: 1 | |
| slice_point: 1 | |
| slice_point: 2 | |
| slice_point: 3 | |
| slice_point: 4 | |
| slice_point: 5 | |
| slice_point: 6 | |
| slice_point: 7 | |
| slice_point: 8 | |
| slice_point: 9 | |
| slice_point: 10 | |
| slice_point: 11 | |
| slice_point: 12 | |
| slice_point: 13 | |
| slice_point: 14 | |
| slice_point: 15 | |
| slice_point: 16 | |
| slice_point: 17 | |
| slice_point: 18 | |
| slice_point: 19 | |
| slice_point: 20 | |
| } | |
| } | |
| #------concat to form pred joint 2d raw in right sequence | |
| layer { | |
| bottom: "pred_joint_2d_on_raw_0_x" | |
| bottom: "pred_joint_2d_on_raw_0_y" | |
| bottom: "pred_joint_2d_on_raw_1_x" | |
| bottom: "pred_joint_2d_on_raw_1_y" | |
| bottom: "pred_joint_2d_on_raw_2_x" | |
| bottom: "pred_joint_2d_on_raw_2_y" | |
| bottom: "pred_joint_2d_on_raw_3_x" | |
| bottom: "pred_joint_2d_on_raw_3_y" | |
| bottom: "pred_joint_2d_on_raw_4_x" | |
| bottom: "pred_joint_2d_on_raw_4_y" | |
| bottom: "pred_joint_2d_on_raw_5_x" | |
| bottom: "pred_joint_2d_on_raw_5_y" | |
| bottom: "pred_joint_2d_on_raw_6_x" | |
| bottom: "pred_joint_2d_on_raw_6_y" | |
| bottom: "pred_joint_2d_on_raw_7_x" | |
| bottom: "pred_joint_2d_on_raw_7_y" | |
| bottom: "pred_joint_2d_on_raw_8_x" | |
| bottom: "pred_joint_2d_on_raw_8_y" | |
| bottom: "pred_joint_2d_on_raw_9_x" | |
| bottom: "pred_joint_2d_on_raw_9_y" | |
| bottom: "pred_joint_2d_on_raw_10_x" | |
| bottom: "pred_joint_2d_on_raw_10_y" | |
| bottom: "pred_joint_2d_on_raw_11_x" | |
| bottom: "pred_joint_2d_on_raw_11_y" | |
| bottom: "pred_joint_2d_on_raw_12_x" | |
| bottom: "pred_joint_2d_on_raw_12_y" | |
| bottom: "pred_joint_2d_on_raw_13_x" | |
| bottom: "pred_joint_2d_on_raw_13_y" | |
| bottom: "pred_joint_2d_on_raw_14_x" | |
| bottom: "pred_joint_2d_on_raw_14_y" | |
| bottom: "pred_joint_2d_on_raw_15_x" | |
| bottom: "pred_joint_2d_on_raw_15_y" | |
| bottom: "pred_joint_2d_on_raw_16_x" | |
| bottom: "pred_joint_2d_on_raw_16_y" | |
| bottom: "pred_joint_2d_on_raw_17_x" | |
| bottom: "pred_joint_2d_on_raw_17_y" | |
| bottom: "pred_joint_2d_on_raw_18_x" | |
| bottom: "pred_joint_2d_on_raw_18_y" | |
| bottom: "pred_joint_2d_on_raw_19_x" | |
| bottom: "pred_joint_2d_on_raw_19_y" | |
| bottom: "pred_joint_2d_on_raw_20_x" | |
| bottom: "pred_joint_2d_on_raw_20_y" | |
| top: "pred_joint_2d_on_raw_right_seq" | |
| name: "pred_joint_2d_on_raw_right_seq" | |
| type: "Concat" | |
| } | |
| #----- * (maxz - minz) | |
| layer { | |
| type: "ScaleVector" | |
| bottom: "pred_joint_3d_scale_norm_rel_z" | |
| #bottom: "gt_rel_z_scale_norm_minus_minz_scale" | |
| top: "pred_joint_3d_scale_norm_rel_z_minus_minz" | |
| name: "pred_joint_3d_scale_norm_rel_z_minus_minz" | |
| scale_vector_param { | |
| scale_factor: 0.6539 | |
| } | |
| } | |
| #-----+minz | |
| layer { | |
| type: "AddVectorByConstant" | |
| bottom: "pred_joint_3d_scale_norm_rel_z_minus_minz" | |
| top: "pred_scale_norm_zkr" | |
| name: "pred_joint_3d_scale_norm_rel_z_add" | |
| add_vector_by_constant_param { | |
| add_value: -0.326900 | |
| } | |
| } | |
| #-----Loss of | |
| layer { | |
| name: "joint3dloss" | |
| type: "EuclideanLoss" | |
| bottom: "pred_joint_3d_scale_norm_rel_z" | |
| bottom: "gt_rel_z_scale_norm_minus_minz_scale" | |
| top: "joint3dloss" | |
| loss_weight: 0.0 | |
| } | |
| #----------- | |
| #deduce scale normalized root | |
| #---a) joint 2d on raw projection | |
| #---b) global root-relative monocular camera frame 3d | |
| #---c) focus x | |
| #---d) focus y | |
| #---e) u0 offset | |
| #---f) v0 offset | |
| layer { | |
| bottom: "pred_joint_2d_on_raw_right_seq" | |
| bottom: "pred_scale_norm_zkr" | |
| bottom: "fx" | |
| bottom: "fy" | |
| bottom: "u0" | |
| bottom: "v0" | |
| top: "pred_root_z" | |
| name: "pred_root_z" | |
| type: "DeepHandModelSolveScaleNormalizedGlobalZRoot" | |
| deep_hand_model_solve_scale_normalized_global_z_root_param { | |
| joint_num: 21 | |
| n: 8 | |
| m: 0 | |
| c: 1.0 | |
| } | |
| } | |
| #deduce scale normalized global location | |
| layer { | |
| bottom: "pred_joint_2d_on_raw_right_seq" | |
| bottom: "pred_scale_norm_zkr" | |
| bottom: "fx" | |
| bottom: "fy" | |
| bottom: "u0" | |
| bottom: "v0" | |
| bottom: "pred_root_z" | |
| top: "pred_scale_norm_global_location" | |
| name: "pred_scale_norm_global_location" | |
| type: "DeepHandModelSolveScaleNormalizedGlobalLocation" | |
| deep_hand_model_solve_scale_normalized_global_location_param { | |
| joint_num: 21 | |
| } | |
| } | |
| #deduce global hand scale | |
| layer { | |
| bottom: "pred_scale_norm_global_location" | |
| bottom: "avg_bone" | |
| top: "global_hand_scale" | |
| name: "global_hand_scale" | |
| type: "DeepHandModelSolveGlobalHandScale" | |
| } | |
| #recover back using global hand scale | |
| layer { | |
| type: "ScaleVectorBySingleVector" | |
| bottom: "pred_scale_norm_global_location" | |
| bottom: "global_hand_scale" | |
| top: "pred_joint_global" | |
| name: "pred_joint_global" | |
| } | |
| #----take negative of gt 3d mono (global camera frame) | |
| layer { | |
| name: "neg_gt_joint_3d" | |
| bottom: "gt_joint_3d" | |
| #bottom: "gt_rel_z_scale_norm" | |
| top: "neg_gt_joint_3d" | |
| type: "ScaleVector" | |
| scale_vector_param { | |
| scale_factor: -1.0 | |
| } | |
| } | |
| #--- | |
| layer { | |
| bottom: "pred_joint_global" | |
| bottom: "gt_joint_3d" | |
| top: "globalloss" | |
| name: "globalloss" | |
| loss_weight: 0.0 | |
| type: "EuclideanLoss" | |
| } | |
| #----add pred global 3d with neg gt 3d mono | |
| layer { | |
| bottom: "pred_joint_global" | |
| bottom: "neg_gt_joint_3d" | |
| top: "calc" | |
| name: "calc" | |
| type: "Eltwise" | |
| } | |
| #----take negative of | |
| layer { | |
| name: "neg_gt_joint_2d" | |
| bottom: "gt_joint_2d" | |
| top: "neg_gt_joint_2d" | |
| type: "ScaleVector" | |
| scale_vector_param { | |
| scale_factor: -1.0 | |
| } | |
| } | |
| #----add pred | |
| layer { | |
| bottom: "pred_joint_2d" | |
| bottom: "neg_gt_joint_2d" | |
| top: "calc_2d" | |
| name: "calc_2d" | |
| type: "Eltwise" | |
| } | |
| layer { | |
| bottom: "calc_2d" | |
| bottom: "calc_2d" | |
| top: "calc_nothing_2d" | |
| type: "EuclideanLoss" | |
| loss_weight: 0.0 | |
| } | |
| layer { | |
| bottom: "calc" | |
| bottom: "calc" | |
| top: "calc_nothing" | |
| type: "EuclideanLoss" | |
| loss_weight: 0.0 | |
| } | |
| #-----output pred joint 3d global camera frame | |
| #layer { | |
| #name: "output_pred_global_3d" | |
| #type: "OutputBlob" | |
| #bottom: "calc" | |
| #bottom: "image_index" | |
| #output_blob_param { | |
| #save_path: "E:\\tmp\\exp\\RHDLatentHMMap\\train\\pred_global_3d\\" | |
| #blob_name: "pred_joint_global" | |
| #} | |
| #include { | |
| #phase: TRAIN | |
| #} | |
| #} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment