1 name: "MobileNet-SSD" 2 input: "data" 3 input_shape { 4 dim: 1 5 dim: 3 6 dim: 300 7 dim: 300 8 } 9 layer { 10 name: "conv0" 11 type: "Convolution" 12 bottom: "data" 13 top: "conv0" 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 stride: 2 27 weight_filler { 28 type: "msra" 29 } 30 bias_filler { 31 type: "constant" 32 value: 0.0 33 } 34 } 35 } 36 layer { 37 name: "conv0/relu" 38 type: "ReLU" 39 bottom: "conv0" 40 top: "conv0" 41 } 42 layer { 43 name: "conv1/dw" 44 type: "Convolution" 45 bottom: "conv0" 46 top: "conv1/dw" 47 param { 48 lr_mult: 1.0 49 decay_mult: 1.0 50 } 51 param { 52 lr_mult: 2.0 53 decay_mult: 0.0 54 } 55 convolution_param { 56 num_output: 32 57 pad: 1 58 kernel_size: 3 59 group: 32 60 engine: CAFFE 61 weight_filler { 62 type: "msra" 63 } 64 bias_filler { 65 type: "constant" 66 value: 0.0 67 } 68 } 69 } 70 layer { 71 name: "conv1/dw/relu" 72 type: "ReLU" 73 bottom: "conv1/dw" 74 top: "conv1/dw" 75 } 76 layer { 77 name: "conv1" 78 type: "Convolution" 79 bottom: "conv1/dw" 80 top: "conv1" 81 param { 82 lr_mult: 1.0 83 decay_mult: 1.0 84 } 85 param { 86 lr_mult: 2.0 87 decay_mult: 0.0 88 } 89 convolution_param { 90 num_output: 64 91 kernel_size: 1 92 weight_filler { 93 type: "msra" 94 } 95 bias_filler { 96 type: "constant" 97 value: 0.0 98 } 99 } 100 } 101 layer { 102 name: "conv1/relu" 103 type: "ReLU" 104 bottom: "conv1" 105 top: "conv1" 106 } 107 layer { 108 name: "conv2/dw" 109 type: "Convolution" 110 bottom: "conv1" 111 top: "conv2/dw" 112 param { 113 lr_mult: 1.0 114 decay_mult: 1.0 115 } 116 param { 117 lr_mult: 2.0 118 decay_mult: 0.0 119 } 120 convolution_param { 121 num_output: 64 122 pad: 1 123 kernel_size: 3 124 stride: 2 125 group: 64 126 engine: CAFFE 127 weight_filler { 128 type: "msra" 129 } 130 bias_filler { 131 type: "constant" 132 value: 0.0 133 } 134 } 135 } 136 layer { 137 name: "conv2/dw/relu" 138 type: "ReLU" 139 bottom: "conv2/dw" 140 top: "conv2/dw" 141 } 142 layer { 143 name: "conv2" 144 type: "Convolution" 145 bottom: "conv2/dw" 146 top: "conv2" 147 param { 148 lr_mult: 1.0 149 decay_mult: 1.0 150 } 151 param { 152 lr_mult: 2.0 153 decay_mult: 0.0 154 } 155 convolution_param { 156 num_output: 128 157 kernel_size: 1 158 weight_filler { 159 type: "msra" 160 } 161 bias_filler { 162 type: "constant" 163 value: 0.0 164 } 165 } 166 } 167 layer { 168 name: "conv2/relu" 169 type: "ReLU" 170 bottom: "conv2" 171 top: "conv2" 172 } 173 layer { 174 name: "conv3/dw" 175 type: "Convolution" 176 bottom: "conv2" 177 top: "conv3/dw" 178 param { 179 lr_mult: 1.0 180 decay_mult: 1.0 181 } 182 param { 183 lr_mult: 2.0 184 decay_mult: 0.0 185 } 186 convolution_param { 187 num_output: 128 188 pad: 1 189 kernel_size: 3 190 group: 128 191 engine: CAFFE 192 weight_filler { 193 type: "msra" 194 } 195 bias_filler { 196 type: "constant" 197 value: 0.0 198 } 199 } 200 } 201 layer { 202 name: "conv3/dw/relu" 203 type: "ReLU" 204 bottom: "conv3/dw" 205 top: "conv3/dw" 206 } 207 layer { 208 name: "conv3" 209 type: "Convolution" 210 bottom: "conv3/dw" 211 top: "conv3" 212 param { 213 lr_mult: 1.0 214 decay_mult: 1.0 215 } 216 param { 217 lr_mult: 2.0 218 decay_mult: 0.0 219 } 220 convolution_param { 221 num_output: 128 222 kernel_size: 1 223 weight_filler { 224 type: "msra" 225 } 226 bias_filler { 227 type: "constant" 228 value: 0.0 229 } 230 } 231 } 232 layer { 233 name: "conv3/relu" 234 type: "ReLU" 235 bottom: "conv3" 236 top: "conv3" 237 } 238 layer { 239 name: "conv4/dw" 240 type: "Convolution" 241 bottom: "conv3" 242 top: "conv4/dw" 243 param { 244 lr_mult: 1.0 245 decay_mult: 1.0 246 } 247 param { 248 lr_mult: 2.0 249 decay_mult: 0.0 250 } 251 convolution_param { 252 num_output: 128 253 pad: 1 254 kernel_size: 3 255 stride: 2 256 group: 128 257 engine: CAFFE 258 weight_filler { 259 type: "msra" 260 } 261 bias_filler { 262 type: "constant" 263 value: 0.0 264 } 265 } 266 } 267 layer { 268 name: "conv4/dw/relu" 269 type: "ReLU" 270 bottom: "conv4/dw" 271 top: "conv4/dw" 272 } 273 layer { 274 name: "conv4" 275 type: "Convolution" 276 bottom: "conv4/dw" 277 top: "conv4" 278 param { 279 lr_mult: 1.0 280 decay_mult: 1.0 281 } 282 param { 283 lr_mult: 2.0 284 decay_mult: 0.0 285 } 286 convolution_param { 287 num_output: 256 288 kernel_size: 1 289 weight_filler { 290 type: "msra" 291 } 292 bias_filler { 293 type: "constant" 294 value: 0.0 295 } 296 } 297 } 298 layer { 299 name: "conv4/relu" 300 type: "ReLU" 301 bottom: "conv4" 302 top: "conv4" 303 } 304 layer { 305 name: "conv5/dw" 306 type: "Convolution" 307 bottom: "conv4" 308 top: "conv5/dw" 309 param { 310 lr_mult: 1.0 311 decay_mult: 1.0 312 } 313 param { 314 lr_mult: 2.0 315 decay_mult: 0.0 316 } 317 convolution_param { 318 num_output: 256 319 pad: 1 320 kernel_size: 3 321 group: 256 322 engine: CAFFE 323 weight_filler { 324 type: "msra" 325 } 326 bias_filler { 327 type: "constant" 328 value: 0.0 329 } 330 } 331 } 332 layer { 333 name: "conv5/dw/relu" 334 type: "ReLU" 335 bottom: "conv5/dw" 336 top: "conv5/dw" 337 } 338 layer { 339 name: "conv5" 340 type: "Convolution" 341 bottom: "conv5/dw" 342 top: "conv5" 343 param { 344 lr_mult: 1.0 345 decay_mult: 1.0 346 } 347 param { 348 lr_mult: 2.0 349 decay_mult: 0.0 350 } 351 convolution_param { 352 num_output: 256 353 kernel_size: 1 354 weight_filler { 355 type: "msra" 356 } 357 bias_filler { 358 type: "constant" 359 value: 0.0 360 } 361 } 362 } 363 layer { 364 name: "conv5/relu" 365 type: "ReLU" 366 bottom: "conv5" 367 top: "conv5" 368 } 369 layer { 370 name: "conv6/dw" 371 type: "Convolution" 372 bottom: "conv5" 373 top: "conv6/dw" 374 param { 375 lr_mult: 1.0 376 decay_mult: 1.0 377 } 378 param { 379 lr_mult: 2.0 380 decay_mult: 0.0 381 } 382 convolution_param { 383 num_output: 256 384 pad: 1 385 kernel_size: 3 386 stride: 2 387 group: 256 388 engine: CAFFE 389 weight_filler { 390 type: "msra" 391 } 392 bias_filler { 393 type: "constant" 394 value: 0.0 395 } 396 } 397 } 398 layer { 399 name: "conv6/dw/relu" 400 type: "ReLU" 401 bottom: "conv6/dw" 402 top: "conv6/dw" 403 } 404 layer { 405 name: "conv6" 406 type: "Convolution" 407 bottom: "conv6/dw" 408 top: "conv6" 409 param { 410 lr_mult: 1.0 411 decay_mult: 1.0 412 } 413 param { 414 lr_mult: 2.0 415 decay_mult: 0.0 416 } 417 convolution_param { 418 num_output: 512 419 kernel_size: 1 420 weight_filler { 421 type: "msra" 422 } 423 bias_filler { 424 type: "constant" 425 value: 0.0 426 } 427 } 428 } 429 layer { 430 name: "conv6/relu" 431 type: "ReLU" 432 bottom: "conv6" 433 top: "conv6" 434 } 435 layer { 436 name: "conv7/dw" 437 type: "Convolution" 438 bottom: "conv6" 439 top: "conv7/dw" 440 param { 441 lr_mult: 1.0 442 decay_mult: 1.0 443 } 444 param { 445 lr_mult: 2.0 446 decay_mult: 0.0 447 } 448 convolution_param { 449 num_output: 512 450 pad: 1 451 kernel_size: 3 452 group: 512 453 engine: CAFFE 454 weight_filler { 455 type: "msra" 456 } 457 bias_filler { 458 type: "constant" 459 value: 0.0 460 } 461 } 462 } 463 layer { 464 name: "conv7/dw/relu" 465 type: "ReLU" 466 bottom: "conv7/dw" 467 top: "conv7/dw" 468 } 469 layer { 470 name: "conv7" 471 type: "Convolution" 472 bottom: "conv7/dw" 473 top: "conv7" 474 param { 475 lr_mult: 1.0 476 decay_mult: 1.0 477 } 478 param { 479 lr_mult: 2.0 480 decay_mult: 0.0 481 } 482 convolution_param { 483 num_output: 512 484 kernel_size: 1 485 weight_filler { 486 type: "msra" 487 } 488 bias_filler { 489 type: "constant" 490 value: 0.0 491 } 492 } 493 } 494 layer { 495 name: "conv7/relu" 496 type: "ReLU" 497 bottom: "conv7" 498 top: "conv7" 499 } 500 layer { 501 name: "conv8/dw" 502 type: "Convolution" 503 bottom: "conv7" 504 top: "conv8/dw" 505 param { 506 lr_mult: 1.0 507 decay_mult: 1.0 508 } 509 param { 510 lr_mult: 2.0 511 decay_mult: 0.0 512 } 513 convolution_param { 514 num_output: 512 515 pad: 1 516 kernel_size: 3 517 group: 512 518 engine: CAFFE 519 weight_filler { 520 type: "msra" 521 } 522 bias_filler { 523 type: "constant" 524 value: 0.0 525 } 526 } 527 } 528 layer { 529 name: "conv8/dw/relu" 530 type: "ReLU" 531 bottom: "conv8/dw" 532 top: "conv8/dw" 533 } 534 layer { 535 name: "conv8" 536 type: "Convolution" 537 bottom: "conv8/dw" 538 top: "conv8" 539 param { 540 lr_mult: 1.0 541 decay_mult: 1.0 542 } 543 param { 544 lr_mult: 2.0 545 decay_mult: 0.0 546 } 547 convolution_param { 548 num_output: 512 549 kernel_size: 1 550 weight_filler { 551 type: "msra" 552 } 553 bias_filler { 554 type: "constant" 555 value: 0.0 556 } 557 } 558 } 559 layer { 560 name: "conv8/relu" 561 type: "ReLU" 562 bottom: "conv8" 563 top: "conv8" 564 } 565 layer { 566 name: "conv9/dw" 567 type: "Convolution" 568 bottom: "conv8" 569 top: "conv9/dw" 570 param { 571 lr_mult: 1.0 572 decay_mult: 1.0 573 } 574 param { 575 lr_mult: 2.0 576 decay_mult: 0.0 577 } 578 convolution_param { 579 num_output: 512 580 pad: 1 581 kernel_size: 3 582 group: 512 583 engine: CAFFE 584 weight_filler { 585 type: "msra" 586 } 587 bias_filler { 588 type: "constant" 589 value: 0.0 590 } 591 } 592 } 593 layer { 594 name: "conv9/dw/relu" 595 type: "ReLU" 596 bottom: "conv9/dw" 597 top: "conv9/dw" 598 } 599 layer { 600 name: "conv9" 601 type: "Convolution" 602 bottom: "conv9/dw" 603 top: "conv9" 604 param { 605 lr_mult: 1.0 606 decay_mult: 1.0 607 } 608 param { 609 lr_mult: 2.0 610 decay_mult: 0.0 611 } 612 convolution_param { 613 num_output: 512 614 kernel_size: 1 615 weight_filler { 616 type: "msra" 617 } 618 bias_filler { 619 type: "constant" 620 value: 0.0 621 } 622 } 623 } 624 layer { 625 name: "conv9/relu" 626 type: "ReLU" 627 bottom: "conv9" 628 top: "conv9" 629 } 630 layer { 631 name: "conv10/dw" 632 type: "Convolution" 633 bottom: "conv9" 634 top: "conv10/dw" 635 param { 636 lr_mult: 1.0 637 decay_mult: 1.0 638 } 639 param { 640 lr_mult: 2.0 641 decay_mult: 0.0 642 } 643 convolution_param { 644 num_output: 512 645 pad: 1 646 kernel_size: 3 647 group: 512 648 engine: CAFFE 649 weight_filler { 650 type: "msra" 651 } 652 bias_filler { 653 type: "constant" 654 value: 0.0 655 } 656 } 657 } 658 layer { 659 name: "conv10/dw/relu" 660 type: "ReLU" 661 bottom: "conv10/dw" 662 top: "conv10/dw" 663 } 664 layer { 665 name: "conv10" 666 type: "Convolution" 667 bottom: "conv10/dw" 668 top: "conv10" 669 param { 670 lr_mult: 1.0 671 decay_mult: 1.0 672 } 673 param { 674 lr_mult: 2.0 675 decay_mult: 0.0 676 } 677 convolution_param { 678 num_output: 512 679 kernel_size: 1 680 weight_filler { 681 type: "msra" 682 } 683 bias_filler { 684 type: "constant" 685 value: 0.0 686 } 687 } 688 } 689 layer { 690 name: "conv10/relu" 691 type: "ReLU" 692 bottom: "conv10" 693 top: "conv10" 694 } 695 layer { 696 name: "conv11/dw" 697 type: "Convolution" 698 bottom: "conv10" 699 top: "conv11/dw" 700 param { 701 lr_mult: 1.0 702 decay_mult: 1.0 703 } 704 param { 705 lr_mult: 2.0 706 decay_mult: 0.0 707 } 708 convolution_param { 709 num_output: 512 710 pad: 1 711 kernel_size: 3 712 group: 512 713 engine: CAFFE 714 weight_filler { 715 type: "msra" 716 } 717 bias_filler { 718 type: "constant" 719 value: 0.0 720 } 721 } 722 } 723 layer { 724 name: "conv11/dw/relu" 725 type: "ReLU" 726 bottom: "conv11/dw" 727 top: "conv11/dw" 728 } 729 layer { 730 name: "conv11" 731 type: "Convolution" 732 bottom: "conv11/dw" 733 top: "conv11" 734 param { 735 lr_mult: 1.0 736 decay_mult: 1.0 737 } 738 param { 739 lr_mult: 2.0 740 decay_mult: 0.0 741 } 742 convolution_param { 743 num_output: 512 744 kernel_size: 1 745 weight_filler { 746 type: "msra" 747 } 748 bias_filler { 749 type: "constant" 750 value: 0.0 751 } 752 } 753 } 754 layer { 755 name: "conv11/relu" 756 type: "ReLU" 757 bottom: "conv11" 758 top: "conv11" 759 } 760 layer { 761 name: "conv12/dw" 762 type: "Convolution" 763 bottom: "conv11" 764 top: "conv12/dw" 765 param { 766 lr_mult: 1.0 767 decay_mult: 1.0 768 } 769 param { 770 lr_mult: 2.0 771 decay_mult: 0.0 772 } 773 convolution_param { 774 num_output: 512 775 pad: 1 776 kernel_size: 3 777 stride: 2 778 group: 512 779 engine: CAFFE 780 weight_filler { 781 type: "msra" 782 } 783 bias_filler { 784 type: "constant" 785 value: 0.0 786 } 787 } 788 } 789 layer { 790 name: "conv12/dw/relu" 791 type: "ReLU" 792 bottom: "conv12/dw" 793 top: "conv12/dw" 794 } 795 layer { 796 name: "conv12" 797 type: "Convolution" 798 bottom: "conv12/dw" 799 top: "conv12" 800 param { 801 lr_mult: 1.0 802 decay_mult: 1.0 803 } 804 param { 805 lr_mult: 2.0 806 decay_mult: 0.0 807 } 808 convolution_param { 809 num_output: 1024 810 kernel_size: 1 811 weight_filler { 812 type: "msra" 813 } 814 bias_filler { 815 type: "constant" 816 value: 0.0 817 } 818 } 819 } 820 layer { 821 name: "conv12/relu" 822 type: "ReLU" 823 bottom: "conv12" 824 top: "conv12" 825 } 826 layer { 827 name: "conv13/dw" 828 type: "Convolution" 829 bottom: "conv12" 830 top: "conv13/dw" 831 param { 832 lr_mult: 1.0 833 decay_mult: 1.0 834 } 835 param { 836 lr_mult: 2.0 837 decay_mult: 0.0 838 } 839 convolution_param { 840 num_output: 1024 841 pad: 1 842 kernel_size: 3 843 group: 1024 844 engine: CAFFE 845 weight_filler { 846 type: "msra" 847 } 848 bias_filler { 849 type: "constant" 850 value: 0.0 851 } 852 } 853 } 854 layer { 855 name: "conv13/dw/relu" 856 type: "ReLU" 857 bottom: "conv13/dw" 858 top: "conv13/dw" 859 } 860 layer { 861 name: "conv13" 862 type: "Convolution" 863 bottom: "conv13/dw" 864 top: "conv13" 865 param { 866 lr_mult: 1.0 867 decay_mult: 1.0 868 } 869 param { 870 lr_mult: 2.0 871 decay_mult: 0.0 872 } 873 convolution_param { 874 num_output: 1024 875 kernel_size: 1 876 weight_filler { 877 type: "msra" 878 } 879 bias_filler { 880 type: "constant" 881 value: 0.0 882 } 883 } 884 } 885 layer { 886 name: "conv13/relu" 887 type: "ReLU" 888 bottom: "conv13" 889 top: "conv13" 890 } 891 layer { 892 name: "conv14_1" 893 type: "Convolution" 894 bottom: "conv13" 895 top: "conv14_1" 896 param { 897 lr_mult: 1.0 898 decay_mult: 1.0 899 } 900 param { 901 lr_mult: 2.0 902 decay_mult: 0.0 903 } 904 convolution_param { 905 num_output: 256 906 kernel_size: 1 907 weight_filler { 908 type: "msra" 909 } 910 bias_filler { 911 type: "constant" 912 value: 0.0 913 } 914 } 915 } 916 layer { 917 name: "conv14_1/relu" 918 type: "ReLU" 919 bottom: "conv14_1" 920 top: "conv14_1" 921 } 922 layer { 923 name: "conv14_2" 924 type: "Convolution" 925 bottom: "conv14_1" 926 top: "conv14_2" 927 param { 928 lr_mult: 1.0 929 decay_mult: 1.0 930 } 931 param { 932 lr_mult: 2.0 933 decay_mult: 0.0 934 } 935 convolution_param { 936 num_output: 512 937 pad: 1 938 kernel_size: 3 939 stride: 2 940 weight_filler { 941 type: "msra" 942 } 943 bias_filler { 944 type: "constant" 945 value: 0.0 946 } 947 } 948 } 949 layer { 950 name: "conv14_2/relu" 951 type: "ReLU" 952 bottom: "conv14_2" 953 top: "conv14_2" 954 } 955 layer { 956 name: "conv15_1" 957 type: "Convolution" 958 bottom: "conv14_2" 959 top: "conv15_1" 960 param { 961 lr_mult: 1.0 962 decay_mult: 1.0 963 } 964 param { 965 lr_mult: 2.0 966 decay_mult: 0.0 967 } 968 convolution_param { 969 num_output: 128 970 kernel_size: 1 971 weight_filler { 972 type: "msra" 973 } 974 bias_filler { 975 type: "constant" 976 value: 0.0 977 } 978 } 979 } 980 layer { 981 name: "conv15_1/relu" 982 type: "ReLU" 983 bottom: "conv15_1" 984 top: "conv15_1" 985 } 986 layer { 987 name: "conv15_2" 988 type: "Convolution" 989 bottom: "conv15_1" 990 top: "conv15_2" 991 param { 992 lr_mult: 1.0 993 decay_mult: 1.0 994 } 995 param { 996 lr_mult: 2.0 997 decay_mult: 0.0 998 } 999 convolution_param { 1000 num_output: 256 1001 pad: 1 1002 kernel_size: 3 1003 stride: 2 1004 weight_filler { 1005 type: "msra" 1006 } 1007 bias_filler { 1008 type: "constant" 1009 value: 0.0 1010 } 1011 } 1012 } 1013 layer { 1014 name: "conv15_2/relu" 1015 type: "ReLU" 1016 bottom: "conv15_2" 1017 top: "conv15_2" 1018 } 1019 layer { 1020 name: "conv16_1" 1021 type: "Convolution" 1022 bottom: "conv15_2" 1023 top: "conv16_1" 1024 param { 1025 lr_mult: 1.0 1026 decay_mult: 1.0 1027 } 1028 param { 1029 lr_mult: 2.0 1030 decay_mult: 0.0 1031 } 1032 convolution_param { 1033 num_output: 128 1034 kernel_size: 1 1035 weight_filler { 1036 type: "msra" 1037 } 1038 bias_filler { 1039 type: "constant" 1040 value: 0.0 1041 } 1042 } 1043 } 1044 layer { 1045 name: "conv16_1/relu" 1046 type: "ReLU" 1047 bottom: "conv16_1" 1048 top: "conv16_1" 1049 } 1050 layer { 1051 name: "conv16_2" 1052 type: "Convolution" 1053 bottom: "conv16_1" 1054 top: "conv16_2" 1055 param { 1056 lr_mult: 1.0 1057 decay_mult: 1.0 1058 } 1059 param { 1060 lr_mult: 2.0 1061 decay_mult: 0.0 1062 } 1063 convolution_param { 1064 num_output: 256 1065 pad: 1 1066 kernel_size: 3 1067 stride: 2 1068 weight_filler { 1069 type: "msra" 1070 } 1071 bias_filler { 1072 type: "constant" 1073 value: 0.0 1074 } 1075 } 1076 } 1077 layer { 1078 name: "conv16_2/relu" 1079 type: "ReLU" 1080 bottom: "conv16_2" 1081 top: "conv16_2" 1082 } 1083 layer { 1084 name: "conv17_1" 1085 type: "Convolution" 1086 bottom: "conv16_2" 1087 top: "conv17_1" 1088 param { 1089 lr_mult: 1.0 1090 decay_mult: 1.0 1091 } 1092 param { 1093 lr_mult: 2.0 1094 decay_mult: 0.0 1095 } 1096 convolution_param { 1097 num_output: 64 1098 kernel_size: 1 1099 weight_filler { 1100 type: "msra" 1101 } 1102 bias_filler { 1103 type: "constant" 1104 value: 0.0 1105 } 1106 } 1107 } 1108 layer { 1109 name: "conv17_1/relu" 1110 type: "ReLU" 1111 bottom: "conv17_1" 1112 top: "conv17_1" 1113 } 1114 layer { 1115 name: "conv17_2" 1116 type: "Convolution" 1117 bottom: "conv17_1" 1118 top: "conv17_2" 1119 param { 1120 lr_mult: 1.0 1121 decay_mult: 1.0 1122 } 1123 param { 1124 lr_mult: 2.0 1125 decay_mult: 0.0 1126 } 1127 convolution_param { 1128 num_output: 128 1129 pad: 1 1130 kernel_size: 3 1131 stride: 2 1132 weight_filler { 1133 type: "msra" 1134 } 1135 bias_filler { 1136 type: "constant" 1137 value: 0.0 1138 } 1139 } 1140 } 1141 layer { 1142 name: "conv17_2/relu" 1143 type: "ReLU" 1144 bottom: "conv17_2" 1145 top: "conv17_2" 1146 } 1147 layer { 1148 name: "conv11_mbox_loc" 1149 type: "Convolution" 1150 bottom: "conv11" 1151 top: "conv11_mbox_loc" 1152 param { 1153 lr_mult: 1.0 1154 decay_mult: 1.0 1155 } 1156 param { 1157 lr_mult: 2.0 1158 decay_mult: 0.0 1159 } 1160 convolution_param { 1161 num_output: 12 1162 kernel_size: 1 1163 weight_filler { 1164 type: "msra" 1165 } 1166 bias_filler { 1167 type: "constant" 1168 value: 0.0 1169 } 1170 } 1171 } 1172 layer { 1173 name: "conv11_mbox_loc_perm" 1174 type: "Permute" 1175 bottom: "conv11_mbox_loc" 1176 top: "conv11_mbox_loc_perm" 1177 permute_param { 1178 order: 0 1179 order: 2 1180 order: 3 1181 order: 1 1182 } 1183 } 1184 layer { 1185 name: "conv11_mbox_loc_flat" 1186 type: "Flatten" 1187 bottom: "conv11_mbox_loc_perm" 1188 top: "conv11_mbox_loc_flat" 1189 flatten_param { 1190 axis: 1 1191 } 1192 } 1193 layer { 1194 name: "conv11_mbox_conf" 1195 type: "Convolution" 1196 bottom: "conv11" 1197 top: "conv11_mbox_conf" 1198 param { 1199 lr_mult: 1.0 1200 decay_mult: 1.0 1201 } 1202 param { 1203 lr_mult: 2.0 1204 decay_mult: 0.0 1205 } 1206 convolution_param { 1207 num_output: 63 1208 kernel_size: 1 1209 weight_filler { 1210 type: "msra" 1211 } 1212 bias_filler { 1213 type: "constant" 1214 value: 0.0 1215 } 1216 } 1217 } 1218 layer { 1219 name: "conv11_mbox_conf_perm" 1220 type: "Permute" 1221 bottom: "conv11_mbox_conf" 1222 top: "conv11_mbox_conf_perm" 1223 permute_param { 1224 order: 0 1225 order: 2 1226 order: 3 1227 order: 1 1228 } 1229 } 1230 layer { 1231 name: "conv11_mbox_conf_flat" 1232 type: "Flatten" 1233 bottom: "conv11_mbox_conf_perm" 1234 top: "conv11_mbox_conf_flat" 1235 flatten_param { 1236 axis: 1 1237 } 1238 } 1239 layer { 1240 name: "conv11_mbox_priorbox" 1241 type: "PriorBox" 1242 bottom: "conv11" 1243 bottom: "data" 1244 top: "conv11_mbox_priorbox" 1245 prior_box_param { 1246 min_size: 60.0 1247 aspect_ratio: 2.0 1248 flip: true 1249 clip: false 1250 variance: 0.1 1251 variance: 0.1 1252 variance: 0.2 1253 variance: 0.2 1254 offset: 0.5 1255 } 1256 } 1257 layer { 1258 name: "conv13_mbox_loc" 1259 type: "Convolution" 1260 bottom: "conv13" 1261 top: "conv13_mbox_loc" 1262 param { 1263 lr_mult: 1.0 1264 decay_mult: 1.0 1265 } 1266 param { 1267 lr_mult: 2.0 1268 decay_mult: 0.0 1269 } 1270 convolution_param { 1271 num_output: 24 1272 kernel_size: 1 1273 weight_filler { 1274 type: "msra" 1275 } 1276 bias_filler { 1277 type: "constant" 1278 value: 0.0 1279 } 1280 } 1281 } 1282 layer { 1283 name: "conv13_mbox_loc_perm" 1284 type: "Permute" 1285 bottom: "conv13_mbox_loc" 1286 top: "conv13_mbox_loc_perm" 1287 permute_param { 1288 order: 0 1289 order: 2 1290 order: 3 1291 order: 1 1292 } 1293 } 1294 layer { 1295 name: "conv13_mbox_loc_flat" 1296 type: "Flatten" 1297 bottom: "conv13_mbox_loc_perm" 1298 top: "conv13_mbox_loc_flat" 1299 flatten_param { 1300 axis: 1 1301 } 1302 } 1303 layer { 1304 name: "conv13_mbox_conf" 1305 type: "Convolution" 1306 bottom: "conv13" 1307 top: "conv13_mbox_conf" 1308 param { 1309 lr_mult: 1.0 1310 decay_mult: 1.0 1311 } 1312 param { 1313 lr_mult: 2.0 1314 decay_mult: 0.0 1315 } 1316 convolution_param { 1317 num_output: 126 1318 kernel_size: 1 1319 weight_filler { 1320 type: "msra" 1321 } 1322 bias_filler { 1323 type: "constant" 1324 value: 0.0 1325 } 1326 } 1327 } 1328 layer { 1329 name: "conv13_mbox_conf_perm" 1330 type: "Permute" 1331 bottom: "conv13_mbox_conf" 1332 top: "conv13_mbox_conf_perm" 1333 permute_param { 1334 order: 0 1335 order: 2 1336 order: 3 1337 order: 1 1338 } 1339 } 1340 layer { 1341 name: "conv13_mbox_conf_flat" 1342 type: "Flatten" 1343 bottom: "conv13_mbox_conf_perm" 1344 top: "conv13_mbox_conf_flat" 1345 flatten_param { 1346 axis: 1 1347 } 1348 } 1349 layer { 1350 name: "conv13_mbox_priorbox" 1351 type: "PriorBox" 1352 bottom: "conv13" 1353 bottom: "data" 1354 top: "conv13_mbox_priorbox" 1355 prior_box_param { 1356 min_size: 105.0 1357 max_size: 150.0 1358 aspect_ratio: 2.0 1359 aspect_ratio: 3.0 1360 flip: true 1361 clip: false 1362 variance: 0.1 1363 variance: 0.1 1364 variance: 0.2 1365 variance: 0.2 1366 offset: 0.5 1367 } 1368 } 1369 layer { 1370 name: "conv14_2_mbox_loc" 1371 type: "Convolution" 1372 bottom: "conv14_2" 1373 top: "conv14_2_mbox_loc" 1374 param { 1375 lr_mult: 1.0 1376 decay_mult: 1.0 1377 } 1378 param { 1379 lr_mult: 2.0 1380 decay_mult: 0.0 1381 } 1382 convolution_param { 1383 num_output: 24 1384 kernel_size: 1 1385 weight_filler { 1386 type: "msra" 1387 } 1388 bias_filler { 1389 type: "constant" 1390 value: 0.0 1391 } 1392 } 1393 } 1394 layer { 1395 name: "conv14_2_mbox_loc_perm" 1396 type: "Permute" 1397 bottom: "conv14_2_mbox_loc" 1398 top: "conv14_2_mbox_loc_perm" 1399 permute_param { 1400 order: 0 1401 order: 2 1402 order: 3 1403 order: 1 1404 } 1405 } 1406 layer { 1407 name: "conv14_2_mbox_loc_flat" 1408 type: "Flatten" 1409 bottom: "conv14_2_mbox_loc_perm" 1410 top: "conv14_2_mbox_loc_flat" 1411 flatten_param { 1412 axis: 1 1413 } 1414 } 1415 layer { 1416 name: "conv14_2_mbox_conf" 1417 type: "Convolution" 1418 bottom: "conv14_2" 1419 top: "conv14_2_mbox_conf" 1420 param { 1421 lr_mult: 1.0 1422 decay_mult: 1.0 1423 } 1424 param { 1425 lr_mult: 2.0 1426 decay_mult: 0.0 1427 } 1428 convolution_param { 1429 num_output: 126 1430 kernel_size: 1 1431 weight_filler { 1432 type: "msra" 1433 } 1434 bias_filler { 1435 type: "constant" 1436 value: 0.0 1437 } 1438 } 1439 } 1440 layer { 1441 name: "conv14_2_mbox_conf_perm" 1442 type: "Permute" 1443 bottom: "conv14_2_mbox_conf" 1444 top: "conv14_2_mbox_conf_perm" 1445 permute_param { 1446 order: 0 1447 order: 2 1448 order: 3 1449 order: 1 1450 } 1451 } 1452 layer { 1453 name: "conv14_2_mbox_conf_flat" 1454 type: "Flatten" 1455 bottom: "conv14_2_mbox_conf_perm" 1456 top: "conv14_2_mbox_conf_flat" 1457 flatten_param { 1458 axis: 1 1459 } 1460 } 1461 layer { 1462 name: "conv14_2_mbox_priorbox" 1463 type: "PriorBox" 1464 bottom: "conv14_2" 1465 bottom: "data" 1466 top: "conv14_2_mbox_priorbox" 1467 prior_box_param { 1468 min_size: 150.0 1469 max_size: 195.0 1470 aspect_ratio: 2.0 1471 aspect_ratio: 3.0 1472 flip: true 1473 clip: false 1474 variance: 0.1 1475 variance: 0.1 1476 variance: 0.2 1477 variance: 0.2 1478 offset: 0.5 1479 } 1480 } 1481 layer { 1482 name: "conv15_2_mbox_loc" 1483 type: "Convolution" 1484 bottom: "conv15_2" 1485 top: "conv15_2_mbox_loc" 1486 param { 1487 lr_mult: 1.0 1488 decay_mult: 1.0 1489 } 1490 param { 1491 lr_mult: 2.0 1492 decay_mult: 0.0 1493 } 1494 convolution_param { 1495 num_output: 24 1496 kernel_size: 1 1497 weight_filler { 1498 type: "msra" 1499 } 1500 bias_filler { 1501 type: "constant" 1502 value: 0.0 1503 } 1504 } 1505 } 1506 layer { 1507 name: "conv15_2_mbox_loc_perm" 1508 type: "Permute" 1509 bottom: "conv15_2_mbox_loc" 1510 top: "conv15_2_mbox_loc_perm" 1511 permute_param { 1512 order: 0 1513 order: 2 1514 order: 3 1515 order: 1 1516 } 1517 } 1518 layer { 1519 name: "conv15_2_mbox_loc_flat" 1520 type: "Flatten" 1521 bottom: "conv15_2_mbox_loc_perm" 1522 top: "conv15_2_mbox_loc_flat" 1523 flatten_param { 1524 axis: 1 1525 } 1526 } 1527 layer { 1528 name: "conv15_2_mbox_conf" 1529 type: "Convolution" 1530 bottom: "conv15_2" 1531 top: "conv15_2_mbox_conf" 1532 param { 1533 lr_mult: 1.0 1534 decay_mult: 1.0 1535 } 1536 param { 1537 lr_mult: 2.0 1538 decay_mult: 0.0 1539 } 1540 convolution_param { 1541 num_output: 126 1542 kernel_size: 1 1543 weight_filler { 1544 type: "msra" 1545 } 1546 bias_filler { 1547 type: "constant" 1548 value: 0.0 1549 } 1550 } 1551 } 1552 layer { 1553 name: "conv15_2_mbox_conf_perm" 1554 type: "Permute" 1555 bottom: "conv15_2_mbox_conf" 1556 top: "conv15_2_mbox_conf_perm" 1557 permute_param { 1558 order: 0 1559 order: 2 1560 order: 3 1561 order: 1 1562 } 1563 } 1564 layer { 1565 name: "conv15_2_mbox_conf_flat" 1566 type: "Flatten" 1567 bottom: "conv15_2_mbox_conf_perm" 1568 top: "conv15_2_mbox_conf_flat" 1569 flatten_param { 1570 axis: 1 1571 } 1572 } 1573 layer { 1574 name: "conv15_2_mbox_priorbox" 1575 type: "PriorBox" 1576 bottom: "conv15_2" 1577 bottom: "data" 1578 top: "conv15_2_mbox_priorbox" 1579 prior_box_param { 1580 min_size: 195.0 1581 max_size: 240.0 1582 aspect_ratio: 2.0 1583 aspect_ratio: 3.0 1584 flip: true 1585 clip: false 1586 variance: 0.1 1587 variance: 0.1 1588 variance: 0.2 1589 variance: 0.2 1590 offset: 0.5 1591 } 1592 } 1593 layer { 1594 name: "conv16_2_mbox_loc" 1595 type: "Convolution" 1596 bottom: "conv16_2" 1597 top: "conv16_2_mbox_loc" 1598 param { 1599 lr_mult: 1.0 1600 decay_mult: 1.0 1601 } 1602 param { 1603 lr_mult: 2.0 1604 decay_mult: 0.0 1605 } 1606 convolution_param { 1607 num_output: 24 1608 kernel_size: 1 1609 weight_filler { 1610 type: "msra" 1611 } 1612 bias_filler { 1613 type: "constant" 1614 value: 0.0 1615 } 1616 } 1617 } 1618 layer { 1619 name: "conv16_2_mbox_loc_perm" 1620 type: "Permute" 1621 bottom: "conv16_2_mbox_loc" 1622 top: "conv16_2_mbox_loc_perm" 1623 permute_param { 1624 order: 0 1625 order: 2 1626 order: 3 1627 order: 1 1628 } 1629 } 1630 layer { 1631 name: "conv16_2_mbox_loc_flat" 1632 type: "Flatten" 1633 bottom: "conv16_2_mbox_loc_perm" 1634 top: "conv16_2_mbox_loc_flat" 1635 flatten_param { 1636 axis: 1 1637 } 1638 } 1639 layer { 1640 name: "conv16_2_mbox_conf" 1641 type: "Convolution" 1642 bottom: "conv16_2" 1643 top: "conv16_2_mbox_conf" 1644 param { 1645 lr_mult: 1.0 1646 decay_mult: 1.0 1647 } 1648 param { 1649 lr_mult: 2.0 1650 decay_mult: 0.0 1651 } 1652 convolution_param { 1653 num_output: 126 1654 kernel_size: 1 1655 weight_filler { 1656 type: "msra" 1657 } 1658 bias_filler { 1659 type: "constant" 1660 value: 0.0 1661 } 1662 } 1663 } 1664 layer { 1665 name: "conv16_2_mbox_conf_perm" 1666 type: "Permute" 1667 bottom: "conv16_2_mbox_conf" 1668 top: "conv16_2_mbox_conf_perm" 1669 permute_param { 1670 order: 0 1671 order: 2 1672 order: 3 1673 order: 1 1674 } 1675 } 1676 layer { 1677 name: "conv16_2_mbox_conf_flat" 1678 type: "Flatten" 1679 bottom: "conv16_2_mbox_conf_perm" 1680 top: "conv16_2_mbox_conf_flat" 1681 flatten_param { 1682 axis: 1 1683 } 1684 } 1685 layer { 1686 name: "conv16_2_mbox_priorbox" 1687 type: "PriorBox" 1688 bottom: "conv16_2" 1689 bottom: "data" 1690 top: "conv16_2_mbox_priorbox" 1691 prior_box_param { 1692 min_size: 240.0 1693 max_size: 285.0 1694 aspect_ratio: 2.0 1695 aspect_ratio: 3.0 1696 flip: true 1697 clip: false 1698 variance: 0.1 1699 variance: 0.1 1700 variance: 0.2 1701 variance: 0.2 1702 offset: 0.5 1703 } 1704 } 1705 layer { 1706 name: "conv17_2_mbox_loc" 1707 type: "Convolution" 1708 bottom: "conv17_2" 1709 top: "conv17_2_mbox_loc" 1710 param { 1711 lr_mult: 1.0 1712 decay_mult: 1.0 1713 } 1714 param { 1715 lr_mult: 2.0 1716 decay_mult: 0.0 1717 } 1718 convolution_param { 1719 num_output: 24 1720 kernel_size: 1 1721 weight_filler { 1722 type: "msra" 1723 } 1724 bias_filler { 1725 type: "constant" 1726 value: 0.0 1727 } 1728 } 1729 } 1730 layer { 1731 name: "conv17_2_mbox_loc_perm" 1732 type: "Permute" 1733 bottom: "conv17_2_mbox_loc" 1734 top: "conv17_2_mbox_loc_perm" 1735 permute_param { 1736 order: 0 1737 order: 2 1738 order: 3 1739 order: 1 1740 } 1741 } 1742 layer { 1743 name: "conv17_2_mbox_loc_flat" 1744 type: "Flatten" 1745 bottom: "conv17_2_mbox_loc_perm" 1746 top: "conv17_2_mbox_loc_flat" 1747 flatten_param { 1748 axis: 1 1749 } 1750 } 1751 layer { 1752 name: "conv17_2_mbox_conf" 1753 type: "Convolution" 1754 bottom: "conv17_2" 1755 top: "conv17_2_mbox_conf" 1756 param { 1757 lr_mult: 1.0 1758 decay_mult: 1.0 1759 } 1760 param { 1761 lr_mult: 2.0 1762 decay_mult: 0.0 1763 } 1764 convolution_param { 1765 num_output: 126 1766 kernel_size: 1 1767 weight_filler { 1768 type: "msra" 1769 } 1770 bias_filler { 1771 type: "constant" 1772 value: 0.0 1773 } 1774 } 1775 } 1776 layer { 1777 name: "conv17_2_mbox_conf_perm" 1778 type: "Permute" 1779 bottom: "conv17_2_mbox_conf" 1780 top: "conv17_2_mbox_conf_perm" 1781 permute_param { 1782 order: 0 1783 order: 2 1784 order: 3 1785 order: 1 1786 } 1787 } 1788 layer { 1789 name: "conv17_2_mbox_conf_flat" 1790 type: "Flatten" 1791 bottom: "conv17_2_mbox_conf_perm" 1792 top: "conv17_2_mbox_conf_flat" 1793 flatten_param { 1794 axis: 1 1795 } 1796 } 1797 layer { 1798 name: "conv17_2_mbox_priorbox" 1799 type: "PriorBox" 1800 bottom: "conv17_2" 1801 bottom: "data" 1802 top: "conv17_2_mbox_priorbox" 1803 prior_box_param { 1804 min_size: 285.0 1805 max_size: 300.0 1806 aspect_ratio: 2.0 1807 aspect_ratio: 3.0 1808 flip: true 1809 clip: false 1810 variance: 0.1 1811 variance: 0.1 1812 variance: 0.2 1813 variance: 0.2 1814 offset: 0.5 1815 } 1816 } 1817 layer { 1818 name: "mbox_loc" 1819 type: "Concat" 1820 bottom: "conv11_mbox_loc_flat" 1821 bottom: "conv13_mbox_loc_flat" 1822 bottom: "conv14_2_mbox_loc_flat" 1823 bottom: "conv15_2_mbox_loc_flat" 1824 bottom: "conv16_2_mbox_loc_flat" 1825 bottom: "conv17_2_mbox_loc_flat" 1826 top: "mbox_loc" 1827 concat_param { 1828 axis: 1 1829 } 1830 } 1831 layer { 1832 name: "mbox_conf" 1833 type: "Concat" 1834 bottom: "conv11_mbox_conf_flat" 1835 bottom: "conv13_mbox_conf_flat" 1836 bottom: "conv14_2_mbox_conf_flat" 1837 bottom: "conv15_2_mbox_conf_flat" 1838 bottom: "conv16_2_mbox_conf_flat" 1839 bottom: "conv17_2_mbox_conf_flat" 1840 top: "mbox_conf" 1841 concat_param { 1842 axis: 1 1843 } 1844 } 1845 layer { 1846 name: "mbox_priorbox" 1847 type: "Concat" 1848 bottom: "conv11_mbox_priorbox" 1849 bottom: "conv13_mbox_priorbox" 1850 bottom: "conv14_2_mbox_priorbox" 1851 bottom: "conv15_2_mbox_priorbox" 1852 bottom: "conv16_2_mbox_priorbox" 1853 bottom: "conv17_2_mbox_priorbox" 1854 top: "mbox_priorbox" 1855 concat_param { 1856 axis: 2 1857 } 1858 } 1859 layer { 1860 name: "mbox_conf_reshape" 1861 type: "Reshape" 1862 bottom: "mbox_conf" 1863 top: "mbox_conf_reshape" 1864 reshape_param { 1865 shape { 1866 dim: 0 1867 dim: -1 1868 dim: 21 1869 } 1870 } 1871 } 1872 layer { 1873 name: "mbox_conf_softmax" 1874 type: "Softmax" 1875 bottom: "mbox_conf_reshape" 1876 top: "mbox_conf_softmax" 1877 softmax_param { 1878 axis: 2 1879 } 1880 } 1881 layer { 1882 name: "mbox_conf_flatten" 1883 type: "Flatten" 1884 bottom: "mbox_conf_softmax" 1885 top: "mbox_conf_flatten" 1886 flatten_param { 1887 axis: 1 1888 } 1889 } 1890 layer { 1891 name: "detection_out" 1892 type: "DetectionOutput" 1893 bottom: "mbox_loc" 1894 bottom: "mbox_conf_flatten" 1895 bottom: "mbox_priorbox" 1896 top: "detection_out" 1897 include { 1898 phase: TEST 1899 } 1900 detection_output_param { 1901 num_classes: 21 1902 share_location: true 1903 background_label_id: 0 1904 nms_param { 1905 nms_threshold: 0.45 1906 top_k: 100 1907 } 1908 code_type: CENTER_SIZE 1909 keep_top_k: 100 1910 confidence_threshold: 0.25 1911 } 1912 } 1913