东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3227|回复: 6

[课堂笔记] caffe-ssd网络结构分析(东方耀)

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
发表于 2019-9-25 10:48:32 | 显示全部楼层 |阅读模式
caffe-ssd网络结构分析(东方耀)
caffe网络在线可视化工具(需要翻墙):http://ethereon.github.io/netscope/#/editor

层名+输出特征图的shape:data        (1, 3, 300, 300)
层名+输出特征图的shape:data_input_0_split_0        (1, 3, 300, 300)
层名+输出特征图的shape:data_input_0_split_1        (1, 3, 300, 300)
层名+输出特征图的shape:data_input_0_split_2        (1, 3, 300, 300)
层名+输出特征图的shape:data_input_0_split_3        (1, 3, 300, 300)
层名+输出特征图的shape:data_input_0_split_4        (1, 3, 300, 300)
层名+输出特征图的shape:data_input_0_split_5        (1, 3, 300, 300)
层名+输出特征图的shape:data_input_0_split_6        (1, 3, 300, 300)
层名+输出特征图的shape:conv1_1        (1, 32, 300, 300)
层名+输出特征图的shape:conv1_2        (1, 32, 300, 300)
层名+输出特征图的shape:pool1        (1, 32, 150, 150)
层名+输出特征图的shape:conv2_1        (1, 64, 150, 150)
层名+输出特征图的shape:conv2_2        (1, 64, 150, 150)
层名+输出特征图的shape:pool2        (1, 64, 75, 75)
层名+输出特征图的shape:conv3_1        (1, 128, 75, 75)
层名+输出特征图的shape:conv3_3        (1, 128, 75, 75)
层名+输出特征图的shape:pool3        (1, 128, 38, 38)
层名+输出特征图的shape:conv4_1        (1, 256, 38, 38)
层名+输出特征图的shape:conv4_3        (1, 256, 38, 38)
层名+输出特征图的shape:conv4_3_relu4_3_0_split_0        (1, 256, 38, 38)
层名+输出特征图的shape:conv4_3_relu4_3_0_split_1        (1, 256, 38, 38)
层名+输出特征图的shape:pool4        (1, 256, 19, 19)
层名+输出特征图的shape:conv5_1        (1, 256, 19, 19)
层名+输出特征图的shape:conv5_3        (1, 256, 19, 19)
层名+输出特征图的shape:conv5_3_relu5_3_0_split_0        (1, 256, 19, 19)
层名+输出特征图的shape:conv5_3_relu5_3_0_split_1        (1, 256, 19, 19)
层名+输出特征图的shape:conv5_3_relu5_3_0_split_2        (1, 256, 19, 19)
层名+输出特征图的shape:conv5_3_relu5_3_0_split_3        (1, 256, 19, 19)
层名+输出特征图的shape:conv6_1        (1, 256, 19, 19)
层名+输出特征图的shape:conv6_2        (1, 512, 10, 10)
层名+输出特征图的shape:conv6_2_conv6_2_relu_0_split_0        (1, 512, 10, 10)
层名+输出特征图的shape:conv6_2_conv6_2_relu_0_split_1        (1, 512, 10, 10)
层名+输出特征图的shape:conv6_2_conv6_2_relu_0_split_2        (1, 512, 10, 10)
层名+输出特征图的shape:conv6_2_conv6_2_relu_0_split_3        (1, 512, 10, 10)
层名+输出特征图的shape:conv7_1        (1, 128, 10, 10)
层名+输出特征图的shape:conv7_2        (1, 256, 5, 5)
层名+输出特征图的shape:conv7_2_conv7_2_relu_0_split_0        (1, 256, 5, 5)
层名+输出特征图的shape:conv7_2_conv7_2_relu_0_split_1        (1, 256, 5, 5)
层名+输出特征图的shape:conv7_2_conv7_2_relu_0_split_2        (1, 256, 5, 5)
层名+输出特征图的shape:conv7_2_conv7_2_relu_0_split_3        (1, 256, 5, 5)
层名+输出特征图的shape:conv8_1        (1, 128, 5, 5)
层名+输出特征图的shape:conv8_2        (1, 256, 3, 3)
层名+输出特征图的shape:conv8_2_conv8_2_relu_0_split_0        (1, 256, 3, 3)
层名+输出特征图的shape:conv8_2_conv8_2_relu_0_split_1        (1, 256, 3, 3)
层名+输出特征图的shape:conv8_2_conv8_2_relu_0_split_2        (1, 256, 3, 3)
层名+输出特征图的shape:conv8_2_conv8_2_relu_0_split_3        (1, 256, 3, 3)
层名+输出特征图的shape:conv9_1        (1, 128, 3, 3)
层名+输出特征图的shape:conv9_2        (1, 256, 1, 1)
层名+输出特征图的shape:conv9_2_conv9_2_relu_0_split_0        (1, 256, 1, 1)
层名+输出特征图的shape:conv9_2_conv9_2_relu_0_split_1        (1, 256, 1, 1)
层名+输出特征图的shape:conv9_2_conv9_2_relu_0_split_2        (1, 256, 1, 1)
层名+输出特征图的shape:conv4_3_norm        (1, 256, 38, 38)
层名+输出特征图的shape:conv4_3_norm_conv4_3_norm_0_split_0        (1, 256, 38, 38)
层名+输出特征图的shape:conv4_3_norm_conv4_3_norm_0_split_1        (1, 256, 38, 38)
层名+输出特征图的shape:conv4_3_norm_conv4_3_norm_0_split_2        (1, 256, 38, 38)
层名+输出特征图的shape:conv4_3_norm_mbox_loc        (1, 16, 38, 38)
层名+输出特征图的shape:conv4_3_norm_mbox_loc_perm        (1, 38, 38, 16)
层名+输出特征图的shape:conv4_3_norm_mbox_loc_flat        (1, 23104)
层名+输出特征图的shape:conv4_3_norm_mbox_conf        (1, 8, 38, 38)
层名+输出特征图的shape:conv4_3_norm_mbox_conf_perm        (1, 38, 38, 8)
层名+输出特征图的shape:conv4_3_norm_mbox_conf_flat        (1, 11552)
层名+输出特征图的shape:conv4_3_norm_mbox_priorbox        (1, 2, 23104)
层名+输出特征图的shape:conv5_3_mbox_loc        (1, 24, 19, 19)
层名+输出特征图的shape:conv5_3_mbox_loc_perm        (1, 19, 19, 24)
层名+输出特征图的shape:conv5_3_mbox_loc_flat        (1, 8664)
层名+输出特征图的shape:conv5_3_mbox_conf        (1, 12, 19, 19)
层名+输出特征图的shape:conv5_3_mbox_conf_perm        (1, 19, 19, 12)
层名+输出特征图的shape:conv5_3_mbox_conf_flat        (1, 4332)
层名+输出特征图的shape:conv5_3_mbox_priorbox        (1, 2, 8664)
层名+输出特征图的shape:conv6_2_mbox_loc        (1, 24, 10, 10)
层名+输出特征图的shape:conv6_2_mbox_loc_perm        (1, 10, 10, 24)
层名+输出特征图的shape:conv6_2_mbox_loc_flat        (1, 2400)
层名+输出特征图的shape:conv6_2_mbox_conf        (1, 12, 10, 10)
层名+输出特征图的shape:conv6_2_mbox_conf_perm        (1, 10, 10, 12)
层名+输出特征图的shape:conv6_2_mbox_conf_flat        (1, 1200)
层名+输出特征图的shape:conv6_2_mbox_priorbox        (1, 2, 2400)
层名+输出特征图的shape:conv7_2_mbox_loc        (1, 24, 5, 5)
层名+输出特征图的shape:conv7_2_mbox_loc_perm        (1, 5, 5, 24)
层名+输出特征图的shape:conv7_2_mbox_loc_flat        (1, 600)
层名+输出特征图的shape:conv7_2_mbox_conf        (1, 12, 5, 5)
层名+输出特征图的shape:conv7_2_mbox_conf_perm        (1, 5, 5, 12)
层名+输出特征图的shape:conv7_2_mbox_conf_flat        (1, 300)
层名+输出特征图的shape:conv7_2_mbox_priorbox        (1, 2, 600)
层名+输出特征图的shape:conv8_2_mbox_loc        (1, 16, 3, 3)
层名+输出特征图的shape:conv8_2_mbox_loc_perm        (1, 3, 3, 16)
层名+输出特征图的shape:conv8_2_mbox_loc_flat        (1, 144)
层名+输出特征图的shape:conv8_2_mbox_conf        (1, 8, 3, 3)
层名+输出特征图的shape:conv8_2_mbox_conf_perm        (1, 3, 3, 8)
层名+输出特征图的shape:conv8_2_mbox_conf_flat        (1, 72)
层名+输出特征图的shape:conv8_2_mbox_priorbox        (1, 2, 144)
层名+输出特征图的shape:conv9_2_mbox_loc        (1, 16, 1, 1)
层名+输出特征图的shape:conv9_2_mbox_loc_perm        (1, 1, 1, 16)
层名+输出特征图的shape:conv9_2_mbox_loc_flat        (1, 16)
层名+输出特征图的shape:conv9_2_mbox_conf        (1, 8, 1, 1)
层名+输出特征图的shape:conv9_2_mbox_conf_perm        (1, 1, 1, 8)
层名+输出特征图的shape:conv9_2_mbox_conf_flat        (1, 8)
层名+输出特征图的shape:conv9_2_mbox_priorbox        (1, 2, 16)
层名+输出特征图的shape:mbox_loc        (1, 34928)
层名+输出特征图的shape:mbox_conf        (1, 17464)
层名+输出特征图的shape:mbox_priorbox        (1, 2, 34928)
层名+输出特征图的shape:mbox_conf_reshape        (1, 8732, 2)
层名+输出特征图的shape:mbox_conf_softmax        (1, 8732, 2)
层名+输出特征图的shape:mbox_conf_flatten        (1, 17464)
层名+输出特征图的shape:detection_out        (1, 1, 200, 7)


# 定义了detection out  prior box层的输入
# 38*38 19*19 10*10 5*5 3*3 1*1
mbox_source_layers = ['conv4_3', 'conv5_3', 'conv6_2', 'conv7_2', 'conv8_2', 'conv9_2']

层名+卷积核W参数的shape:conv1_1        (32, 3, 3, 3)
层名+卷积核W参数的shape:conv1_2        (32, 32, 3, 3)
层名+卷积核W参数的shape:conv2_1        (64, 32, 3, 3)
层名+卷积核W参数的shape:conv2_2        (64, 64, 3, 3)
层名+卷积核W参数的shape:conv3_1        (128, 64, 3, 3)
层名+卷积核W参数的shape:conv3_3        (128, 128, 3, 3)
层名+卷积核W参数的shape:conv4_1        (256, 128, 3, 3)
层名+卷积核W参数的shape:conv4_3        (256, 256, 3, 3)
层名+卷积核W参数的shape:conv5_1        (256, 256, 3, 3)
层名+卷积核W参数的shape:conv5_3        (256, 256, 3, 3)
层名+卷积核W参数的shape:conv6_1        (256, 256, 1, 1)
层名+卷积核W参数的shape:conv6_2        (512, 256, 3, 3)
层名+卷积核W参数的shape:conv7_1        (128, 512, 1, 1)
层名+卷积核W参数的shape:conv7_2        (256, 128, 3, 3)
层名+卷积核W参数的shape:conv8_1        (128, 256, 1, 1)
层名+卷积核W参数的shape:conv8_2        (256, 128, 3, 3)
层名+卷积核W参数的shape:conv9_1        (128, 256, 1, 1)
层名+卷积核W参数的shape:conv9_2        (256, 128, 3, 3)
层名+卷积核W参数的shape:conv4_3_norm        (256,)
层名+卷积核W参数的shape:conv4_3_norm_mbox_loc        (16, 256, 3, 3)
层名+卷积核W参数的shape:conv4_3_norm_mbox_conf        (8, 256, 3, 3)
层名+卷积核W参数的shape:conv5_3_mbox_loc        (24, 256, 3, 3)
层名+卷积核W参数的shape:conv5_3_mbox_conf        (12, 256, 3, 3)
层名+卷积核W参数的shape:conv6_2_mbox_loc        (24, 512, 3, 3)
层名+卷积核W参数的shape:conv6_2_mbox_conf        (12, 512, 3, 3)
层名+卷积核W参数的shape:conv7_2_mbox_loc        (24, 256, 3, 3)
层名+卷积核W参数的shape:conv7_2_mbox_conf        (12, 256, 3, 3)
层名+卷积核W参数的shape:conv8_2_mbox_loc        (16, 256, 3, 3)
层名+卷积核W参数的shape:conv8_2_mbox_conf        (8, 256, 3, 3)
层名+卷积核W参数的shape:conv9_2_mbox_loc        (16, 256, 3, 3)
层名+卷积核W参数的shape:conv9_2_mbox_conf        (8, 256, 3, 3)





  1. name: "VGG_WiderFace_Caffe_SSD_300x300_deploy"
  2. input: "data"
  3. input_shape {
  4.   dim: 1
  5.   dim: 3
  6.   dim: 300
  7.   dim: 300
  8. }
  9. layer {
  10.   name: "conv1_1"
  11.   type: "Convolution"
  12.   bottom: "data"
  13.   top: "conv1_1"
  14.   param {
  15.     lr_mult: 1.0
  16.     decay_mult: 1.0
  17.   }
  18.   param {
  19.     lr_mult: 2.0
  20.     decay_mult: 0.0
  21.   }
  22.   convolution_param {
  23.     num_output: 32
  24.     pad: 1
  25.     kernel_size: 3
  26.     weight_filler {
  27.       type: "xavier"
  28.     }
  29.     bias_filler {
  30.       type: "constant"
  31.       value: 0.0
  32.     }
  33.   }
  34. }
  35. layer {
  36.   name: "relu1_1"
  37.   type: "ReLU"
  38.   bottom: "conv1_1"
  39.   top: "conv1_1"
  40. }
  41. layer {
  42.   name: "conv1_2"
  43.   type: "Convolution"
  44.   bottom: "conv1_1"
  45.   top: "conv1_2"
  46.   param {
  47.     lr_mult: 1.0
  48.     decay_mult: 1.0
  49.   }
  50.   param {
  51.     lr_mult: 2.0
  52.     decay_mult: 0.0
  53.   }
  54.   convolution_param {
  55.     num_output: 32
  56.     pad: 1
  57.     kernel_size: 3
  58.     weight_filler {
  59.       type: "xavier"
  60.     }
  61.     bias_filler {
  62.       type: "constant"
  63.       value: 0.0
  64.     }
  65.   }
  66. }
  67. layer {
  68.   name: "relu1_2"
  69.   type: "ReLU"
  70.   bottom: "conv1_2"
  71.   top: "conv1_2"
  72. }
  73. layer {
  74.   name: "pool1"
  75.   type: "Pooling"
  76.   bottom: "conv1_2"
  77.   top: "pool1"
  78.   pooling_param {
  79.     pool: MAX
  80.     kernel_size: 2
  81.     stride: 2
  82.   }
  83. }
  84. layer {
  85.   name: "conv2_1"
  86.   type: "Convolution"
  87.   bottom: "pool1"
  88.   top: "conv2_1"
  89.   param {
  90.     lr_mult: 1.0
  91.     decay_mult: 1.0
  92.   }
  93.   param {
  94.     lr_mult: 2.0
  95.     decay_mult: 0.0
  96.   }
  97.   convolution_param {
  98.     num_output: 64
  99.     pad: 1
  100.     kernel_size: 3
  101.     weight_filler {
  102.       type: "xavier"
  103.     }
  104.     bias_filler {
  105.       type: "constant"
  106.       value: 0.0
  107.     }
  108.   }
  109. }
  110. layer {
  111.   name: "relu2_1"
  112.   type: "ReLU"
  113.   bottom: "conv2_1"
  114.   top: "conv2_1"
  115. }
  116. layer {
  117.   name: "conv2_2"
  118.   type: "Convolution"
  119.   bottom: "conv2_1"
  120.   top: "conv2_2"
  121.   param {
  122.     lr_mult: 1.0
  123.     decay_mult: 1.0
  124.   }
  125.   param {
  126.     lr_mult: 2.0
  127.     decay_mult: 0.0
  128.   }
  129.   convolution_param {
  130.     num_output: 64
  131.     pad: 1
  132.     kernel_size: 3
  133.     weight_filler {
  134.       type: "xavier"
  135.     }
  136.     bias_filler {
  137.       type: "constant"
  138.       value: 0.0
  139.     }
  140.   }
  141. }
  142. layer {
  143.   name: "relu2_2"
  144.   type: "ReLU"
  145.   bottom: "conv2_2"
  146.   top: "conv2_2"
  147. }
  148. layer {
  149.   name: "pool2"
  150.   type: "Pooling"
  151.   bottom: "conv2_2"
  152.   top: "pool2"
  153.   pooling_param {
  154.     pool: MAX
  155.     kernel_size: 2
  156.     stride: 2
  157.   }
  158. }
  159. layer {
  160.   name: "conv3_1"
  161.   type: "Convolution"
  162.   bottom: "pool2"
  163.   top: "conv3_1"
  164.   param {
  165.     lr_mult: 1.0
  166.     decay_mult: 1.0
  167.   }
  168.   param {
  169.     lr_mult: 2.0
  170.     decay_mult: 0.0
  171.   }
  172.   convolution_param {
  173.     num_output: 128
  174.     pad: 1
  175.     kernel_size: 3
  176.     weight_filler {
  177.       type: "xavier"
  178.     }
  179.     bias_filler {
  180.       type: "constant"
  181.       value: 0.0
  182.     }
  183.   }
  184. }
  185. layer {
  186.   name: "relu3_1"
  187.   type: "ReLU"
  188.   bottom: "conv3_1"
  189.   top: "conv3_1"
  190. }
  191. layer {
  192.   name: "conv3_3"
  193.   type: "Convolution"
  194.   bottom: "conv3_1"
  195.   top: "conv3_3"
  196.   param {
  197.     lr_mult: 1.0
  198.     decay_mult: 1.0
  199.   }
  200.   param {
  201.     lr_mult: 2.0
  202.     decay_mult: 0.0
  203.   }
  204.   convolution_param {
  205.     num_output: 128
  206.     pad: 1
  207.     kernel_size: 3
  208.     weight_filler {
  209.       type: "xavier"
  210.     }
  211.     bias_filler {
  212.       type: "constant"
  213.       value: 0.0
  214.     }
  215.   }
  216. }
  217. layer {
  218.   name: "relu3_3"
  219.   type: "ReLU"
  220.   bottom: "conv3_3"
  221.   top: "conv3_3"
  222. }
  223. layer {
  224.   name: "pool3"
  225.   type: "Pooling"
  226.   bottom: "conv3_3"
  227.   top: "pool3"
  228.   pooling_param {
  229.     pool: MAX
  230.     kernel_size: 2
  231.     stride: 2
  232.   }
  233. }
  234. layer {
  235.   name: "conv4_1"
  236.   type: "Convolution"
  237.   bottom: "pool3"
  238.   top: "conv4_1"
  239.   param {
  240.     lr_mult: 1.0
  241.     decay_mult: 1.0
  242.   }
  243.   param {
  244.     lr_mult: 2.0
  245.     decay_mult: 0.0
  246.   }
  247.   convolution_param {
  248.     num_output: 256
  249.     pad: 1
  250.     kernel_size: 3
  251.     weight_filler {
  252.       type: "xavier"
  253.     }
  254.     bias_filler {
  255.       type: "constant"
  256.       value: 0.0
  257.     }
  258.   }
  259. }
  260. layer {
  261.   name: "relu4_1"
  262.   type: "ReLU"
  263.   bottom: "conv4_1"
  264.   top: "conv4_1"
  265. }
  266. layer {
  267.   name: "conv4_3"
  268.   type: "Convolution"
  269.   bottom: "conv4_1"
  270.   top: "conv4_3"
  271.   param {
  272.     lr_mult: 1.0
  273.     decay_mult: 1.0
  274.   }
  275.   param {
  276.     lr_mult: 2.0
  277.     decay_mult: 0.0
  278.   }
  279.   convolution_param {
  280.     num_output: 256
  281.     pad: 1
  282.     kernel_size: 3
  283.     weight_filler {
  284.       type: "xavier"
  285.     }
  286.     bias_filler {
  287.       type: "constant"
  288.       value: 0.0
  289.     }
  290.   }
  291. }
  292. layer {
  293.   name: "relu4_3"
  294.   type: "ReLU"
  295.   bottom: "conv4_3"
  296.   top: "conv4_3"
  297. }
  298. layer {
  299.   name: "pool4"
  300.   type: "Pooling"
  301.   bottom: "conv4_3"
  302.   top: "pool4"
  303.   pooling_param {
  304.     pool: MAX
  305.     kernel_size: 2
  306.     stride: 2
  307.   }
  308. }
  309. layer {
  310.   name: "conv5_1"
  311.   type: "Convolution"
  312.   bottom: "pool4"
  313.   top: "conv5_1"
  314.   param {
  315.     lr_mult: 1.0
  316.     decay_mult: 1.0
  317.   }
  318.   param {
  319.     lr_mult: 2.0
  320.     decay_mult: 0.0
  321.   }
  322.   convolution_param {
  323.     num_output: 256
  324.     pad: 1
  325.     kernel_size: 3
  326.     weight_filler {
  327.       type: "xavier"
  328.     }
  329.     bias_filler {
  330.       type: "constant"
  331.       value: 0.0
  332.     }
  333.     dilation: 1
  334.   }
  335. }
  336. layer {
  337.   name: "relu5_1"
  338.   type: "ReLU"
  339.   bottom: "conv5_1"
  340.   top: "conv5_1"
  341. }
  342. layer {
  343.   name: "conv5_3"
  344.   type: "Convolution"
  345.   bottom: "conv5_1"
  346.   top: "conv5_3"
  347.   param {
  348.     lr_mult: 1.0
  349.     decay_mult: 1.0
  350.   }
  351.   param {
  352.     lr_mult: 2.0
  353.     decay_mult: 0.0
  354.   }
  355.   convolution_param {
  356.     num_output: 256
  357.     pad: 1
  358.     kernel_size: 3
  359.     weight_filler {
  360.       type: "xavier"
  361.     }
  362.     bias_filler {
  363.       type: "constant"
  364.       value: 0.0
  365.     }
  366.     dilation: 1
  367.   }
  368. }
  369. layer {
  370.   name: "relu5_3"
  371.   type: "ReLU"
  372.   bottom: "conv5_3"
  373.   top: "conv5_3"
  374. }
  375. layer {
  376.   name: "conv6_1"
  377.   type: "Convolution"
  378.   bottom: "conv5_3"
  379.   top: "conv6_1"
  380.   param {
  381.     lr_mult: 1.0
  382.     decay_mult: 1.0
  383.   }
  384.   param {
  385.     lr_mult: 2.0
  386.     decay_mult: 0.0
  387.   }
  388.   convolution_param {
  389.     num_output: 256
  390.     pad: 0
  391.     kernel_size: 1
  392.     stride: 1
  393.     weight_filler {
  394.       type: "xavier"
  395.     }
  396.     bias_filler {
  397.       type: "constant"
  398.       value: 0.0
  399.     }
  400.   }
  401. }
  402. layer {
  403.   name: "conv6_1_relu"
  404.   type: "ReLU"
  405.   bottom: "conv6_1"
  406.   top: "conv6_1"
  407. }
  408. layer {
  409.   name: "conv6_2"
  410.   type: "Convolution"
  411.   bottom: "conv6_1"
  412.   top: "conv6_2"
  413.   param {
  414.     lr_mult: 1.0
  415.     decay_mult: 1.0
  416.   }
  417.   param {
  418.     lr_mult: 2.0
  419.     decay_mult: 0.0
  420.   }
  421.   convolution_param {
  422.     num_output: 512
  423.     pad: 1
  424.     kernel_size: 3
  425.     stride: 2
  426.     weight_filler {
  427.       type: "xavier"
  428.     }
  429.     bias_filler {
  430.       type: "constant"
  431.       value: 0.0
  432.     }
  433.   }
  434. }
  435. layer {
  436.   name: "conv6_2_relu"
  437.   type: "ReLU"
  438.   bottom: "conv6_2"
  439.   top: "conv6_2"
  440. }
  441. layer {
  442.   name: "conv7_1"
  443.   type: "Convolution"
  444.   bottom: "conv6_2"
  445.   top: "conv7_1"
  446.   param {
  447.     lr_mult: 1.0
  448.     decay_mult: 1.0
  449.   }
  450.   param {
  451.     lr_mult: 2.0
  452.     decay_mult: 0.0
  453.   }
  454.   convolution_param {
  455.     num_output: 128
  456.     pad: 0
  457.     kernel_size: 1
  458.     stride: 1
  459.     weight_filler {
  460.       type: "xavier"
  461.     }
  462.     bias_filler {
  463.       type: "constant"
  464.       value: 0.0
  465.     }
  466.   }
  467. }
  468. layer {
  469.   name: "conv7_1_relu"
  470.   type: "ReLU"
  471.   bottom: "conv7_1"
  472.   top: "conv7_1"
  473. }
  474. layer {
  475.   name: "conv7_2"
  476.   type: "Convolution"
  477.   bottom: "conv7_1"
  478.   top: "conv7_2"
  479.   param {
  480.     lr_mult: 1.0
  481.     decay_mult: 1.0
  482.   }
  483.   param {
  484.     lr_mult: 2.0
  485.     decay_mult: 0.0
  486.   }
  487.   convolution_param {
  488.     num_output: 256
  489.     pad: 1
  490.     kernel_size: 3
  491.     stride: 2
  492.     weight_filler {
  493.       type: "xavier"
  494.     }
  495.     bias_filler {
  496.       type: "constant"
  497.       value: 0.0
  498.     }
  499.   }
  500. }
  501. layer {
  502.   name: "conv7_2_relu"
  503.   type: "ReLU"
  504.   bottom: "conv7_2"
  505.   top: "conv7_2"
  506. }
  507. layer {
  508.   name: "conv8_1"
  509.   type: "Convolution"
  510.   bottom: "conv7_2"
  511.   top: "conv8_1"
  512.   param {
  513.     lr_mult: 1.0
  514.     decay_mult: 1.0
  515.   }
  516.   param {
  517.     lr_mult: 2.0
  518.     decay_mult: 0.0
  519.   }
  520.   convolution_param {
  521.     num_output: 128
  522.     pad: 0
  523.     kernel_size: 1
  524.     stride: 1
  525.     weight_filler {
  526.       type: "xavier"
  527.     }
  528.     bias_filler {
  529.       type: "constant"
  530.       value: 0.0
  531.     }
  532.   }
  533. }
  534. layer {
  535.   name: "conv8_1_relu"
  536.   type: "ReLU"
  537.   bottom: "conv8_1"
  538.   top: "conv8_1"
  539. }
  540. layer {
  541.   name: "conv8_2"
  542.   type: "Convolution"
  543.   bottom: "conv8_1"
  544.   top: "conv8_2"
  545.   param {
  546.     lr_mult: 1.0
  547.     decay_mult: 1.0
  548.   }
  549.   param {
  550.     lr_mult: 2.0
  551.     decay_mult: 0.0
  552.   }
  553.   convolution_param {
  554.     num_output: 256
  555.     pad: 0
  556.     kernel_size: 3
  557.     stride: 1
  558.     weight_filler {
  559.       type: "xavier"
  560.     }
  561.     bias_filler {
  562.       type: "constant"
  563.       value: 0.0
  564.     }
  565.   }
  566. }
  567. layer {
  568.   name: "conv8_2_relu"
  569.   type: "ReLU"
  570.   bottom: "conv8_2"
  571.   top: "conv8_2"
  572. }
  573. layer {
  574.   name: "conv9_1"
  575.   type: "Convolution"
  576.   bottom: "conv8_2"
  577.   top: "conv9_1"
  578.   param {
  579.     lr_mult: 1.0
  580.     decay_mult: 1.0
  581.   }
  582.   param {
  583.     lr_mult: 2.0
  584.     decay_mult: 0.0
  585.   }
  586.   convolution_param {
  587.     num_output: 128
  588.     pad: 0
  589.     kernel_size: 1
  590.     stride: 1
  591.     weight_filler {
  592.       type: "xavier"
  593.     }
  594.     bias_filler {
  595.       type: "constant"
  596.       value: 0.0
  597.     }
  598.   }
  599. }
  600. layer {
  601.   name: "conv9_1_relu"
  602.   type: "ReLU"
  603.   bottom: "conv9_1"
  604.   top: "conv9_1"
  605. }
  606. layer {
  607.   name: "conv9_2"
  608.   type: "Convolution"
  609.   bottom: "conv9_1"
  610.   top: "conv9_2"
  611.   param {
  612.     lr_mult: 1.0
  613.     decay_mult: 1.0
  614.   }
  615.   param {
  616.     lr_mult: 2.0
  617.     decay_mult: 0.0
  618.   }
  619.   convolution_param {
  620.     num_output: 256
  621.     pad: 0
  622.     kernel_size: 3
  623.     stride: 1
  624.     weight_filler {
  625.       type: "xavier"
  626.     }
  627.     bias_filler {
  628.       type: "constant"
  629.       value: 0.0
  630.     }
  631.   }
  632. }
  633. layer {
  634.   name: "conv9_2_relu"
  635.   type: "ReLU"
  636.   bottom: "conv9_2"
  637.   top: "conv9_2"
  638. }
  639. layer {
  640.   name: "conv4_3_norm"
  641.   type: "Normalize"
  642.   bottom: "conv4_3"
  643.   top: "conv4_3_norm"
  644.   norm_param {
  645.     across_spatial: false
  646.     scale_filler {
  647.       type: "constant"
  648.       value: 20.0
  649.     }
  650.     channel_shared: false
  651.   }
  652. }
  653. layer {
  654.   name: "conv4_3_norm_mbox_loc"
  655.   type: "Convolution"
  656.   bottom: "conv4_3_norm"
  657.   top: "conv4_3_norm_mbox_loc"
  658.   param {
  659.     lr_mult: 1.0
  660.     decay_mult: 1.0
  661.   }
  662.   param {
  663.     lr_mult: 2.0
  664.     decay_mult: 0.0
  665.   }
  666.   convolution_param {
  667.     num_output: 16
  668.     pad: 1
  669.     kernel_size: 3
  670.     stride: 1
  671.     weight_filler {
  672.       type: "xavier"
  673.     }
  674.     bias_filler {
  675.       type: "constant"
  676.       value: 0.0
  677.     }
  678.   }
  679. }
  680. layer {
  681.   name: "conv4_3_norm_mbox_loc_perm"
  682.   type: "Permute"
  683.   bottom: "conv4_3_norm_mbox_loc"
  684.   top: "conv4_3_norm_mbox_loc_perm"
  685.   permute_param {
  686.     order: 0
  687.     order: 2
  688.     order: 3
  689.     order: 1
  690.   }
  691. }
  692. layer {
  693.   name: "conv4_3_norm_mbox_loc_flat"
  694.   type: "Flatten"
  695.   bottom: "conv4_3_norm_mbox_loc_perm"
  696.   top: "conv4_3_norm_mbox_loc_flat"
  697.   flatten_param {
  698.     axis: 1
  699.   }
  700. }
  701. layer {
  702.   name: "conv4_3_norm_mbox_conf"
  703.   type: "Convolution"
  704.   bottom: "conv4_3_norm"
  705.   top: "conv4_3_norm_mbox_conf"
  706.   param {
  707.     lr_mult: 1.0
  708.     decay_mult: 1.0
  709.   }
  710.   param {
  711.     lr_mult: 2.0
  712.     decay_mult: 0.0
  713.   }
  714.   convolution_param {
  715.     num_output: 8
  716.     pad: 1
  717.     kernel_size: 3
  718.     stride: 1
  719.     weight_filler {
  720.       type: "xavier"
  721.     }
  722.     bias_filler {
  723.       type: "constant"
  724.       value: 0.0
  725.     }
  726.   }
  727. }
  728. layer {
  729.   name: "conv4_3_norm_mbox_conf_perm"
  730.   type: "Permute"
  731.   bottom: "conv4_3_norm_mbox_conf"
  732.   top: "conv4_3_norm_mbox_conf_perm"
  733.   permute_param {
  734.     order: 0
  735.     order: 2
  736.     order: 3
  737.     order: 1
  738.   }
  739. }
  740. layer {
  741.   name: "conv4_3_norm_mbox_conf_flat"
  742.   type: "Flatten"
  743.   bottom: "conv4_3_norm_mbox_conf_perm"
  744.   top: "conv4_3_norm_mbox_conf_flat"
  745.   flatten_param {
  746.     axis: 1
  747.   }
  748. }
  749. layer {
  750.   name: "conv4_3_norm_mbox_priorbox"
  751.   type: "PriorBox"
  752.   bottom: "conv4_3_norm"
  753.   bottom: "data"
  754.   top: "conv4_3_norm_mbox_priorbox"
  755.   prior_box_param {
  756.     min_size: 30.0
  757.     max_size: 60.0
  758.     aspect_ratio: 2.0
  759.     flip: true
  760.     clip: false
  761.     variance: 0.10000000149
  762.     variance: 0.10000000149
  763.     variance: 0.20000000298
  764.     variance: 0.20000000298
  765.     step: 8.0
  766.     offset: 0.5
  767.   }
  768. }
  769. layer {
  770.   name: "conv5_3_mbox_loc"
  771.   type: "Convolution"
  772.   bottom: "conv5_3"
  773.   top: "conv5_3_mbox_loc"
  774.   param {
  775.     lr_mult: 1.0
  776.     decay_mult: 1.0
  777.   }
  778.   param {
  779.     lr_mult: 2.0
  780.     decay_mult: 0.0
  781.   }
  782.   convolution_param {
  783.     num_output: 24
  784.     pad: 1
  785.     kernel_size: 3
  786.     stride: 1
  787.     weight_filler {
  788.       type: "xavier"
  789.     }
  790.     bias_filler {
  791.       type: "constant"
  792.       value: 0.0
  793.     }
  794.   }
  795. }
  796. layer {
  797.   name: "conv5_3_mbox_loc_perm"
  798.   type: "Permute"
  799.   bottom: "conv5_3_mbox_loc"
  800.   top: "conv5_3_mbox_loc_perm"
  801.   permute_param {
  802.     order: 0
  803.     order: 2
  804.     order: 3
  805.     order: 1
  806.   }
  807. }
  808. layer {
  809.   name: "conv5_3_mbox_loc_flat"
  810.   type: "Flatten"
  811.   bottom: "conv5_3_mbox_loc_perm"
  812.   top: "conv5_3_mbox_loc_flat"
  813.   flatten_param {
  814.     axis: 1
  815.   }
  816. }
  817. layer {
  818.   name: "conv5_3_mbox_conf"
  819.   type: "Convolution"
  820.   bottom: "conv5_3"
  821.   top: "conv5_3_mbox_conf"
  822.   param {
  823.     lr_mult: 1.0
  824.     decay_mult: 1.0
  825.   }
  826.   param {
  827.     lr_mult: 2.0
  828.     decay_mult: 0.0
  829.   }
  830.   convolution_param {
  831.     num_output: 12
  832.     pad: 1
  833.     kernel_size: 3
  834.     stride: 1
  835.     weight_filler {
  836.       type: "xavier"
  837.     }
  838.     bias_filler {
  839.       type: "constant"
  840.       value: 0.0
  841.     }
  842.   }
  843. }
  844. layer {
  845.   name: "conv5_3_mbox_conf_perm"
  846.   type: "Permute"
  847.   bottom: "conv5_3_mbox_conf"
  848.   top: "conv5_3_mbox_conf_perm"
  849.   permute_param {
  850.     order: 0
  851.     order: 2
  852.     order: 3
  853.     order: 1
  854.   }
  855. }
  856. layer {
  857.   name: "conv5_3_mbox_conf_flat"
  858.   type: "Flatten"
  859.   bottom: "conv5_3_mbox_conf_perm"
  860.   top: "conv5_3_mbox_conf_flat"
  861.   flatten_param {
  862.     axis: 1
  863.   }
  864. }
  865. layer {
  866.   name: "conv5_3_mbox_priorbox"
  867.   type: "PriorBox"
  868.   bottom: "conv5_3"
  869.   bottom: "data"
  870.   top: "conv5_3_mbox_priorbox"
  871.   prior_box_param {
  872.     min_size: 60.0
  873.     max_size: 111.0
  874.     aspect_ratio: 2.0
  875.     aspect_ratio: 3.0
  876.     flip: true
  877.     clip: false
  878.     variance: 0.10000000149
  879.     variance: 0.10000000149
  880.     variance: 0.20000000298
  881.     variance: 0.20000000298
  882.     step: 16.0
  883.     offset: 0.5
  884.   }
  885. }
  886. layer {
  887.   name: "conv6_2_mbox_loc"
  888.   type: "Convolution"
  889.   bottom: "conv6_2"
  890.   top: "conv6_2_mbox_loc"
  891.   param {
  892.     lr_mult: 1.0
  893.     decay_mult: 1.0
  894.   }
  895.   param {
  896.     lr_mult: 2.0
  897.     decay_mult: 0.0
  898.   }
  899.   convolution_param {
  900.     num_output: 24
  901.     pad: 1
  902.     kernel_size: 3
  903.     stride: 1
  904.     weight_filler {
  905.       type: "xavier"
  906.     }
  907.     bias_filler {
  908.       type: "constant"
  909.       value: 0.0
  910.     }
  911.   }
  912. }
  913. layer {
  914.   name: "conv6_2_mbox_loc_perm"
  915.   type: "Permute"
  916.   bottom: "conv6_2_mbox_loc"
  917.   top: "conv6_2_mbox_loc_perm"
  918.   permute_param {
  919.     order: 0
  920.     order: 2
  921.     order: 3
  922.     order: 1
  923.   }
  924. }
  925. layer {
  926.   name: "conv6_2_mbox_loc_flat"
  927.   type: "Flatten"
  928.   bottom: "conv6_2_mbox_loc_perm"
  929.   top: "conv6_2_mbox_loc_flat"
  930.   flatten_param {
  931.     axis: 1
  932.   }
  933. }
  934. layer {
  935.   name: "conv6_2_mbox_conf"
  936.   type: "Convolution"
  937.   bottom: "conv6_2"
  938.   top: "conv6_2_mbox_conf"
  939.   param {
  940.     lr_mult: 1.0
  941.     decay_mult: 1.0
  942.   }
  943.   param {
  944.     lr_mult: 2.0
  945.     decay_mult: 0.0
  946.   }
  947.   convolution_param {
  948.     num_output: 12
  949.     pad: 1
  950.     kernel_size: 3
  951.     stride: 1
  952.     weight_filler {
  953.       type: "xavier"
  954.     }
  955.     bias_filler {
  956.       type: "constant"
  957.       value: 0.0
  958.     }
  959.   }
  960. }
  961. layer {
  962.   name: "conv6_2_mbox_conf_perm"
  963.   type: "Permute"
  964.   bottom: "conv6_2_mbox_conf"
  965.   top: "conv6_2_mbox_conf_perm"
  966.   permute_param {
  967.     order: 0
  968.     order: 2
  969.     order: 3
  970.     order: 1
  971.   }
  972. }
  973. layer {
  974.   name: "conv6_2_mbox_conf_flat"
  975.   type: "Flatten"
  976.   bottom: "conv6_2_mbox_conf_perm"
  977.   top: "conv6_2_mbox_conf_flat"
  978.   flatten_param {
  979.     axis: 1
  980.   }
  981. }
  982. layer {
  983.   name: "conv6_2_mbox_priorbox"
  984.   type: "PriorBox"
  985.   bottom: "conv6_2"
  986.   bottom: "data"
  987.   top: "conv6_2_mbox_priorbox"
  988.   prior_box_param {
  989.     min_size: 111.0
  990.     max_size: 162.0
  991.     aspect_ratio: 2.0
  992.     aspect_ratio: 3.0
  993.     flip: true
  994.     clip: false
  995.     variance: 0.10000000149
  996.     variance: 0.10000000149
  997.     variance: 0.20000000298
  998.     variance: 0.20000000298
  999.     step: 32.0
  1000.     offset: 0.5
  1001.   }
  1002. }
  1003. layer {
  1004.   name: "conv7_2_mbox_loc"
  1005.   type: "Convolution"
  1006.   bottom: "conv7_2"
  1007.   top: "conv7_2_mbox_loc"
  1008.   param {
  1009.     lr_mult: 1.0
  1010.     decay_mult: 1.0
  1011.   }
  1012.   param {
  1013.     lr_mult: 2.0
  1014.     decay_mult: 0.0
  1015.   }
  1016.   convolution_param {
  1017.     num_output: 24
  1018.     pad: 1
  1019.     kernel_size: 3
  1020.     stride: 1
  1021.     weight_filler {
  1022.       type: "xavier"
  1023.     }
  1024.     bias_filler {
  1025.       type: "constant"
  1026.       value: 0.0
  1027.     }
  1028.   }
  1029. }
  1030. layer {
  1031.   name: "conv7_2_mbox_loc_perm"
  1032.   type: "Permute"
  1033.   bottom: "conv7_2_mbox_loc"
  1034.   top: "conv7_2_mbox_loc_perm"
  1035.   permute_param {
  1036.     order: 0
  1037.     order: 2
  1038.     order: 3
  1039.     order: 1
  1040.   }
  1041. }
  1042. layer {
  1043.   name: "conv7_2_mbox_loc_flat"
  1044.   type: "Flatten"
  1045.   bottom: "conv7_2_mbox_loc_perm"
  1046.   top: "conv7_2_mbox_loc_flat"
  1047.   flatten_param {
  1048.     axis: 1
  1049.   }
  1050. }
  1051. layer {
  1052.   name: "conv7_2_mbox_conf"
  1053.   type: "Convolution"
  1054.   bottom: "conv7_2"
  1055.   top: "conv7_2_mbox_conf"
  1056.   param {
  1057.     lr_mult: 1.0
  1058.     decay_mult: 1.0
  1059.   }
  1060.   param {
  1061.     lr_mult: 2.0
  1062.     decay_mult: 0.0
  1063.   }
  1064.   convolution_param {
  1065.     num_output: 12
  1066.     pad: 1
  1067.     kernel_size: 3
  1068.     stride: 1
  1069.     weight_filler {
  1070.       type: "xavier"
  1071.     }
  1072.     bias_filler {
  1073.       type: "constant"
  1074.       value: 0.0
  1075.     }
  1076.   }
  1077. }
  1078. layer {
  1079.   name: "conv7_2_mbox_conf_perm"
  1080.   type: "Permute"
  1081.   bottom: "conv7_2_mbox_conf"
  1082.   top: "conv7_2_mbox_conf_perm"
  1083.   permute_param {
  1084.     order: 0
  1085.     order: 2
  1086.     order: 3
  1087.     order: 1
  1088.   }
  1089. }
  1090. layer {
  1091.   name: "conv7_2_mbox_conf_flat"
  1092.   type: "Flatten"
  1093.   bottom: "conv7_2_mbox_conf_perm"
  1094.   top: "conv7_2_mbox_conf_flat"
  1095.   flatten_param {
  1096.     axis: 1
  1097.   }
  1098. }
  1099. layer {
  1100.   name: "conv7_2_mbox_priorbox"
  1101.   type: "PriorBox"
  1102.   bottom: "conv7_2"
  1103.   bottom: "data"
  1104.   top: "conv7_2_mbox_priorbox"
  1105.   prior_box_param {
  1106.     min_size: 162.0
  1107.     max_size: 213.0
  1108.     aspect_ratio: 2.0
  1109.     aspect_ratio: 3.0
  1110.     flip: true
  1111.     clip: false
  1112.     variance: 0.10000000149
  1113.     variance: 0.10000000149
  1114.     variance: 0.20000000298
  1115.     variance: 0.20000000298
  1116.     step: 64.0
  1117.     offset: 0.5
  1118.   }
  1119. }
  1120. layer {
  1121.   name: "conv8_2_mbox_loc"
  1122.   type: "Convolution"
  1123.   bottom: "conv8_2"
  1124.   top: "conv8_2_mbox_loc"
  1125.   param {
  1126.     lr_mult: 1.0
  1127.     decay_mult: 1.0
  1128.   }
  1129.   param {
  1130.     lr_mult: 2.0
  1131.     decay_mult: 0.0
  1132.   }
  1133.   convolution_param {
  1134.     num_output: 16
  1135.     pad: 1
  1136.     kernel_size: 3
  1137.     stride: 1
  1138.     weight_filler {
  1139.       type: "xavier"
  1140.     }
  1141.     bias_filler {
  1142.       type: "constant"
  1143.       value: 0.0
  1144.     }
  1145.   }
  1146. }
  1147. layer {
  1148.   name: "conv8_2_mbox_loc_perm"
  1149.   type: "Permute"
  1150.   bottom: "conv8_2_mbox_loc"
  1151.   top: "conv8_2_mbox_loc_perm"
  1152.   permute_param {
  1153.     order: 0
  1154.     order: 2
  1155.     order: 3
  1156.     order: 1
  1157.   }
  1158. }
  1159. layer {
  1160.   name: "conv8_2_mbox_loc_flat"
  1161.   type: "Flatten"
  1162.   bottom: "conv8_2_mbox_loc_perm"
  1163.   top: "conv8_2_mbox_loc_flat"
  1164.   flatten_param {
  1165.     axis: 1
  1166.   }
  1167. }
  1168. layer {
  1169.   name: "conv8_2_mbox_conf"
  1170.   type: "Convolution"
  1171.   bottom: "conv8_2"
  1172.   top: "conv8_2_mbox_conf"
  1173.   param {
  1174.     lr_mult: 1.0
  1175.     decay_mult: 1.0
  1176.   }
  1177.   param {
  1178.     lr_mult: 2.0
  1179.     decay_mult: 0.0
  1180.   }
  1181.   convolution_param {
  1182.     num_output: 8
  1183.     pad: 1
  1184.     kernel_size: 3
  1185.     stride: 1
  1186.     weight_filler {
  1187.       type: "xavier"
  1188.     }
  1189.     bias_filler {
  1190.       type: "constant"
  1191.       value: 0.0
  1192.     }
  1193.   }
  1194. }
  1195. layer {
  1196.   name: "conv8_2_mbox_conf_perm"
  1197.   type: "Permute"
  1198.   bottom: "conv8_2_mbox_conf"
  1199.   top: "conv8_2_mbox_conf_perm"
  1200.   permute_param {
  1201.     order: 0
  1202.     order: 2
  1203.     order: 3
  1204.     order: 1
  1205.   }
  1206. }
  1207. layer {
  1208.   name: "conv8_2_mbox_conf_flat"
  1209.   type: "Flatten"
  1210.   bottom: "conv8_2_mbox_conf_perm"
  1211.   top: "conv8_2_mbox_conf_flat"
  1212.   flatten_param {
  1213.     axis: 1
  1214.   }
  1215. }
  1216. layer {
  1217.   name: "conv8_2_mbox_priorbox"
  1218.   type: "PriorBox"
  1219.   bottom: "conv8_2"
  1220.   bottom: "data"
  1221.   top: "conv8_2_mbox_priorbox"
  1222.   prior_box_param {
  1223.     min_size: 213.0
  1224.     max_size: 264.0
  1225.     aspect_ratio: 2.0
  1226.     flip: true
  1227.     clip: false
  1228.     variance: 0.10000000149
  1229.     variance: 0.10000000149
  1230.     variance: 0.20000000298
  1231.     variance: 0.20000000298
  1232.     step: 100.0
  1233.     offset: 0.5
  1234.   }
  1235. }
  1236. layer {
  1237.   name: "conv9_2_mbox_loc"
  1238.   type: "Convolution"
  1239.   bottom: "conv9_2"
  1240.   top: "conv9_2_mbox_loc"
  1241.   param {
  1242.     lr_mult: 1.0
  1243.     decay_mult: 1.0
  1244.   }
  1245.   param {
  1246.     lr_mult: 2.0
  1247.     decay_mult: 0.0
  1248.   }
  1249.   convolution_param {
  1250.     num_output: 16
  1251.     pad: 1
  1252.     kernel_size: 3
  1253.     stride: 1
  1254.     weight_filler {
  1255.       type: "xavier"
  1256.     }
  1257.     bias_filler {
  1258.       type: "constant"
  1259.       value: 0.0
  1260.     }
  1261.   }
  1262. }
  1263. layer {
  1264.   name: "conv9_2_mbox_loc_perm"
  1265.   type: "Permute"
  1266.   bottom: "conv9_2_mbox_loc"
  1267.   top: "conv9_2_mbox_loc_perm"
  1268.   permute_param {
  1269.     order: 0
  1270.     order: 2
  1271.     order: 3
  1272.     order: 1
  1273.   }
  1274. }
  1275. layer {
  1276.   name: "conv9_2_mbox_loc_flat"
  1277.   type: "Flatten"
  1278.   bottom: "conv9_2_mbox_loc_perm"
  1279.   top: "conv9_2_mbox_loc_flat"
  1280.   flatten_param {
  1281.     axis: 1
  1282.   }
  1283. }
  1284. layer {
  1285.   name: "conv9_2_mbox_conf"
  1286.   type: "Convolution"
  1287.   bottom: "conv9_2"
  1288.   top: "conv9_2_mbox_conf"
  1289.   param {
  1290.     lr_mult: 1.0
  1291.     decay_mult: 1.0
  1292.   }
  1293.   param {
  1294.     lr_mult: 2.0
  1295.     decay_mult: 0.0
  1296.   }
  1297.   convolution_param {
  1298.     num_output: 8
  1299.     pad: 1
  1300.     kernel_size: 3
  1301.     stride: 1
  1302.     weight_filler {
  1303.       type: "xavier"
  1304.     }
  1305.     bias_filler {
  1306.       type: "constant"
  1307.       value: 0.0
  1308.     }
  1309.   }
  1310. }
  1311. layer {
  1312.   name: "conv9_2_mbox_conf_perm"
  1313.   type: "Permute"
  1314.   bottom: "conv9_2_mbox_conf"
  1315.   top: "conv9_2_mbox_conf_perm"
  1316.   permute_param {
  1317.     order: 0
  1318.     order: 2
  1319.     order: 3
  1320.     order: 1
  1321.   }
  1322. }
  1323. layer {
  1324.   name: "conv9_2_mbox_conf_flat"
  1325.   type: "Flatten"
  1326.   bottom: "conv9_2_mbox_conf_perm"
  1327.   top: "conv9_2_mbox_conf_flat"
  1328.   flatten_param {
  1329.     axis: 1
  1330.   }
  1331. }
  1332. layer {
  1333.   name: "conv9_2_mbox_priorbox"
  1334.   type: "PriorBox"
  1335.   bottom: "conv9_2"
  1336.   bottom: "data"
  1337.   top: "conv9_2_mbox_priorbox"
  1338.   prior_box_param {
  1339.     min_size: 264.0
  1340.     max_size: 315.0
  1341.     aspect_ratio: 2.0
  1342.     flip: true
  1343.     clip: false
  1344.     variance: 0.10000000149
  1345.     variance: 0.10000000149
  1346.     variance: 0.20000000298
  1347.     variance: 0.20000000298
  1348.     step: 300.0
  1349.     offset: 0.5
  1350.   }
  1351. }
  1352. layer {
  1353.   name: "mbox_loc"
  1354.   type: "Concat"
  1355.   bottom: "conv4_3_norm_mbox_loc_flat"
  1356.   bottom: "conv5_3_mbox_loc_flat"
  1357.   bottom: "conv6_2_mbox_loc_flat"
  1358.   bottom: "conv7_2_mbox_loc_flat"
  1359.   bottom: "conv8_2_mbox_loc_flat"
  1360.   bottom: "conv9_2_mbox_loc_flat"
  1361.   top: "mbox_loc"
  1362.   concat_param {
  1363.     axis: 1
  1364.   }
  1365. }
  1366. layer {
  1367.   name: "mbox_conf"
  1368.   type: "Concat"
  1369.   bottom: "conv4_3_norm_mbox_conf_flat"
  1370.   bottom: "conv5_3_mbox_conf_flat"
  1371.   bottom: "conv6_2_mbox_conf_flat"
  1372.   bottom: "conv7_2_mbox_conf_flat"
  1373.   bottom: "conv8_2_mbox_conf_flat"
  1374.   bottom: "conv9_2_mbox_conf_flat"
  1375.   top: "mbox_conf"
  1376.   concat_param {
  1377.     axis: 1
  1378.   }
  1379. }
  1380. layer {
  1381.   name: "mbox_priorbox"
  1382.   type: "Concat"
  1383.   bottom: "conv4_3_norm_mbox_priorbox"
  1384.   bottom: "conv5_3_mbox_priorbox"
  1385.   bottom: "conv6_2_mbox_priorbox"
  1386.   bottom: "conv7_2_mbox_priorbox"
  1387.   bottom: "conv8_2_mbox_priorbox"
  1388.   bottom: "conv9_2_mbox_priorbox"
  1389.   top: "mbox_priorbox"
  1390.   concat_param {
  1391.     axis: 2
  1392.   }
  1393. }
  1394. layer {
  1395.   name: "mbox_conf_reshape"
  1396.   type: "Reshape"
  1397.   bottom: "mbox_conf"
  1398.   top: "mbox_conf_reshape"
  1399.   reshape_param {
  1400.     shape {
  1401.       dim: 0
  1402.       dim: -1
  1403.       dim: 2
  1404.     }
  1405.   }
  1406. }
  1407. layer {
  1408.   name: "mbox_conf_softmax"
  1409.   type: "Softmax"
  1410.   bottom: "mbox_conf_reshape"
  1411.   top: "mbox_conf_softmax"
  1412.   softmax_param {
  1413.     axis: 2
  1414.   }
  1415. }
  1416. layer {
  1417.   name: "mbox_conf_flatten"
  1418.   type: "Flatten"
  1419.   bottom: "mbox_conf_softmax"
  1420.   top: "mbox_conf_flatten"
  1421.   flatten_param {
  1422.     axis: 1
  1423.   }
  1424. }
  1425. layer {
  1426.   name: "detection_out"
  1427.   type: "DetectionOutput"
  1428.   bottom: "mbox_loc"
  1429.   bottom: "mbox_conf_flatten"
  1430.   bottom: "mbox_priorbox"
  1431.   top: "detection_out"
  1432.   include {
  1433.     phase: TEST
  1434.   }
  1435.   detection_output_param {
  1436.     num_classes: 2
  1437.     share_location: true
  1438.     background_label_id: 0
  1439.     nms_param {
  1440.       nms_threshold: 0.600000023842
  1441.       top_k: 400
  1442.     }
  1443.     save_output_param {
  1444.       output_directory: "examples/ssd/ssd_face_dfy_results/results_WiderFace/Caffe_SSD_300x300/Main"
  1445.       output_name_prefix: "comp4_det_test_"
  1446.       output_format: "VOC"
  1447.       label_map_file: "/home/dfy888/py2_caffe_source_works/caffe-ssd-py2/data/WiderFace/labelmap_voc.prototxt"
  1448.       name_size_file: "/home/dfy888/py2_caffe_source_works/caffe-ssd-py2/data/WiderFace/test_name_size.txt"
  1449.       num_test_image: 1000
  1450.     }
  1451.     code_type: CENTER_SIZE
  1452.     keep_top_k: 200
  1453.     confidence_threshold: 0.00999999977648
  1454.   }
  1455. }

复制代码




train.prototxt

24.94 KB, 下载次数: 314

test.prototxt

23.71 KB, 下载次数: 319

deploy.prototxt

22.76 KB, 下载次数: 327

让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
 楼主| 发表于 2019-9-25 16:51:54 | 显示全部楼层
  1. 'conv4_3_norm',
  2. 'conv4_3_norm_mbox_loc',
  3. 'conv4_3_norm_mbox_loc_perm', 'conv4_3_norm_mbox_loc_flat',

  4. 'conv4_3_norm_mbox_conf',
  5. 'conv4_3_norm_mbox_conf_perm', 'conv4_3_norm_mbox_conf_flat',

  6. 'conv4_3_norm_mbox_priorbox',
复制代码
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
 楼主| 发表于 2019-9-25 17:04:16 | 显示全部楼层
  1. # Create location prediction layer创建定位预测层. loc_postfix=''
  2.         name = "{}_mbox_loc{}".format(from_layer, loc_postfix)
  3.         # 每一个priors box均需要4个坐标值来定位  xywh
  4.         num_loc_output = num_priors_per_location * 4
  5.         # share_location = True
  6.         if not share_location:
  7.             num_loc_output *= num_classes
  8.         # from_layer = conv4_3_norm
  9.         ConvBNLayer(net, from_layer, name, use_bn=use_batchnorm, use_relu=False, lr_mult=lr_mult,
  10.                     num_output=num_loc_output, kernel_size=kernel_size, pad=pad, stride=1, **bn_param)

  11.         permute_name = "{}_perm".format(name)
  12.         net[permute_name] = L.Permute(net[name], order=[0, 2, 3, 1])

  13.         flatten_name = "{}_flat".format(name)
  14.         net[flatten_name] = L.Flatten(net[permute_name], axis=1)

  15.         loc_layers.append(net[flatten_name])
复制代码
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
 楼主| 发表于 2019-9-25 17:05:02 | 显示全部楼层
  1. # Create confidence prediction layer创建置信度预测层.conf_postfix=''
  2.         # from_layer = conv4_3_norm
  3.         name = "{}_mbox_conf{}".format(from_layer, conf_postfix)
  4.         # 每个box需要预测的类别数2
  5.         num_conf_output = num_priors_per_location * num_classes
  6.         ConvBNLayer(net, from_layer, name, use_bn=use_batchnorm, use_relu=False, lr_mult=lr_mult,
  7.                     num_output=num_conf_output, kernel_size=kernel_size, pad=pad, stride=1, **bn_param)
  8.         permute_name = "{}_perm".format(name)
  9.         net[permute_name] = L.Permute(net[name], order=[0, 2, 3, 1])
  10.         flatten_name = "{}_flat".format(name)
  11.         net[flatten_name] = L.Flatten(net[permute_name], axis=1)

  12.         conf_layers.append(net[flatten_name])
复制代码
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
 楼主| 发表于 2019-9-25 17:19:52 | 显示全部楼层
  1. 'conv5_3_mbox_loc', 'conv5_3_mbox_loc_perm', 'conv5_3_mbox_loc_flat',
  2. 'conv5_3_mbox_conf', 'conv5_3_mbox_conf_perm', 'conv5_3_mbox_conf_flat',
  3. 'conv5_3_mbox_priorbox',

  4. 'conv6_2_mbox_loc', 'conv6_2_mbox_loc_perm', 'conv6_2_mbox_loc_flat',
  5. 'conv6_2_mbox_conf', 'conv6_2_mbox_conf_perm', 'conv6_2_mbox_conf_flat',
  6. 'conv6_2_mbox_priorbox',

  7. 'conv7_2_mbox_loc', 'conv7_2_mbox_loc_perm', 'conv7_2_mbox_loc_flat',
  8. 'conv7_2_mbox_conf', 'conv7_2_mbox_conf_perm', 'conv7_2_mbox_conf_flat',
  9. 'conv7_2_mbox_priorbox',

  10. 'conv8_2_mbox_loc', 'conv8_2_mbox_loc_perm', 'conv8_2_mbox_loc_flat',
  11. 'conv8_2_mbox_conf', 'conv8_2_mbox_conf_perm', 'conv8_2_mbox_conf_flat',
  12. 'conv8_2_mbox_priorbox',

  13. 'conv9_2_mbox_loc', 'conv9_2_mbox_loc_perm', 'conv9_2_mbox_loc_flat',
  14. 'conv9_2_mbox_conf', 'conv9_2_mbox_conf_perm', 'conv9_2_mbox_conf_flat',
  15. 'conv9_2_mbox_priorbox',
复制代码
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14418
QQ
 楼主| 发表于 2019-9-25 18:08:09 | 显示全部楼层
Caffe中各种梯度下降法:
from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver
让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

0

主题

117

帖子

258

积分

中级会员

Rank: 3Rank: 3

积分
258
QQ
发表于 2020-2-3 15:47:47 | 显示全部楼层
谢谢老师提供的资料。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-3-28 21:33 , Processed in 0.194601 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表