├── LICENSE ├── MobileNet-v2-deploy.prototxt ├── README.md ├── mobilenetv2-0.35 ├── test.prototxt └── train.prototxt ├── mobilenetv2-0.5 ├── test.prototxt └── train.prototxt ├── mobilenetv2-0.75 ├── test.prototxt └── train.prototxt └── mobilenetv2-1.0 ├── test.prototxt └── train.prototxt /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Yubin Wang 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MobileNet-v2-deploy.prototxt: -------------------------------------------------------------------------------- 1 | name: "MobileNet-v2" 2 | input: "data" 3 | input_dim: 1 4 | input_dim: 3 5 | input_dim: 224 6 | input_dim: 224 7 | layer { 8 | name: "conv_1_1" 9 | type: "Convolution" 10 | bottom: "data" 11 | top: "conv_1_1" 12 | param { 13 | lr_mult: 1.0 14 | decay_mult: 1.0 15 | } 16 | convolution_param { 17 | num_output: 32 18 | bias_term: false 19 | pad: 1 20 | kernel_size: 3 21 | stride: 2 22 | weight_filler { 23 | type: "msra" 24 | } 25 | bias_filler { 26 | type: "constant" 27 | value: 0.0 28 | } 29 | } 30 | } 31 | layer { 32 | name: "bn_1_1" 33 | type: "BatchNorm" 34 | bottom: "conv_1_1" 35 | top: "conv_1_1" 36 | param { 37 | lr_mult: 0.0 38 | decay_mult: 0.0 39 | } 40 | param { 41 | lr_mult: 0.0 42 | decay_mult: 0.0 43 | } 44 | param { 45 | lr_mult: 0.0 46 | decay_mult: 0.0 47 | } 48 | batch_norm_param { 49 | use_global_stats: true 50 | } 51 | } 52 | layer { 53 | name: "scale_1_1" 54 | type: "Scale" 55 | bottom: "conv_1_1" 56 | top: "conv_1_1" 57 | scale_param { 58 | bias_term: true 59 | } 60 | } 61 | layer { 62 | name: "relu_1_1" 63 | type: "ReLU" 64 | bottom: "conv_1_1" 65 | top: "conv_1_1" 66 | } 67 | layer { 68 | name: "conv_2_1_pw" 69 | type: "Convolution" 70 | bottom: "conv_1_1" 71 | top: "conv_2_1_pw" 72 | param { 73 | lr_mult: 1.0 74 | decay_mult: 1.0 75 | } 76 | convolution_param { 77 | num_output: 32 78 | bias_term: false 79 | pad: 0 80 | kernel_size: 1 81 | stride: 1 82 | weight_filler { 83 | type: "msra" 84 | } 85 | bias_filler { 86 | type: "constant" 87 | value: 0.0 88 | } 89 | } 90 | } 91 | layer { 92 | name: "bn_2_1_pw" 93 | type: "BatchNorm" 94 | bottom: "conv_2_1_pw" 95 | top: "conv_2_1_pw" 96 | param { 97 | lr_mult: 0.0 98 | decay_mult: 0.0 99 | } 100 | param { 101 | lr_mult: 0.0 102 | decay_mult: 0.0 103 | } 104 | param { 105 | lr_mult: 0.0 106 | decay_mult: 0.0 107 | } 108 | batch_norm_param { 109 | use_global_stats: true 110 | } 111 | } 112 | layer { 113 | name: "scale_2_1_pw" 114 | type: "Scale" 115 | bottom: "conv_2_1_pw" 116 | top: "conv_2_1_pw" 117 | scale_param { 118 | bias_term: true 119 | } 120 | } 121 | layer { 122 | name: "relu_2_1_pw" 123 | type: "ReLU" 124 | bottom: "conv_2_1_pw" 125 | top: "conv_2_1_pw" 126 | } 127 | layer { 128 | name: "conv_2_1_dw" 129 | type: "Convolution" 130 | bottom: "conv_2_1_pw" 131 | top: "conv_2_1_dw" 132 | param { 133 | lr_mult: 1.0 134 | decay_mult: 1.0 135 | } 136 | convolution_param { 137 | num_output: 32 138 | bias_term: false 139 | pad: 1 140 | kernel_size: 3 141 | group: 32 142 | stride: 1 143 | weight_filler { 144 | type: "msra" 145 | } 146 | bias_filler { 147 | type: "constant" 148 | value: 0.0 149 | } 150 | engine: CAFFE 151 | } 152 | } 153 | layer { 154 | name: "bn_2_1_dw" 155 | type: "BatchNorm" 156 | bottom: "conv_2_1_dw" 157 | top: "conv_2_1_dw" 158 | param { 159 | lr_mult: 0.0 160 | decay_mult: 0.0 161 | } 162 | param { 163 | lr_mult: 0.0 164 | decay_mult: 0.0 165 | } 166 | param { 167 | lr_mult: 0.0 168 | decay_mult: 0.0 169 | } 170 | batch_norm_param { 171 | use_global_stats: true 172 | } 173 | } 174 | layer { 175 | name: "scale_2_1_dw" 176 | type: "Scale" 177 | bottom: "conv_2_1_dw" 178 | top: "conv_2_1_dw" 179 | scale_param { 180 | bias_term: true 181 | } 182 | } 183 | layer { 184 | name: "relu_2_1_dw" 185 | type: "ReLU" 186 | bottom: "conv_2_1_dw" 187 | top: "conv_2_1_dw" 188 | } 189 | layer { 190 | name: "conv_2_1_linear" 191 | type: "Convolution" 192 | bottom: "conv_2_1_dw" 193 | top: "conv_2_1_linear" 194 | param { 195 | lr_mult: 1.0 196 | decay_mult: 1.0 197 | } 198 | convolution_param { 199 | num_output: 16 200 | bias_term: false 201 | pad: 0 202 | kernel_size: 1 203 | stride: 1 204 | weight_filler { 205 | type: "msra" 206 | } 207 | bias_filler { 208 | type: "constant" 209 | value: 0.0 210 | } 211 | } 212 | } 213 | layer { 214 | name: "bn_2_1_linear" 215 | type: "BatchNorm" 216 | bottom: "conv_2_1_linear" 217 | top: "conv_2_1_linear" 218 | param { 219 | lr_mult: 0.0 220 | decay_mult: 0.0 221 | } 222 | param { 223 | lr_mult: 0.0 224 | decay_mult: 0.0 225 | } 226 | param { 227 | lr_mult: 0.0 228 | decay_mult: 0.0 229 | } 230 | batch_norm_param { 231 | use_global_stats: true 232 | } 233 | } 234 | layer { 235 | name: "scale_2_1_linear" 236 | type: "Scale" 237 | bottom: "conv_2_1_linear" 238 | top: "conv_2_1_linear" 239 | scale_param { 240 | bias_term: true 241 | } 242 | } 243 | layer { 244 | name: "conv_3_1_pw" 245 | type: "Convolution" 246 | bottom: "conv_2_1_linear" 247 | top: "conv_3_1_pw" 248 | param { 249 | lr_mult: 1.0 250 | decay_mult: 1.0 251 | } 252 | convolution_param { 253 | num_output: 96 254 | bias_term: false 255 | pad: 0 256 | kernel_size: 1 257 | stride: 1 258 | weight_filler { 259 | type: "msra" 260 | } 261 | bias_filler { 262 | type: "constant" 263 | value: 0.0 264 | } 265 | } 266 | } 267 | layer { 268 | name: "bn_3_1_pw" 269 | type: "BatchNorm" 270 | bottom: "conv_3_1_pw" 271 | top: "conv_3_1_pw" 272 | param { 273 | lr_mult: 0.0 274 | decay_mult: 0.0 275 | } 276 | param { 277 | lr_mult: 0.0 278 | decay_mult: 0.0 279 | } 280 | param { 281 | lr_mult: 0.0 282 | decay_mult: 0.0 283 | } 284 | batch_norm_param { 285 | use_global_stats: true 286 | } 287 | } 288 | layer { 289 | name: "scale_3_1_pw" 290 | type: "Scale" 291 | bottom: "conv_3_1_pw" 292 | top: "conv_3_1_pw" 293 | scale_param { 294 | bias_term: true 295 | } 296 | } 297 | layer { 298 | name: "relu_3_1_pw" 299 | type: "ReLU" 300 | bottom: "conv_3_1_pw" 301 | top: "conv_3_1_pw" 302 | } 303 | layer { 304 | name: "conv_3_1_dw" 305 | type: "Convolution" 306 | bottom: "conv_3_1_pw" 307 | top: "conv_3_1_dw" 308 | param { 309 | lr_mult: 1.0 310 | decay_mult: 1.0 311 | } 312 | convolution_param { 313 | num_output: 96 314 | bias_term: false 315 | pad: 1 316 | kernel_size: 3 317 | group: 96 318 | stride: 2 319 | weight_filler { 320 | type: "msra" 321 | } 322 | bias_filler { 323 | type: "constant" 324 | value: 0.0 325 | } 326 | engine: CAFFE 327 | } 328 | } 329 | layer { 330 | name: "bn_3_1_dw" 331 | type: "BatchNorm" 332 | bottom: "conv_3_1_dw" 333 | top: "conv_3_1_dw" 334 | param { 335 | lr_mult: 0.0 336 | decay_mult: 0.0 337 | } 338 | param { 339 | lr_mult: 0.0 340 | decay_mult: 0.0 341 | } 342 | param { 343 | lr_mult: 0.0 344 | decay_mult: 0.0 345 | } 346 | batch_norm_param { 347 | use_global_stats: true 348 | } 349 | } 350 | layer { 351 | name: "scale_3_1_dw" 352 | type: "Scale" 353 | bottom: "conv_3_1_dw" 354 | top: "conv_3_1_dw" 355 | scale_param { 356 | bias_term: true 357 | } 358 | } 359 | layer { 360 | name: "relu_3_1_dw" 361 | type: "ReLU" 362 | bottom: "conv_3_1_dw" 363 | top: "conv_3_1_dw" 364 | } 365 | layer { 366 | name: "conv_3_1_linear" 367 | type: "Convolution" 368 | bottom: "conv_3_1_dw" 369 | top: "conv_3_1_linear" 370 | param { 371 | lr_mult: 1.0 372 | decay_mult: 1.0 373 | } 374 | convolution_param { 375 | num_output: 24 376 | bias_term: false 377 | pad: 0 378 | kernel_size: 1 379 | stride: 1 380 | weight_filler { 381 | type: "msra" 382 | } 383 | bias_filler { 384 | type: "constant" 385 | value: 0.0 386 | } 387 | } 388 | } 389 | layer { 390 | name: "bn_3_1_linear" 391 | type: "BatchNorm" 392 | bottom: "conv_3_1_linear" 393 | top: "conv_3_1_linear" 394 | param { 395 | lr_mult: 0.0 396 | decay_mult: 0.0 397 | } 398 | param { 399 | lr_mult: 0.0 400 | decay_mult: 0.0 401 | } 402 | param { 403 | lr_mult: 0.0 404 | decay_mult: 0.0 405 | } 406 | batch_norm_param { 407 | use_global_stats: true 408 | } 409 | } 410 | layer { 411 | name: "scale_3_1_linear" 412 | type: "Scale" 413 | bottom: "conv_3_1_linear" 414 | top: "conv_3_1_linear" 415 | scale_param { 416 | bias_term: true 417 | } 418 | } 419 | layer { 420 | name: "conv_3_2_pw" 421 | type: "Convolution" 422 | bottom: "conv_3_1_linear" 423 | top: "conv_3_2_pw" 424 | param { 425 | lr_mult: 1.0 426 | decay_mult: 1.0 427 | } 428 | convolution_param { 429 | num_output: 144 430 | bias_term: false 431 | pad: 0 432 | kernel_size: 1 433 | stride: 1 434 | weight_filler { 435 | type: "msra" 436 | } 437 | bias_filler { 438 | type: "constant" 439 | value: 0.0 440 | } 441 | } 442 | } 443 | layer { 444 | name: "bn_3_2_pw" 445 | type: "BatchNorm" 446 | bottom: "conv_3_2_pw" 447 | top: "conv_3_2_pw" 448 | param { 449 | lr_mult: 0.0 450 | decay_mult: 0.0 451 | } 452 | param { 453 | lr_mult: 0.0 454 | decay_mult: 0.0 455 | } 456 | param { 457 | lr_mult: 0.0 458 | decay_mult: 0.0 459 | } 460 | batch_norm_param { 461 | use_global_stats: true 462 | } 463 | } 464 | layer { 465 | name: "scale_3_2_pw" 466 | type: "Scale" 467 | bottom: "conv_3_2_pw" 468 | top: "conv_3_2_pw" 469 | scale_param { 470 | bias_term: true 471 | } 472 | } 473 | layer { 474 | name: "relu_3_2_pw" 475 | type: "ReLU" 476 | bottom: "conv_3_2_pw" 477 | top: "conv_3_2_pw" 478 | } 479 | layer { 480 | name: "conv_3_2_dw" 481 | type: "Convolution" 482 | bottom: "conv_3_2_pw" 483 | top: "conv_3_2_dw" 484 | param { 485 | lr_mult: 1.0 486 | decay_mult: 1.0 487 | } 488 | convolution_param { 489 | num_output: 144 490 | bias_term: false 491 | pad: 1 492 | kernel_size: 3 493 | group: 144 494 | stride: 1 495 | weight_filler { 496 | type: "msra" 497 | } 498 | bias_filler { 499 | type: "constant" 500 | value: 0.0 501 | } 502 | engine: CAFFE 503 | } 504 | } 505 | layer { 506 | name: "bn_3_2_dw" 507 | type: "BatchNorm" 508 | bottom: "conv_3_2_dw" 509 | top: "conv_3_2_dw" 510 | param { 511 | lr_mult: 0.0 512 | decay_mult: 0.0 513 | } 514 | param { 515 | lr_mult: 0.0 516 | decay_mult: 0.0 517 | } 518 | param { 519 | lr_mult: 0.0 520 | decay_mult: 0.0 521 | } 522 | batch_norm_param { 523 | use_global_stats: true 524 | } 525 | } 526 | layer { 527 | name: "scale_3_2_dw" 528 | type: "Scale" 529 | bottom: "conv_3_2_dw" 530 | top: "conv_3_2_dw" 531 | scale_param { 532 | bias_term: true 533 | } 534 | } 535 | layer { 536 | name: "relu_3_2_dw" 537 | type: "ReLU" 538 | bottom: "conv_3_2_dw" 539 | top: "conv_3_2_dw" 540 | } 541 | layer { 542 | name: "conv_3_2_linear" 543 | type: "Convolution" 544 | bottom: "conv_3_2_dw" 545 | top: "conv_3_2_linear" 546 | param { 547 | lr_mult: 1.0 548 | decay_mult: 1.0 549 | } 550 | convolution_param { 551 | num_output: 24 552 | bias_term: false 553 | pad: 0 554 | kernel_size: 1 555 | stride: 1 556 | weight_filler { 557 | type: "msra" 558 | } 559 | bias_filler { 560 | type: "constant" 561 | value: 0.0 562 | } 563 | } 564 | } 565 | layer { 566 | name: "bn_3_2_linear" 567 | type: "BatchNorm" 568 | bottom: "conv_3_2_linear" 569 | top: "conv_3_2_linear" 570 | param { 571 | lr_mult: 0.0 572 | decay_mult: 0.0 573 | } 574 | param { 575 | lr_mult: 0.0 576 | decay_mult: 0.0 577 | } 578 | param { 579 | lr_mult: 0.0 580 | decay_mult: 0.0 581 | } 582 | batch_norm_param { 583 | use_global_stats: true 584 | } 585 | } 586 | layer { 587 | name: "scale_3_2_linear" 588 | type: "Scale" 589 | bottom: "conv_3_2_linear" 590 | top: "conv_3_2_linear" 591 | scale_param { 592 | bias_term: true 593 | } 594 | } 595 | layer { 596 | name: "add_3_2" 597 | type: "Eltwise" 598 | bottom: "conv_3_1_linear" 599 | bottom: "conv_3_2_linear" 600 | top: "add_3_2" 601 | } 602 | layer { 603 | name: "conv_4_1_pw" 604 | type: "Convolution" 605 | bottom: "add_3_2" 606 | top: "conv_4_1_pw" 607 | param { 608 | lr_mult: 1.0 609 | decay_mult: 1.0 610 | } 611 | convolution_param { 612 | num_output: 144 613 | bias_term: false 614 | pad: 0 615 | kernel_size: 1 616 | stride: 1 617 | weight_filler { 618 | type: "msra" 619 | } 620 | bias_filler { 621 | type: "constant" 622 | value: 0.0 623 | } 624 | } 625 | } 626 | layer { 627 | name: "bn_4_1_pw" 628 | type: "BatchNorm" 629 | bottom: "conv_4_1_pw" 630 | top: "conv_4_1_pw" 631 | param { 632 | lr_mult: 0.0 633 | decay_mult: 0.0 634 | } 635 | param { 636 | lr_mult: 0.0 637 | decay_mult: 0.0 638 | } 639 | param { 640 | lr_mult: 0.0 641 | decay_mult: 0.0 642 | } 643 | batch_norm_param { 644 | use_global_stats: true 645 | } 646 | } 647 | layer { 648 | name: "scale_4_1_pw" 649 | type: "Scale" 650 | bottom: "conv_4_1_pw" 651 | top: "conv_4_1_pw" 652 | scale_param { 653 | bias_term: true 654 | } 655 | } 656 | layer { 657 | name: "relu_4_1_pw" 658 | type: "ReLU" 659 | bottom: "conv_4_1_pw" 660 | top: "conv_4_1_pw" 661 | } 662 | layer { 663 | name: "conv_4_1_dw" 664 | type: "Convolution" 665 | bottom: "conv_4_1_pw" 666 | top: "conv_4_1_dw" 667 | param { 668 | lr_mult: 1.0 669 | decay_mult: 1.0 670 | } 671 | convolution_param { 672 | num_output: 144 673 | bias_term: false 674 | pad: 1 675 | kernel_size: 3 676 | group: 144 677 | stride: 2 678 | weight_filler { 679 | type: "msra" 680 | } 681 | bias_filler { 682 | type: "constant" 683 | value: 0.0 684 | } 685 | engine: CAFFE 686 | } 687 | } 688 | layer { 689 | name: "bn_4_1_dw" 690 | type: "BatchNorm" 691 | bottom: "conv_4_1_dw" 692 | top: "conv_4_1_dw" 693 | param { 694 | lr_mult: 0.0 695 | decay_mult: 0.0 696 | } 697 | param { 698 | lr_mult: 0.0 699 | decay_mult: 0.0 700 | } 701 | param { 702 | lr_mult: 0.0 703 | decay_mult: 0.0 704 | } 705 | batch_norm_param { 706 | use_global_stats: true 707 | } 708 | } 709 | layer { 710 | name: "scale_4_1_dw" 711 | type: "Scale" 712 | bottom: "conv_4_1_dw" 713 | top: "conv_4_1_dw" 714 | scale_param { 715 | bias_term: true 716 | } 717 | } 718 | layer { 719 | name: "relu_4_1_dw" 720 | type: "ReLU" 721 | bottom: "conv_4_1_dw" 722 | top: "conv_4_1_dw" 723 | } 724 | layer { 725 | name: "conv_4_1_linear" 726 | type: "Convolution" 727 | bottom: "conv_4_1_dw" 728 | top: "conv_4_1_linear" 729 | param { 730 | lr_mult: 1.0 731 | decay_mult: 1.0 732 | } 733 | convolution_param { 734 | num_output: 32 735 | bias_term: false 736 | pad: 0 737 | kernel_size: 1 738 | stride: 1 739 | weight_filler { 740 | type: "msra" 741 | } 742 | bias_filler { 743 | type: "constant" 744 | value: 0.0 745 | } 746 | } 747 | } 748 | layer { 749 | name: "bn_4_1_linear" 750 | type: "BatchNorm" 751 | bottom: "conv_4_1_linear" 752 | top: "conv_4_1_linear" 753 | param { 754 | lr_mult: 0.0 755 | decay_mult: 0.0 756 | } 757 | param { 758 | lr_mult: 0.0 759 | decay_mult: 0.0 760 | } 761 | param { 762 | lr_mult: 0.0 763 | decay_mult: 0.0 764 | } 765 | batch_norm_param { 766 | use_global_stats: true 767 | } 768 | } 769 | layer { 770 | name: "scale_4_1_linear" 771 | type: "Scale" 772 | bottom: "conv_4_1_linear" 773 | top: "conv_4_1_linear" 774 | scale_param { 775 | bias_term: true 776 | } 777 | } 778 | layer { 779 | name: "conv_4_2_pw" 780 | type: "Convolution" 781 | bottom: "conv_4_1_linear" 782 | top: "conv_4_2_pw" 783 | param { 784 | lr_mult: 1.0 785 | decay_mult: 1.0 786 | } 787 | convolution_param { 788 | num_output: 192 789 | bias_term: false 790 | pad: 0 791 | kernel_size: 1 792 | stride: 1 793 | weight_filler { 794 | type: "msra" 795 | } 796 | bias_filler { 797 | type: "constant" 798 | value: 0.0 799 | } 800 | } 801 | } 802 | layer { 803 | name: "bn_4_2_pw" 804 | type: "BatchNorm" 805 | bottom: "conv_4_2_pw" 806 | top: "conv_4_2_pw" 807 | param { 808 | lr_mult: 0.0 809 | decay_mult: 0.0 810 | } 811 | param { 812 | lr_mult: 0.0 813 | decay_mult: 0.0 814 | } 815 | param { 816 | lr_mult: 0.0 817 | decay_mult: 0.0 818 | } 819 | batch_norm_param { 820 | use_global_stats: true 821 | } 822 | } 823 | layer { 824 | name: "scale_4_2_pw" 825 | type: "Scale" 826 | bottom: "conv_4_2_pw" 827 | top: "conv_4_2_pw" 828 | scale_param { 829 | bias_term: true 830 | } 831 | } 832 | layer { 833 | name: "relu_4_2_pw" 834 | type: "ReLU" 835 | bottom: "conv_4_2_pw" 836 | top: "conv_4_2_pw" 837 | } 838 | layer { 839 | name: "conv_4_2_dw" 840 | type: "Convolution" 841 | bottom: "conv_4_2_pw" 842 | top: "conv_4_2_dw" 843 | param { 844 | lr_mult: 1.0 845 | decay_mult: 1.0 846 | } 847 | convolution_param { 848 | num_output: 192 849 | bias_term: false 850 | pad: 1 851 | kernel_size: 3 852 | group: 192 853 | stride: 1 854 | weight_filler { 855 | type: "msra" 856 | } 857 | bias_filler { 858 | type: "constant" 859 | value: 0.0 860 | } 861 | engine: CAFFE 862 | } 863 | } 864 | layer { 865 | name: "bn_4_2_dw" 866 | type: "BatchNorm" 867 | bottom: "conv_4_2_dw" 868 | top: "conv_4_2_dw" 869 | param { 870 | lr_mult: 0.0 871 | decay_mult: 0.0 872 | } 873 | param { 874 | lr_mult: 0.0 875 | decay_mult: 0.0 876 | } 877 | param { 878 | lr_mult: 0.0 879 | decay_mult: 0.0 880 | } 881 | batch_norm_param { 882 | use_global_stats: true 883 | } 884 | } 885 | layer { 886 | name: "scale_4_2_dw" 887 | type: "Scale" 888 | bottom: "conv_4_2_dw" 889 | top: "conv_4_2_dw" 890 | scale_param { 891 | bias_term: true 892 | } 893 | } 894 | layer { 895 | name: "relu_4_2_dw" 896 | type: "ReLU" 897 | bottom: "conv_4_2_dw" 898 | top: "conv_4_2_dw" 899 | } 900 | layer { 901 | name: "conv_4_2_linear" 902 | type: "Convolution" 903 | bottom: "conv_4_2_dw" 904 | top: "conv_4_2_linear" 905 | param { 906 | lr_mult: 1.0 907 | decay_mult: 1.0 908 | } 909 | convolution_param { 910 | num_output: 32 911 | bias_term: false 912 | pad: 0 913 | kernel_size: 1 914 | stride: 1 915 | weight_filler { 916 | type: "msra" 917 | } 918 | bias_filler { 919 | type: "constant" 920 | value: 0.0 921 | } 922 | } 923 | } 924 | layer { 925 | name: "bn_4_2_linear" 926 | type: "BatchNorm" 927 | bottom: "conv_4_2_linear" 928 | top: "conv_4_2_linear" 929 | param { 930 | lr_mult: 0.0 931 | decay_mult: 0.0 932 | } 933 | param { 934 | lr_mult: 0.0 935 | decay_mult: 0.0 936 | } 937 | param { 938 | lr_mult: 0.0 939 | decay_mult: 0.0 940 | } 941 | batch_norm_param { 942 | use_global_stats: true 943 | } 944 | } 945 | layer { 946 | name: "scale_4_2_linear" 947 | type: "Scale" 948 | bottom: "conv_4_2_linear" 949 | top: "conv_4_2_linear" 950 | scale_param { 951 | bias_term: true 952 | } 953 | } 954 | layer { 955 | name: "add_4_2" 956 | type: "Eltwise" 957 | bottom: "conv_4_1_linear" 958 | bottom: "conv_4_2_linear" 959 | top: "add_4_2" 960 | } 961 | layer { 962 | name: "conv_4_3_pw" 963 | type: "Convolution" 964 | bottom: "add_4_2" 965 | top: "conv_4_3_pw" 966 | param { 967 | lr_mult: 1.0 968 | decay_mult: 1.0 969 | } 970 | convolution_param { 971 | num_output: 192 972 | bias_term: false 973 | pad: 0 974 | kernel_size: 1 975 | stride: 1 976 | weight_filler { 977 | type: "msra" 978 | } 979 | bias_filler { 980 | type: "constant" 981 | value: 0.0 982 | } 983 | } 984 | } 985 | layer { 986 | name: "bn_4_3_pw" 987 | type: "BatchNorm" 988 | bottom: "conv_4_3_pw" 989 | top: "conv_4_3_pw" 990 | param { 991 | lr_mult: 0.0 992 | decay_mult: 0.0 993 | } 994 | param { 995 | lr_mult: 0.0 996 | decay_mult: 0.0 997 | } 998 | param { 999 | lr_mult: 0.0 1000 | decay_mult: 0.0 1001 | } 1002 | batch_norm_param { 1003 | use_global_stats: true 1004 | } 1005 | } 1006 | layer { 1007 | name: "scale_4_3_pw" 1008 | type: "Scale" 1009 | bottom: "conv_4_3_pw" 1010 | top: "conv_4_3_pw" 1011 | scale_param { 1012 | bias_term: true 1013 | } 1014 | } 1015 | layer { 1016 | name: "relu_4_3_pw" 1017 | type: "ReLU" 1018 | bottom: "conv_4_3_pw" 1019 | top: "conv_4_3_pw" 1020 | } 1021 | layer { 1022 | name: "conv_4_3_dw" 1023 | type: "Convolution" 1024 | bottom: "conv_4_3_pw" 1025 | top: "conv_4_3_dw" 1026 | param { 1027 | lr_mult: 1.0 1028 | decay_mult: 1.0 1029 | } 1030 | convolution_param { 1031 | num_output: 192 1032 | bias_term: false 1033 | pad: 1 1034 | kernel_size: 3 1035 | group: 192 1036 | stride: 1 1037 | weight_filler { 1038 | type: "msra" 1039 | } 1040 | bias_filler { 1041 | type: "constant" 1042 | value: 0.0 1043 | } 1044 | engine: CAFFE 1045 | } 1046 | } 1047 | layer { 1048 | name: "bn_4_3_dw" 1049 | type: "BatchNorm" 1050 | bottom: "conv_4_3_dw" 1051 | top: "conv_4_3_dw" 1052 | param { 1053 | lr_mult: 0.0 1054 | decay_mult: 0.0 1055 | } 1056 | param { 1057 | lr_mult: 0.0 1058 | decay_mult: 0.0 1059 | } 1060 | param { 1061 | lr_mult: 0.0 1062 | decay_mult: 0.0 1063 | } 1064 | batch_norm_param { 1065 | use_global_stats: true 1066 | } 1067 | } 1068 | layer { 1069 | name: "scale_4_3_dw" 1070 | type: "Scale" 1071 | bottom: "conv_4_3_dw" 1072 | top: "conv_4_3_dw" 1073 | scale_param { 1074 | bias_term: true 1075 | } 1076 | } 1077 | layer { 1078 | name: "relu_4_3_dw" 1079 | type: "ReLU" 1080 | bottom: "conv_4_3_dw" 1081 | top: "conv_4_3_dw" 1082 | } 1083 | layer { 1084 | name: "conv_4_3_linear" 1085 | type: "Convolution" 1086 | bottom: "conv_4_3_dw" 1087 | top: "conv_4_3_linear" 1088 | param { 1089 | lr_mult: 1.0 1090 | decay_mult: 1.0 1091 | } 1092 | convolution_param { 1093 | num_output: 32 1094 | bias_term: false 1095 | pad: 0 1096 | kernel_size: 1 1097 | stride: 1 1098 | weight_filler { 1099 | type: "msra" 1100 | } 1101 | bias_filler { 1102 | type: "constant" 1103 | value: 0.0 1104 | } 1105 | } 1106 | } 1107 | layer { 1108 | name: "bn_4_3_linear" 1109 | type: "BatchNorm" 1110 | bottom: "conv_4_3_linear" 1111 | top: "conv_4_3_linear" 1112 | param { 1113 | lr_mult: 0.0 1114 | decay_mult: 0.0 1115 | } 1116 | param { 1117 | lr_mult: 0.0 1118 | decay_mult: 0.0 1119 | } 1120 | param { 1121 | lr_mult: 0.0 1122 | decay_mult: 0.0 1123 | } 1124 | batch_norm_param { 1125 | use_global_stats: true 1126 | } 1127 | } 1128 | layer { 1129 | name: "scale_4_3_linear" 1130 | type: "Scale" 1131 | bottom: "conv_4_3_linear" 1132 | top: "conv_4_3_linear" 1133 | scale_param { 1134 | bias_term: true 1135 | } 1136 | } 1137 | layer { 1138 | name: "add_4_3" 1139 | type: "Eltwise" 1140 | bottom: "add_4_2" 1141 | bottom: "conv_4_3_linear" 1142 | top: "add_4_3" 1143 | } 1144 | layer { 1145 | name: "conv_5_1_pw" 1146 | type: "Convolution" 1147 | bottom: "add_4_3" 1148 | top: "conv_5_1_pw" 1149 | param { 1150 | lr_mult: 1.0 1151 | decay_mult: 1.0 1152 | } 1153 | convolution_param { 1154 | num_output: 192 1155 | bias_term: false 1156 | pad: 0 1157 | kernel_size: 1 1158 | stride: 1 1159 | weight_filler { 1160 | type: "msra" 1161 | } 1162 | bias_filler { 1163 | type: "constant" 1164 | value: 0.0 1165 | } 1166 | } 1167 | } 1168 | layer { 1169 | name: "bn_5_1_pw" 1170 | type: "BatchNorm" 1171 | bottom: "conv_5_1_pw" 1172 | top: "conv_5_1_pw" 1173 | param { 1174 | lr_mult: 0.0 1175 | decay_mult: 0.0 1176 | } 1177 | param { 1178 | lr_mult: 0.0 1179 | decay_mult: 0.0 1180 | } 1181 | param { 1182 | lr_mult: 0.0 1183 | decay_mult: 0.0 1184 | } 1185 | batch_norm_param { 1186 | use_global_stats: true 1187 | } 1188 | } 1189 | layer { 1190 | name: "scale_5_1_pw" 1191 | type: "Scale" 1192 | bottom: "conv_5_1_pw" 1193 | top: "conv_5_1_pw" 1194 | scale_param { 1195 | bias_term: true 1196 | } 1197 | } 1198 | layer { 1199 | name: "relu_5_1_pw" 1200 | type: "ReLU" 1201 | bottom: "conv_5_1_pw" 1202 | top: "conv_5_1_pw" 1203 | } 1204 | layer { 1205 | name: "conv_5_1_dw" 1206 | type: "Convolution" 1207 | bottom: "conv_5_1_pw" 1208 | top: "conv_5_1_dw" 1209 | param { 1210 | lr_mult: 1.0 1211 | decay_mult: 1.0 1212 | } 1213 | convolution_param { 1214 | num_output: 192 1215 | bias_term: false 1216 | pad: 1 1217 | kernel_size: 3 1218 | group: 192 1219 | stride: 2 1220 | weight_filler { 1221 | type: "msra" 1222 | } 1223 | bias_filler { 1224 | type: "constant" 1225 | value: 0.0 1226 | } 1227 | engine: CAFFE 1228 | } 1229 | } 1230 | layer { 1231 | name: "bn_5_1_dw" 1232 | type: "BatchNorm" 1233 | bottom: "conv_5_1_dw" 1234 | top: "conv_5_1_dw" 1235 | param { 1236 | lr_mult: 0.0 1237 | decay_mult: 0.0 1238 | } 1239 | param { 1240 | lr_mult: 0.0 1241 | decay_mult: 0.0 1242 | } 1243 | param { 1244 | lr_mult: 0.0 1245 | decay_mult: 0.0 1246 | } 1247 | batch_norm_param { 1248 | use_global_stats: true 1249 | } 1250 | } 1251 | layer { 1252 | name: "scale_5_1_dw" 1253 | type: "Scale" 1254 | bottom: "conv_5_1_dw" 1255 | top: "conv_5_1_dw" 1256 | scale_param { 1257 | bias_term: true 1258 | } 1259 | } 1260 | layer { 1261 | name: "relu_5_1_dw" 1262 | type: "ReLU" 1263 | bottom: "conv_5_1_dw" 1264 | top: "conv_5_1_dw" 1265 | } 1266 | layer { 1267 | name: "conv_5_1_linear" 1268 | type: "Convolution" 1269 | bottom: "conv_5_1_dw" 1270 | top: "conv_5_1_linear" 1271 | param { 1272 | lr_mult: 1.0 1273 | decay_mult: 1.0 1274 | } 1275 | convolution_param { 1276 | num_output: 64 1277 | bias_term: false 1278 | pad: 0 1279 | kernel_size: 1 1280 | stride: 1 1281 | weight_filler { 1282 | type: "msra" 1283 | } 1284 | bias_filler { 1285 | type: "constant" 1286 | value: 0.0 1287 | } 1288 | } 1289 | } 1290 | layer { 1291 | name: "bn_5_1_linear" 1292 | type: "BatchNorm" 1293 | bottom: "conv_5_1_linear" 1294 | top: "conv_5_1_linear" 1295 | param { 1296 | lr_mult: 0.0 1297 | decay_mult: 0.0 1298 | } 1299 | param { 1300 | lr_mult: 0.0 1301 | decay_mult: 0.0 1302 | } 1303 | param { 1304 | lr_mult: 0.0 1305 | decay_mult: 0.0 1306 | } 1307 | batch_norm_param { 1308 | use_global_stats: true 1309 | } 1310 | } 1311 | layer { 1312 | name: "scale_5_1_linear" 1313 | type: "Scale" 1314 | bottom: "conv_5_1_linear" 1315 | top: "conv_5_1_linear" 1316 | scale_param { 1317 | bias_term: true 1318 | } 1319 | } 1320 | layer { 1321 | name: "conv_5_2_pw" 1322 | type: "Convolution" 1323 | bottom: "conv_5_1_linear" 1324 | top: "conv_5_2_pw" 1325 | param { 1326 | lr_mult: 1.0 1327 | decay_mult: 1.0 1328 | } 1329 | convolution_param { 1330 | num_output: 384 1331 | bias_term: false 1332 | pad: 0 1333 | kernel_size: 1 1334 | stride: 1 1335 | weight_filler { 1336 | type: "msra" 1337 | } 1338 | bias_filler { 1339 | type: "constant" 1340 | value: 0.0 1341 | } 1342 | } 1343 | } 1344 | layer { 1345 | name: "bn_5_2_pw" 1346 | type: "BatchNorm" 1347 | bottom: "conv_5_2_pw" 1348 | top: "conv_5_2_pw" 1349 | param { 1350 | lr_mult: 0.0 1351 | decay_mult: 0.0 1352 | } 1353 | param { 1354 | lr_mult: 0.0 1355 | decay_mult: 0.0 1356 | } 1357 | param { 1358 | lr_mult: 0.0 1359 | decay_mult: 0.0 1360 | } 1361 | batch_norm_param { 1362 | use_global_stats: true 1363 | } 1364 | } 1365 | layer { 1366 | name: "scale_5_2_pw" 1367 | type: "Scale" 1368 | bottom: "conv_5_2_pw" 1369 | top: "conv_5_2_pw" 1370 | scale_param { 1371 | bias_term: true 1372 | } 1373 | } 1374 | layer { 1375 | name: "relu_5_2_pw" 1376 | type: "ReLU" 1377 | bottom: "conv_5_2_pw" 1378 | top: "conv_5_2_pw" 1379 | } 1380 | layer { 1381 | name: "conv_5_2_dw" 1382 | type: "Convolution" 1383 | bottom: "conv_5_2_pw" 1384 | top: "conv_5_2_dw" 1385 | param { 1386 | lr_mult: 1.0 1387 | decay_mult: 1.0 1388 | } 1389 | convolution_param { 1390 | num_output: 384 1391 | bias_term: false 1392 | pad: 1 1393 | kernel_size: 3 1394 | group: 384 1395 | stride: 1 1396 | weight_filler { 1397 | type: "msra" 1398 | } 1399 | bias_filler { 1400 | type: "constant" 1401 | value: 0.0 1402 | } 1403 | engine: CAFFE 1404 | } 1405 | } 1406 | layer { 1407 | name: "bn_5_2_dw" 1408 | type: "BatchNorm" 1409 | bottom: "conv_5_2_dw" 1410 | top: "conv_5_2_dw" 1411 | param { 1412 | lr_mult: 0.0 1413 | decay_mult: 0.0 1414 | } 1415 | param { 1416 | lr_mult: 0.0 1417 | decay_mult: 0.0 1418 | } 1419 | param { 1420 | lr_mult: 0.0 1421 | decay_mult: 0.0 1422 | } 1423 | batch_norm_param { 1424 | use_global_stats: true 1425 | } 1426 | } 1427 | layer { 1428 | name: "scale_5_2_dw" 1429 | type: "Scale" 1430 | bottom: "conv_5_2_dw" 1431 | top: "conv_5_2_dw" 1432 | scale_param { 1433 | bias_term: true 1434 | } 1435 | } 1436 | layer { 1437 | name: "relu_5_2_dw" 1438 | type: "ReLU" 1439 | bottom: "conv_5_2_dw" 1440 | top: "conv_5_2_dw" 1441 | } 1442 | layer { 1443 | name: "conv_5_2_linear" 1444 | type: "Convolution" 1445 | bottom: "conv_5_2_dw" 1446 | top: "conv_5_2_linear" 1447 | param { 1448 | lr_mult: 1.0 1449 | decay_mult: 1.0 1450 | } 1451 | convolution_param { 1452 | num_output: 64 1453 | bias_term: false 1454 | pad: 0 1455 | kernel_size: 1 1456 | stride: 1 1457 | weight_filler { 1458 | type: "msra" 1459 | } 1460 | bias_filler { 1461 | type: "constant" 1462 | value: 0.0 1463 | } 1464 | } 1465 | } 1466 | layer { 1467 | name: "bn_5_2_linear" 1468 | type: "BatchNorm" 1469 | bottom: "conv_5_2_linear" 1470 | top: "conv_5_2_linear" 1471 | param { 1472 | lr_mult: 0.0 1473 | decay_mult: 0.0 1474 | } 1475 | param { 1476 | lr_mult: 0.0 1477 | decay_mult: 0.0 1478 | } 1479 | param { 1480 | lr_mult: 0.0 1481 | decay_mult: 0.0 1482 | } 1483 | batch_norm_param { 1484 | use_global_stats: true 1485 | } 1486 | } 1487 | layer { 1488 | name: "scale_5_2_linear" 1489 | type: "Scale" 1490 | bottom: "conv_5_2_linear" 1491 | top: "conv_5_2_linear" 1492 | scale_param { 1493 | bias_term: true 1494 | } 1495 | } 1496 | layer { 1497 | name: "add_5_2" 1498 | type: "Eltwise" 1499 | bottom: "conv_5_1_linear" 1500 | bottom: "conv_5_2_linear" 1501 | top: "add_5_2" 1502 | } 1503 | layer { 1504 | name: "conv_5_3_pw" 1505 | type: "Convolution" 1506 | bottom: "add_5_2" 1507 | top: "conv_5_3_pw" 1508 | param { 1509 | lr_mult: 1.0 1510 | decay_mult: 1.0 1511 | } 1512 | convolution_param { 1513 | num_output: 384 1514 | bias_term: false 1515 | pad: 0 1516 | kernel_size: 1 1517 | stride: 1 1518 | weight_filler { 1519 | type: "msra" 1520 | } 1521 | bias_filler { 1522 | type: "constant" 1523 | value: 0.0 1524 | } 1525 | } 1526 | } 1527 | layer { 1528 | name: "bn_5_3_pw" 1529 | type: "BatchNorm" 1530 | bottom: "conv_5_3_pw" 1531 | top: "conv_5_3_pw" 1532 | param { 1533 | lr_mult: 0.0 1534 | decay_mult: 0.0 1535 | } 1536 | param { 1537 | lr_mult: 0.0 1538 | decay_mult: 0.0 1539 | } 1540 | param { 1541 | lr_mult: 0.0 1542 | decay_mult: 0.0 1543 | } 1544 | batch_norm_param { 1545 | use_global_stats: true 1546 | } 1547 | } 1548 | layer { 1549 | name: "scale_5_3_pw" 1550 | type: "Scale" 1551 | bottom: "conv_5_3_pw" 1552 | top: "conv_5_3_pw" 1553 | scale_param { 1554 | bias_term: true 1555 | } 1556 | } 1557 | layer { 1558 | name: "relu_5_3_pw" 1559 | type: "ReLU" 1560 | bottom: "conv_5_3_pw" 1561 | top: "conv_5_3_pw" 1562 | } 1563 | layer { 1564 | name: "conv_5_3_dw" 1565 | type: "Convolution" 1566 | bottom: "conv_5_3_pw" 1567 | top: "conv_5_3_dw" 1568 | param { 1569 | lr_mult: 1.0 1570 | decay_mult: 1.0 1571 | } 1572 | convolution_param { 1573 | num_output: 384 1574 | bias_term: false 1575 | pad: 1 1576 | kernel_size: 3 1577 | group: 384 1578 | stride: 1 1579 | weight_filler { 1580 | type: "msra" 1581 | } 1582 | bias_filler { 1583 | type: "constant" 1584 | value: 0.0 1585 | } 1586 | engine: CAFFE 1587 | } 1588 | } 1589 | layer { 1590 | name: "bn_5_3_dw" 1591 | type: "BatchNorm" 1592 | bottom: "conv_5_3_dw" 1593 | top: "conv_5_3_dw" 1594 | param { 1595 | lr_mult: 0.0 1596 | decay_mult: 0.0 1597 | } 1598 | param { 1599 | lr_mult: 0.0 1600 | decay_mult: 0.0 1601 | } 1602 | param { 1603 | lr_mult: 0.0 1604 | decay_mult: 0.0 1605 | } 1606 | batch_norm_param { 1607 | use_global_stats: true 1608 | } 1609 | } 1610 | layer { 1611 | name: "scale_5_3_dw" 1612 | type: "Scale" 1613 | bottom: "conv_5_3_dw" 1614 | top: "conv_5_3_dw" 1615 | scale_param { 1616 | bias_term: true 1617 | } 1618 | } 1619 | layer { 1620 | name: "relu_5_3_dw" 1621 | type: "ReLU" 1622 | bottom: "conv_5_3_dw" 1623 | top: "conv_5_3_dw" 1624 | } 1625 | layer { 1626 | name: "conv_5_3_linear" 1627 | type: "Convolution" 1628 | bottom: "conv_5_3_dw" 1629 | top: "conv_5_3_linear" 1630 | param { 1631 | lr_mult: 1.0 1632 | decay_mult: 1.0 1633 | } 1634 | convolution_param { 1635 | num_output: 64 1636 | bias_term: false 1637 | pad: 0 1638 | kernel_size: 1 1639 | stride: 1 1640 | weight_filler { 1641 | type: "msra" 1642 | } 1643 | bias_filler { 1644 | type: "constant" 1645 | value: 0.0 1646 | } 1647 | } 1648 | } 1649 | layer { 1650 | name: "bn_5_3_linear" 1651 | type: "BatchNorm" 1652 | bottom: "conv_5_3_linear" 1653 | top: "conv_5_3_linear" 1654 | param { 1655 | lr_mult: 0.0 1656 | decay_mult: 0.0 1657 | } 1658 | param { 1659 | lr_mult: 0.0 1660 | decay_mult: 0.0 1661 | } 1662 | param { 1663 | lr_mult: 0.0 1664 | decay_mult: 0.0 1665 | } 1666 | batch_norm_param { 1667 | use_global_stats: true 1668 | } 1669 | } 1670 | layer { 1671 | name: "scale_5_3_linear" 1672 | type: "Scale" 1673 | bottom: "conv_5_3_linear" 1674 | top: "conv_5_3_linear" 1675 | scale_param { 1676 | bias_term: true 1677 | } 1678 | } 1679 | layer { 1680 | name: "add_5_3" 1681 | type: "Eltwise" 1682 | bottom: "add_5_2" 1683 | bottom: "conv_5_3_linear" 1684 | top: "add_5_3" 1685 | } 1686 | layer { 1687 | name: "conv_5_4_pw" 1688 | type: "Convolution" 1689 | bottom: "add_5_3" 1690 | top: "conv_5_4_pw" 1691 | param { 1692 | lr_mult: 1.0 1693 | decay_mult: 1.0 1694 | } 1695 | convolution_param { 1696 | num_output: 384 1697 | bias_term: false 1698 | pad: 0 1699 | kernel_size: 1 1700 | stride: 1 1701 | weight_filler { 1702 | type: "msra" 1703 | } 1704 | bias_filler { 1705 | type: "constant" 1706 | value: 0.0 1707 | } 1708 | } 1709 | } 1710 | layer { 1711 | name: "bn_5_4_pw" 1712 | type: "BatchNorm" 1713 | bottom: "conv_5_4_pw" 1714 | top: "conv_5_4_pw" 1715 | param { 1716 | lr_mult: 0.0 1717 | decay_mult: 0.0 1718 | } 1719 | param { 1720 | lr_mult: 0.0 1721 | decay_mult: 0.0 1722 | } 1723 | param { 1724 | lr_mult: 0.0 1725 | decay_mult: 0.0 1726 | } 1727 | batch_norm_param { 1728 | use_global_stats: true 1729 | } 1730 | } 1731 | layer { 1732 | name: "scale_5_4_pw" 1733 | type: "Scale" 1734 | bottom: "conv_5_4_pw" 1735 | top: "conv_5_4_pw" 1736 | scale_param { 1737 | bias_term: true 1738 | } 1739 | } 1740 | layer { 1741 | name: "relu_5_4_pw" 1742 | type: "ReLU" 1743 | bottom: "conv_5_4_pw" 1744 | top: "conv_5_4_pw" 1745 | } 1746 | layer { 1747 | name: "conv_5_4_dw" 1748 | type: "Convolution" 1749 | bottom: "conv_5_4_pw" 1750 | top: "conv_5_4_dw" 1751 | param { 1752 | lr_mult: 1.0 1753 | decay_mult: 1.0 1754 | } 1755 | convolution_param { 1756 | num_output: 384 1757 | bias_term: false 1758 | pad: 1 1759 | kernel_size: 3 1760 | group: 384 1761 | stride: 1 1762 | weight_filler { 1763 | type: "msra" 1764 | } 1765 | bias_filler { 1766 | type: "constant" 1767 | value: 0.0 1768 | } 1769 | engine: CAFFE 1770 | } 1771 | } 1772 | layer { 1773 | name: "bn_5_4_dw" 1774 | type: "BatchNorm" 1775 | bottom: "conv_5_4_dw" 1776 | top: "conv_5_4_dw" 1777 | param { 1778 | lr_mult: 0.0 1779 | decay_mult: 0.0 1780 | } 1781 | param { 1782 | lr_mult: 0.0 1783 | decay_mult: 0.0 1784 | } 1785 | param { 1786 | lr_mult: 0.0 1787 | decay_mult: 0.0 1788 | } 1789 | batch_norm_param { 1790 | use_global_stats: true 1791 | } 1792 | } 1793 | layer { 1794 | name: "scale_5_4_dw" 1795 | type: "Scale" 1796 | bottom: "conv_5_4_dw" 1797 | top: "conv_5_4_dw" 1798 | scale_param { 1799 | bias_term: true 1800 | } 1801 | } 1802 | layer { 1803 | name: "relu_5_4_dw" 1804 | type: "ReLU" 1805 | bottom: "conv_5_4_dw" 1806 | top: "conv_5_4_dw" 1807 | } 1808 | layer { 1809 | name: "conv_5_4_linear" 1810 | type: "Convolution" 1811 | bottom: "conv_5_4_dw" 1812 | top: "conv_5_4_linear" 1813 | param { 1814 | lr_mult: 1.0 1815 | decay_mult: 1.0 1816 | } 1817 | convolution_param { 1818 | num_output: 64 1819 | bias_term: false 1820 | pad: 0 1821 | kernel_size: 1 1822 | stride: 1 1823 | weight_filler { 1824 | type: "msra" 1825 | } 1826 | bias_filler { 1827 | type: "constant" 1828 | value: 0.0 1829 | } 1830 | } 1831 | } 1832 | layer { 1833 | name: "bn_5_4_linear" 1834 | type: "BatchNorm" 1835 | bottom: "conv_5_4_linear" 1836 | top: "conv_5_4_linear" 1837 | param { 1838 | lr_mult: 0.0 1839 | decay_mult: 0.0 1840 | } 1841 | param { 1842 | lr_mult: 0.0 1843 | decay_mult: 0.0 1844 | } 1845 | param { 1846 | lr_mult: 0.0 1847 | decay_mult: 0.0 1848 | } 1849 | batch_norm_param { 1850 | use_global_stats: true 1851 | } 1852 | } 1853 | layer { 1854 | name: "scale_5_4_linear" 1855 | type: "Scale" 1856 | bottom: "conv_5_4_linear" 1857 | top: "conv_5_4_linear" 1858 | scale_param { 1859 | bias_term: true 1860 | } 1861 | } 1862 | layer { 1863 | name: "add_5_4" 1864 | type: "Eltwise" 1865 | bottom: "add_5_3" 1866 | bottom: "conv_5_4_linear" 1867 | top: "add_5_4" 1868 | } 1869 | layer { 1870 | name: "conv_6_1_pw" 1871 | type: "Convolution" 1872 | bottom: "add_5_4" 1873 | top: "conv_6_1_pw" 1874 | param { 1875 | lr_mult: 1.0 1876 | decay_mult: 1.0 1877 | } 1878 | convolution_param { 1879 | num_output: 384 1880 | bias_term: false 1881 | pad: 0 1882 | kernel_size: 1 1883 | stride: 1 1884 | weight_filler { 1885 | type: "msra" 1886 | } 1887 | bias_filler { 1888 | type: "constant" 1889 | value: 0.0 1890 | } 1891 | } 1892 | } 1893 | layer { 1894 | name: "bn_6_1_pw" 1895 | type: "BatchNorm" 1896 | bottom: "conv_6_1_pw" 1897 | top: "conv_6_1_pw" 1898 | param { 1899 | lr_mult: 0.0 1900 | decay_mult: 0.0 1901 | } 1902 | param { 1903 | lr_mult: 0.0 1904 | decay_mult: 0.0 1905 | } 1906 | param { 1907 | lr_mult: 0.0 1908 | decay_mult: 0.0 1909 | } 1910 | batch_norm_param { 1911 | use_global_stats: true 1912 | } 1913 | } 1914 | layer { 1915 | name: "scale_6_1_pw" 1916 | type: "Scale" 1917 | bottom: "conv_6_1_pw" 1918 | top: "conv_6_1_pw" 1919 | scale_param { 1920 | bias_term: true 1921 | } 1922 | } 1923 | layer { 1924 | name: "relu_6_1_pw" 1925 | type: "ReLU" 1926 | bottom: "conv_6_1_pw" 1927 | top: "conv_6_1_pw" 1928 | } 1929 | layer { 1930 | name: "conv_6_1_dw" 1931 | type: "Convolution" 1932 | bottom: "conv_6_1_pw" 1933 | top: "conv_6_1_dw" 1934 | param { 1935 | lr_mult: 1.0 1936 | decay_mult: 1.0 1937 | } 1938 | convolution_param { 1939 | num_output: 384 1940 | bias_term: false 1941 | pad: 1 1942 | kernel_size: 3 1943 | group: 384 1944 | stride: 1 1945 | weight_filler { 1946 | type: "msra" 1947 | } 1948 | bias_filler { 1949 | type: "constant" 1950 | value: 0.0 1951 | } 1952 | engine: CAFFE 1953 | } 1954 | } 1955 | layer { 1956 | name: "bn_6_1_dw" 1957 | type: "BatchNorm" 1958 | bottom: "conv_6_1_dw" 1959 | top: "conv_6_1_dw" 1960 | param { 1961 | lr_mult: 0.0 1962 | decay_mult: 0.0 1963 | } 1964 | param { 1965 | lr_mult: 0.0 1966 | decay_mult: 0.0 1967 | } 1968 | param { 1969 | lr_mult: 0.0 1970 | decay_mult: 0.0 1971 | } 1972 | batch_norm_param { 1973 | use_global_stats: true 1974 | } 1975 | } 1976 | layer { 1977 | name: "scale_6_1_dw" 1978 | type: "Scale" 1979 | bottom: "conv_6_1_dw" 1980 | top: "conv_6_1_dw" 1981 | scale_param { 1982 | bias_term: true 1983 | } 1984 | } 1985 | layer { 1986 | name: "relu_6_1_dw" 1987 | type: "ReLU" 1988 | bottom: "conv_6_1_dw" 1989 | top: "conv_6_1_dw" 1990 | } 1991 | layer { 1992 | name: "conv_6_1_linear" 1993 | type: "Convolution" 1994 | bottom: "conv_6_1_dw" 1995 | top: "conv_6_1_linear" 1996 | param { 1997 | lr_mult: 1.0 1998 | decay_mult: 1.0 1999 | } 2000 | convolution_param { 2001 | num_output: 96 2002 | bias_term: false 2003 | pad: 0 2004 | kernel_size: 1 2005 | stride: 1 2006 | weight_filler { 2007 | type: "msra" 2008 | } 2009 | bias_filler { 2010 | type: "constant" 2011 | value: 0.0 2012 | } 2013 | } 2014 | } 2015 | layer { 2016 | name: "bn_6_1_linear" 2017 | type: "BatchNorm" 2018 | bottom: "conv_6_1_linear" 2019 | top: "conv_6_1_linear" 2020 | param { 2021 | lr_mult: 0.0 2022 | decay_mult: 0.0 2023 | } 2024 | param { 2025 | lr_mult: 0.0 2026 | decay_mult: 0.0 2027 | } 2028 | param { 2029 | lr_mult: 0.0 2030 | decay_mult: 0.0 2031 | } 2032 | batch_norm_param { 2033 | use_global_stats: true 2034 | } 2035 | } 2036 | layer { 2037 | name: "scale_6_1_linear" 2038 | type: "Scale" 2039 | bottom: "conv_6_1_linear" 2040 | top: "conv_6_1_linear" 2041 | scale_param { 2042 | bias_term: true 2043 | } 2044 | } 2045 | layer { 2046 | name: "conv_6_2_pw" 2047 | type: "Convolution" 2048 | bottom: "conv_6_1_linear" 2049 | top: "conv_6_2_pw" 2050 | param { 2051 | lr_mult: 1.0 2052 | decay_mult: 1.0 2053 | } 2054 | convolution_param { 2055 | num_output: 576 2056 | bias_term: false 2057 | pad: 0 2058 | kernel_size: 1 2059 | stride: 1 2060 | weight_filler { 2061 | type: "msra" 2062 | } 2063 | bias_filler { 2064 | type: "constant" 2065 | value: 0.0 2066 | } 2067 | } 2068 | } 2069 | layer { 2070 | name: "bn_6_2_pw" 2071 | type: "BatchNorm" 2072 | bottom: "conv_6_2_pw" 2073 | top: "conv_6_2_pw" 2074 | param { 2075 | lr_mult: 0.0 2076 | decay_mult: 0.0 2077 | } 2078 | param { 2079 | lr_mult: 0.0 2080 | decay_mult: 0.0 2081 | } 2082 | param { 2083 | lr_mult: 0.0 2084 | decay_mult: 0.0 2085 | } 2086 | batch_norm_param { 2087 | use_global_stats: true 2088 | } 2089 | } 2090 | layer { 2091 | name: "scale_6_2_pw" 2092 | type: "Scale" 2093 | bottom: "conv_6_2_pw" 2094 | top: "conv_6_2_pw" 2095 | scale_param { 2096 | bias_term: true 2097 | } 2098 | } 2099 | layer { 2100 | name: "relu_6_2_pw" 2101 | type: "ReLU" 2102 | bottom: "conv_6_2_pw" 2103 | top: "conv_6_2_pw" 2104 | } 2105 | layer { 2106 | name: "conv_6_2_dw" 2107 | type: "Convolution" 2108 | bottom: "conv_6_2_pw" 2109 | top: "conv_6_2_dw" 2110 | param { 2111 | lr_mult: 1.0 2112 | decay_mult: 1.0 2113 | } 2114 | convolution_param { 2115 | num_output: 576 2116 | bias_term: false 2117 | pad: 1 2118 | kernel_size: 3 2119 | group: 576 2120 | stride: 1 2121 | weight_filler { 2122 | type: "msra" 2123 | } 2124 | bias_filler { 2125 | type: "constant" 2126 | value: 0.0 2127 | } 2128 | engine: CAFFE 2129 | } 2130 | } 2131 | layer { 2132 | name: "bn_6_2_dw" 2133 | type: "BatchNorm" 2134 | bottom: "conv_6_2_dw" 2135 | top: "conv_6_2_dw" 2136 | param { 2137 | lr_mult: 0.0 2138 | decay_mult: 0.0 2139 | } 2140 | param { 2141 | lr_mult: 0.0 2142 | decay_mult: 0.0 2143 | } 2144 | param { 2145 | lr_mult: 0.0 2146 | decay_mult: 0.0 2147 | } 2148 | batch_norm_param { 2149 | use_global_stats: true 2150 | } 2151 | } 2152 | layer { 2153 | name: "scale_6_2_dw" 2154 | type: "Scale" 2155 | bottom: "conv_6_2_dw" 2156 | top: "conv_6_2_dw" 2157 | scale_param { 2158 | bias_term: true 2159 | } 2160 | } 2161 | layer { 2162 | name: "relu_6_2_dw" 2163 | type: "ReLU" 2164 | bottom: "conv_6_2_dw" 2165 | top: "conv_6_2_dw" 2166 | } 2167 | layer { 2168 | name: "conv_6_2_linear" 2169 | type: "Convolution" 2170 | bottom: "conv_6_2_dw" 2171 | top: "conv_6_2_linear" 2172 | param { 2173 | lr_mult: 1.0 2174 | decay_mult: 1.0 2175 | } 2176 | convolution_param { 2177 | num_output: 96 2178 | bias_term: false 2179 | pad: 0 2180 | kernel_size: 1 2181 | stride: 1 2182 | weight_filler { 2183 | type: "msra" 2184 | } 2185 | bias_filler { 2186 | type: "constant" 2187 | value: 0.0 2188 | } 2189 | } 2190 | } 2191 | layer { 2192 | name: "bn_6_2_linear" 2193 | type: "BatchNorm" 2194 | bottom: "conv_6_2_linear" 2195 | top: "conv_6_2_linear" 2196 | param { 2197 | lr_mult: 0.0 2198 | decay_mult: 0.0 2199 | } 2200 | param { 2201 | lr_mult: 0.0 2202 | decay_mult: 0.0 2203 | } 2204 | param { 2205 | lr_mult: 0.0 2206 | decay_mult: 0.0 2207 | } 2208 | batch_norm_param { 2209 | use_global_stats: true 2210 | } 2211 | } 2212 | layer { 2213 | name: "scale_6_2_linear" 2214 | type: "Scale" 2215 | bottom: "conv_6_2_linear" 2216 | top: "conv_6_2_linear" 2217 | scale_param { 2218 | bias_term: true 2219 | } 2220 | } 2221 | layer { 2222 | name: "add_6_2" 2223 | type: "Eltwise" 2224 | bottom: "conv_6_1_linear" 2225 | bottom: "conv_6_2_linear" 2226 | top: "add_6_2" 2227 | } 2228 | layer { 2229 | name: "conv_6_3_pw" 2230 | type: "Convolution" 2231 | bottom: "add_6_2" 2232 | top: "conv_6_3_pw" 2233 | param { 2234 | lr_mult: 1.0 2235 | decay_mult: 1.0 2236 | } 2237 | convolution_param { 2238 | num_output: 576 2239 | bias_term: false 2240 | pad: 0 2241 | kernel_size: 1 2242 | stride: 1 2243 | weight_filler { 2244 | type: "msra" 2245 | } 2246 | bias_filler { 2247 | type: "constant" 2248 | value: 0.0 2249 | } 2250 | } 2251 | } 2252 | layer { 2253 | name: "bn_6_3_pw" 2254 | type: "BatchNorm" 2255 | bottom: "conv_6_3_pw" 2256 | top: "conv_6_3_pw" 2257 | param { 2258 | lr_mult: 0.0 2259 | decay_mult: 0.0 2260 | } 2261 | param { 2262 | lr_mult: 0.0 2263 | decay_mult: 0.0 2264 | } 2265 | param { 2266 | lr_mult: 0.0 2267 | decay_mult: 0.0 2268 | } 2269 | batch_norm_param { 2270 | use_global_stats: true 2271 | } 2272 | } 2273 | layer { 2274 | name: "scale_6_3_pw" 2275 | type: "Scale" 2276 | bottom: "conv_6_3_pw" 2277 | top: "conv_6_3_pw" 2278 | scale_param { 2279 | bias_term: true 2280 | } 2281 | } 2282 | layer { 2283 | name: "relu_6_3_pw" 2284 | type: "ReLU" 2285 | bottom: "conv_6_3_pw" 2286 | top: "conv_6_3_pw" 2287 | } 2288 | layer { 2289 | name: "conv_6_3_dw" 2290 | type: "Convolution" 2291 | bottom: "conv_6_3_pw" 2292 | top: "conv_6_3_dw" 2293 | param { 2294 | lr_mult: 1.0 2295 | decay_mult: 1.0 2296 | } 2297 | convolution_param { 2298 | num_output: 576 2299 | bias_term: false 2300 | pad: 1 2301 | kernel_size: 3 2302 | group: 576 2303 | stride: 1 2304 | weight_filler { 2305 | type: "msra" 2306 | } 2307 | bias_filler { 2308 | type: "constant" 2309 | value: 0.0 2310 | } 2311 | engine: CAFFE 2312 | } 2313 | } 2314 | layer { 2315 | name: "bn_6_3_dw" 2316 | type: "BatchNorm" 2317 | bottom: "conv_6_3_dw" 2318 | top: "conv_6_3_dw" 2319 | param { 2320 | lr_mult: 0.0 2321 | decay_mult: 0.0 2322 | } 2323 | param { 2324 | lr_mult: 0.0 2325 | decay_mult: 0.0 2326 | } 2327 | param { 2328 | lr_mult: 0.0 2329 | decay_mult: 0.0 2330 | } 2331 | batch_norm_param { 2332 | use_global_stats: true 2333 | } 2334 | } 2335 | layer { 2336 | name: "scale_6_3_dw" 2337 | type: "Scale" 2338 | bottom: "conv_6_3_dw" 2339 | top: "conv_6_3_dw" 2340 | scale_param { 2341 | bias_term: true 2342 | } 2343 | } 2344 | layer { 2345 | name: "relu_6_3_dw" 2346 | type: "ReLU" 2347 | bottom: "conv_6_3_dw" 2348 | top: "conv_6_3_dw" 2349 | } 2350 | layer { 2351 | name: "conv_6_3_linear" 2352 | type: "Convolution" 2353 | bottom: "conv_6_3_dw" 2354 | top: "conv_6_3_linear" 2355 | param { 2356 | lr_mult: 1.0 2357 | decay_mult: 1.0 2358 | } 2359 | convolution_param { 2360 | num_output: 96 2361 | bias_term: false 2362 | pad: 0 2363 | kernel_size: 1 2364 | stride: 1 2365 | weight_filler { 2366 | type: "msra" 2367 | } 2368 | bias_filler { 2369 | type: "constant" 2370 | value: 0.0 2371 | } 2372 | } 2373 | } 2374 | layer { 2375 | name: "bn_6_3_linear" 2376 | type: "BatchNorm" 2377 | bottom: "conv_6_3_linear" 2378 | top: "conv_6_3_linear" 2379 | param { 2380 | lr_mult: 0.0 2381 | decay_mult: 0.0 2382 | } 2383 | param { 2384 | lr_mult: 0.0 2385 | decay_mult: 0.0 2386 | } 2387 | param { 2388 | lr_mult: 0.0 2389 | decay_mult: 0.0 2390 | } 2391 | batch_norm_param { 2392 | use_global_stats: true 2393 | } 2394 | } 2395 | layer { 2396 | name: "scale_6_3_linear" 2397 | type: "Scale" 2398 | bottom: "conv_6_3_linear" 2399 | top: "conv_6_3_linear" 2400 | scale_param { 2401 | bias_term: true 2402 | } 2403 | } 2404 | layer { 2405 | name: "add_6_3" 2406 | type: "Eltwise" 2407 | bottom: "add_6_2" 2408 | bottom: "conv_6_3_linear" 2409 | top: "add_6_3" 2410 | } 2411 | layer { 2412 | name: "conv_7_1_pw" 2413 | type: "Convolution" 2414 | bottom: "add_6_3" 2415 | top: "conv_7_1_pw" 2416 | param { 2417 | lr_mult: 1.0 2418 | decay_mult: 1.0 2419 | } 2420 | convolution_param { 2421 | num_output: 576 2422 | bias_term: false 2423 | pad: 0 2424 | kernel_size: 1 2425 | stride: 1 2426 | weight_filler { 2427 | type: "msra" 2428 | } 2429 | bias_filler { 2430 | type: "constant" 2431 | value: 0.0 2432 | } 2433 | } 2434 | } 2435 | layer { 2436 | name: "bn_7_1_pw" 2437 | type: "BatchNorm" 2438 | bottom: "conv_7_1_pw" 2439 | top: "conv_7_1_pw" 2440 | param { 2441 | lr_mult: 0.0 2442 | decay_mult: 0.0 2443 | } 2444 | param { 2445 | lr_mult: 0.0 2446 | decay_mult: 0.0 2447 | } 2448 | param { 2449 | lr_mult: 0.0 2450 | decay_mult: 0.0 2451 | } 2452 | batch_norm_param { 2453 | use_global_stats: true 2454 | } 2455 | } 2456 | layer { 2457 | name: "scale_7_1_pw" 2458 | type: "Scale" 2459 | bottom: "conv_7_1_pw" 2460 | top: "conv_7_1_pw" 2461 | scale_param { 2462 | bias_term: true 2463 | } 2464 | } 2465 | layer { 2466 | name: "relu_7_1_pw" 2467 | type: "ReLU" 2468 | bottom: "conv_7_1_pw" 2469 | top: "conv_7_1_pw" 2470 | } 2471 | layer { 2472 | name: "conv_7_1_dw" 2473 | type: "Convolution" 2474 | bottom: "conv_7_1_pw" 2475 | top: "conv_7_1_dw" 2476 | param { 2477 | lr_mult: 1.0 2478 | decay_mult: 1.0 2479 | } 2480 | convolution_param { 2481 | num_output: 576 2482 | bias_term: false 2483 | pad: 1 2484 | kernel_size: 3 2485 | group: 576 2486 | stride: 2 2487 | weight_filler { 2488 | type: "msra" 2489 | } 2490 | bias_filler { 2491 | type: "constant" 2492 | value: 0.0 2493 | } 2494 | engine: CAFFE 2495 | } 2496 | } 2497 | layer { 2498 | name: "bn_7_1_dw" 2499 | type: "BatchNorm" 2500 | bottom: "conv_7_1_dw" 2501 | top: "conv_7_1_dw" 2502 | param { 2503 | lr_mult: 0.0 2504 | decay_mult: 0.0 2505 | } 2506 | param { 2507 | lr_mult: 0.0 2508 | decay_mult: 0.0 2509 | } 2510 | param { 2511 | lr_mult: 0.0 2512 | decay_mult: 0.0 2513 | } 2514 | batch_norm_param { 2515 | use_global_stats: true 2516 | } 2517 | } 2518 | layer { 2519 | name: "scale_7_1_dw" 2520 | type: "Scale" 2521 | bottom: "conv_7_1_dw" 2522 | top: "conv_7_1_dw" 2523 | scale_param { 2524 | bias_term: true 2525 | } 2526 | } 2527 | layer { 2528 | name: "relu_7_1_dw" 2529 | type: "ReLU" 2530 | bottom: "conv_7_1_dw" 2531 | top: "conv_7_1_dw" 2532 | } 2533 | layer { 2534 | name: "conv_7_1_linear" 2535 | type: "Convolution" 2536 | bottom: "conv_7_1_dw" 2537 | top: "conv_7_1_linear" 2538 | param { 2539 | lr_mult: 1.0 2540 | decay_mult: 1.0 2541 | } 2542 | convolution_param { 2543 | num_output: 160 2544 | bias_term: false 2545 | pad: 0 2546 | kernel_size: 1 2547 | stride: 1 2548 | weight_filler { 2549 | type: "msra" 2550 | } 2551 | bias_filler { 2552 | type: "constant" 2553 | value: 0.0 2554 | } 2555 | } 2556 | } 2557 | layer { 2558 | name: "bn_7_1_linear" 2559 | type: "BatchNorm" 2560 | bottom: "conv_7_1_linear" 2561 | top: "conv_7_1_linear" 2562 | param { 2563 | lr_mult: 0.0 2564 | decay_mult: 0.0 2565 | } 2566 | param { 2567 | lr_mult: 0.0 2568 | decay_mult: 0.0 2569 | } 2570 | param { 2571 | lr_mult: 0.0 2572 | decay_mult: 0.0 2573 | } 2574 | batch_norm_param { 2575 | use_global_stats: true 2576 | } 2577 | } 2578 | layer { 2579 | name: "scale_7_1_linear" 2580 | type: "Scale" 2581 | bottom: "conv_7_1_linear" 2582 | top: "conv_7_1_linear" 2583 | scale_param { 2584 | bias_term: true 2585 | } 2586 | } 2587 | layer { 2588 | name: "conv_7_2_pw" 2589 | type: "Convolution" 2590 | bottom: "conv_7_1_linear" 2591 | top: "conv_7_2_pw" 2592 | param { 2593 | lr_mult: 1.0 2594 | decay_mult: 1.0 2595 | } 2596 | convolution_param { 2597 | num_output: 960 2598 | bias_term: false 2599 | pad: 0 2600 | kernel_size: 1 2601 | stride: 1 2602 | weight_filler { 2603 | type: "msra" 2604 | } 2605 | bias_filler { 2606 | type: "constant" 2607 | value: 0.0 2608 | } 2609 | } 2610 | } 2611 | layer { 2612 | name: "bn_7_2_pw" 2613 | type: "BatchNorm" 2614 | bottom: "conv_7_2_pw" 2615 | top: "conv_7_2_pw" 2616 | param { 2617 | lr_mult: 0.0 2618 | decay_mult: 0.0 2619 | } 2620 | param { 2621 | lr_mult: 0.0 2622 | decay_mult: 0.0 2623 | } 2624 | param { 2625 | lr_mult: 0.0 2626 | decay_mult: 0.0 2627 | } 2628 | batch_norm_param { 2629 | use_global_stats: true 2630 | } 2631 | } 2632 | layer { 2633 | name: "scale_7_2_pw" 2634 | type: "Scale" 2635 | bottom: "conv_7_2_pw" 2636 | top: "conv_7_2_pw" 2637 | scale_param { 2638 | bias_term: true 2639 | } 2640 | } 2641 | layer { 2642 | name: "relu_7_2_pw" 2643 | type: "ReLU" 2644 | bottom: "conv_7_2_pw" 2645 | top: "conv_7_2_pw" 2646 | } 2647 | layer { 2648 | name: "conv_7_2_dw" 2649 | type: "Convolution" 2650 | bottom: "conv_7_2_pw" 2651 | top: "conv_7_2_dw" 2652 | param { 2653 | lr_mult: 1.0 2654 | decay_mult: 1.0 2655 | } 2656 | convolution_param { 2657 | num_output: 960 2658 | bias_term: false 2659 | pad: 1 2660 | kernel_size: 3 2661 | group: 960 2662 | stride: 1 2663 | weight_filler { 2664 | type: "msra" 2665 | } 2666 | bias_filler { 2667 | type: "constant" 2668 | value: 0.0 2669 | } 2670 | engine: CAFFE 2671 | } 2672 | } 2673 | layer { 2674 | name: "bn_7_2_dw" 2675 | type: "BatchNorm" 2676 | bottom: "conv_7_2_dw" 2677 | top: "conv_7_2_dw" 2678 | param { 2679 | lr_mult: 0.0 2680 | decay_mult: 0.0 2681 | } 2682 | param { 2683 | lr_mult: 0.0 2684 | decay_mult: 0.0 2685 | } 2686 | param { 2687 | lr_mult: 0.0 2688 | decay_mult: 0.0 2689 | } 2690 | batch_norm_param { 2691 | use_global_stats: true 2692 | } 2693 | } 2694 | layer { 2695 | name: "scale_7_2_dw" 2696 | type: "Scale" 2697 | bottom: "conv_7_2_dw" 2698 | top: "conv_7_2_dw" 2699 | scale_param { 2700 | bias_term: true 2701 | } 2702 | } 2703 | layer { 2704 | name: "relu_7_2_dw" 2705 | type: "ReLU" 2706 | bottom: "conv_7_2_dw" 2707 | top: "conv_7_2_dw" 2708 | } 2709 | layer { 2710 | name: "conv_7_2_linear" 2711 | type: "Convolution" 2712 | bottom: "conv_7_2_dw" 2713 | top: "conv_7_2_linear" 2714 | param { 2715 | lr_mult: 1.0 2716 | decay_mult: 1.0 2717 | } 2718 | convolution_param { 2719 | num_output: 160 2720 | bias_term: false 2721 | pad: 0 2722 | kernel_size: 1 2723 | stride: 1 2724 | weight_filler { 2725 | type: "msra" 2726 | } 2727 | bias_filler { 2728 | type: "constant" 2729 | value: 0.0 2730 | } 2731 | } 2732 | } 2733 | layer { 2734 | name: "bn_7_2_linear" 2735 | type: "BatchNorm" 2736 | bottom: "conv_7_2_linear" 2737 | top: "conv_7_2_linear" 2738 | param { 2739 | lr_mult: 0.0 2740 | decay_mult: 0.0 2741 | } 2742 | param { 2743 | lr_mult: 0.0 2744 | decay_mult: 0.0 2745 | } 2746 | param { 2747 | lr_mult: 0.0 2748 | decay_mult: 0.0 2749 | } 2750 | batch_norm_param { 2751 | use_global_stats: true 2752 | } 2753 | } 2754 | layer { 2755 | name: "scale_7_2_linear" 2756 | type: "Scale" 2757 | bottom: "conv_7_2_linear" 2758 | top: "conv_7_2_linear" 2759 | scale_param { 2760 | bias_term: true 2761 | } 2762 | } 2763 | layer { 2764 | name: "add_7_2" 2765 | type: "Eltwise" 2766 | bottom: "conv_7_1_linear" 2767 | bottom: "conv_7_2_linear" 2768 | top: "add_7_2" 2769 | } 2770 | layer { 2771 | name: "conv_7_3_pw" 2772 | type: "Convolution" 2773 | bottom: "add_7_2" 2774 | top: "conv_7_3_pw" 2775 | param { 2776 | lr_mult: 1.0 2777 | decay_mult: 1.0 2778 | } 2779 | convolution_param { 2780 | num_output: 960 2781 | bias_term: false 2782 | pad: 0 2783 | kernel_size: 1 2784 | stride: 1 2785 | weight_filler { 2786 | type: "msra" 2787 | } 2788 | bias_filler { 2789 | type: "constant" 2790 | value: 0.0 2791 | } 2792 | } 2793 | } 2794 | layer { 2795 | name: "bn_7_3_pw" 2796 | type: "BatchNorm" 2797 | bottom: "conv_7_3_pw" 2798 | top: "conv_7_3_pw" 2799 | param { 2800 | lr_mult: 0.0 2801 | decay_mult: 0.0 2802 | } 2803 | param { 2804 | lr_mult: 0.0 2805 | decay_mult: 0.0 2806 | } 2807 | param { 2808 | lr_mult: 0.0 2809 | decay_mult: 0.0 2810 | } 2811 | batch_norm_param { 2812 | use_global_stats: true 2813 | } 2814 | } 2815 | layer { 2816 | name: "scale_7_3_pw" 2817 | type: "Scale" 2818 | bottom: "conv_7_3_pw" 2819 | top: "conv_7_3_pw" 2820 | scale_param { 2821 | bias_term: true 2822 | } 2823 | } 2824 | layer { 2825 | name: "relu_7_3_pw" 2826 | type: "ReLU" 2827 | bottom: "conv_7_3_pw" 2828 | top: "conv_7_3_pw" 2829 | } 2830 | layer { 2831 | name: "conv_7_3_dw" 2832 | type: "Convolution" 2833 | bottom: "conv_7_3_pw" 2834 | top: "conv_7_3_dw" 2835 | param { 2836 | lr_mult: 1.0 2837 | decay_mult: 1.0 2838 | } 2839 | convolution_param { 2840 | num_output: 960 2841 | bias_term: false 2842 | pad: 1 2843 | kernel_size: 3 2844 | group: 960 2845 | stride: 1 2846 | weight_filler { 2847 | type: "msra" 2848 | } 2849 | bias_filler { 2850 | type: "constant" 2851 | value: 0.0 2852 | } 2853 | engine: CAFFE 2854 | } 2855 | } 2856 | layer { 2857 | name: "bn_7_3_dw" 2858 | type: "BatchNorm" 2859 | bottom: "conv_7_3_dw" 2860 | top: "conv_7_3_dw" 2861 | param { 2862 | lr_mult: 0.0 2863 | decay_mult: 0.0 2864 | } 2865 | param { 2866 | lr_mult: 0.0 2867 | decay_mult: 0.0 2868 | } 2869 | param { 2870 | lr_mult: 0.0 2871 | decay_mult: 0.0 2872 | } 2873 | batch_norm_param { 2874 | use_global_stats: true 2875 | } 2876 | } 2877 | layer { 2878 | name: "scale_7_3_dw" 2879 | type: "Scale" 2880 | bottom: "conv_7_3_dw" 2881 | top: "conv_7_3_dw" 2882 | scale_param { 2883 | bias_term: true 2884 | } 2885 | } 2886 | layer { 2887 | name: "relu_7_3_dw" 2888 | type: "ReLU" 2889 | bottom: "conv_7_3_dw" 2890 | top: "conv_7_3_dw" 2891 | } 2892 | layer { 2893 | name: "conv_7_3_linear" 2894 | type: "Convolution" 2895 | bottom: "conv_7_3_dw" 2896 | top: "conv_7_3_linear" 2897 | param { 2898 | lr_mult: 1.0 2899 | decay_mult: 1.0 2900 | } 2901 | convolution_param { 2902 | num_output: 160 2903 | bias_term: false 2904 | pad: 0 2905 | kernel_size: 1 2906 | stride: 1 2907 | weight_filler { 2908 | type: "msra" 2909 | } 2910 | bias_filler { 2911 | type: "constant" 2912 | value: 0.0 2913 | } 2914 | } 2915 | } 2916 | layer { 2917 | name: "bn_7_3_linear" 2918 | type: "BatchNorm" 2919 | bottom: "conv_7_3_linear" 2920 | top: "conv_7_3_linear" 2921 | param { 2922 | lr_mult: 0.0 2923 | decay_mult: 0.0 2924 | } 2925 | param { 2926 | lr_mult: 0.0 2927 | decay_mult: 0.0 2928 | } 2929 | param { 2930 | lr_mult: 0.0 2931 | decay_mult: 0.0 2932 | } 2933 | batch_norm_param { 2934 | use_global_stats: true 2935 | } 2936 | } 2937 | layer { 2938 | name: "scale_7_3_linear" 2939 | type: "Scale" 2940 | bottom: "conv_7_3_linear" 2941 | top: "conv_7_3_linear" 2942 | scale_param { 2943 | bias_term: true 2944 | } 2945 | } 2946 | layer { 2947 | name: "add_7_3" 2948 | type: "Eltwise" 2949 | bottom: "add_7_2" 2950 | bottom: "conv_7_3_linear" 2951 | top: "add_7_3" 2952 | } 2953 | layer { 2954 | name: "conv_8_1_pw" 2955 | type: "Convolution" 2956 | bottom: "add_7_3" 2957 | top: "conv_8_1_pw" 2958 | param { 2959 | lr_mult: 1.0 2960 | decay_mult: 1.0 2961 | } 2962 | convolution_param { 2963 | num_output: 960 2964 | bias_term: false 2965 | pad: 0 2966 | kernel_size: 1 2967 | stride: 1 2968 | weight_filler { 2969 | type: "msra" 2970 | } 2971 | bias_filler { 2972 | type: "constant" 2973 | value: 0.0 2974 | } 2975 | } 2976 | } 2977 | layer { 2978 | name: "bn_8_1_pw" 2979 | type: "BatchNorm" 2980 | bottom: "conv_8_1_pw" 2981 | top: "conv_8_1_pw" 2982 | param { 2983 | lr_mult: 0.0 2984 | decay_mult: 0.0 2985 | } 2986 | param { 2987 | lr_mult: 0.0 2988 | decay_mult: 0.0 2989 | } 2990 | param { 2991 | lr_mult: 0.0 2992 | decay_mult: 0.0 2993 | } 2994 | batch_norm_param { 2995 | use_global_stats: true 2996 | } 2997 | } 2998 | layer { 2999 | name: "scale_8_1_pw" 3000 | type: "Scale" 3001 | bottom: "conv_8_1_pw" 3002 | top: "conv_8_1_pw" 3003 | scale_param { 3004 | bias_term: true 3005 | } 3006 | } 3007 | layer { 3008 | name: "relu_8_1_pw" 3009 | type: "ReLU" 3010 | bottom: "conv_8_1_pw" 3011 | top: "conv_8_1_pw" 3012 | } 3013 | layer { 3014 | name: "conv_8_1_dw" 3015 | type: "Convolution" 3016 | bottom: "conv_8_1_pw" 3017 | top: "conv_8_1_dw" 3018 | param { 3019 | lr_mult: 1.0 3020 | decay_mult: 1.0 3021 | } 3022 | convolution_param { 3023 | num_output: 960 3024 | bias_term: false 3025 | pad: 1 3026 | kernel_size: 3 3027 | group: 960 3028 | stride: 1 3029 | weight_filler { 3030 | type: "msra" 3031 | } 3032 | bias_filler { 3033 | type: "constant" 3034 | value: 0.0 3035 | } 3036 | engine: CAFFE 3037 | } 3038 | } 3039 | layer { 3040 | name: "bn_8_1_dw" 3041 | type: "BatchNorm" 3042 | bottom: "conv_8_1_dw" 3043 | top: "conv_8_1_dw" 3044 | param { 3045 | lr_mult: 0.0 3046 | decay_mult: 0.0 3047 | } 3048 | param { 3049 | lr_mult: 0.0 3050 | decay_mult: 0.0 3051 | } 3052 | param { 3053 | lr_mult: 0.0 3054 | decay_mult: 0.0 3055 | } 3056 | batch_norm_param { 3057 | use_global_stats: true 3058 | } 3059 | } 3060 | layer { 3061 | name: "scale_8_1_dw" 3062 | type: "Scale" 3063 | bottom: "conv_8_1_dw" 3064 | top: "conv_8_1_dw" 3065 | scale_param { 3066 | bias_term: true 3067 | } 3068 | } 3069 | layer { 3070 | name: "relu_8_1_dw" 3071 | type: "ReLU" 3072 | bottom: "conv_8_1_dw" 3073 | top: "conv_8_1_dw" 3074 | } 3075 | layer { 3076 | name: "conv_8_1_linear" 3077 | type: "Convolution" 3078 | bottom: "conv_8_1_dw" 3079 | top: "conv_8_1_linear" 3080 | param { 3081 | lr_mult: 1.0 3082 | decay_mult: 1.0 3083 | } 3084 | convolution_param { 3085 | num_output: 320 3086 | bias_term: false 3087 | pad: 0 3088 | kernel_size: 1 3089 | stride: 1 3090 | weight_filler { 3091 | type: "msra" 3092 | } 3093 | bias_filler { 3094 | type: "constant" 3095 | value: 0.0 3096 | } 3097 | } 3098 | } 3099 | layer { 3100 | name: "bn_8_1_linear" 3101 | type: "BatchNorm" 3102 | bottom: "conv_8_1_linear" 3103 | top: "conv_8_1_linear" 3104 | param { 3105 | lr_mult: 0.0 3106 | decay_mult: 0.0 3107 | } 3108 | param { 3109 | lr_mult: 0.0 3110 | decay_mult: 0.0 3111 | } 3112 | param { 3113 | lr_mult: 0.0 3114 | decay_mult: 0.0 3115 | } 3116 | batch_norm_param { 3117 | use_global_stats: true 3118 | } 3119 | } 3120 | layer { 3121 | name: "scale_8_1_linear" 3122 | type: "Scale" 3123 | bottom: "conv_8_1_linear" 3124 | top: "conv_8_1_linear" 3125 | scale_param { 3126 | bias_term: true 3127 | } 3128 | } 3129 | layer { 3130 | name: "conv9" 3131 | type: "Convolution" 3132 | bottom: "conv_8_1_linear" 3133 | top: "conv9" 3134 | param { 3135 | lr_mult: 1.0 3136 | decay_mult: 1.0 3137 | } 3138 | convolution_param { 3139 | num_output: 1280 3140 | pad: 0 3141 | kernel_size: 1 3142 | stride: 1 3143 | weight_filler { 3144 | type: "msra" 3145 | } 3146 | bias_filler { 3147 | type: "constant" 3148 | value: 0.0 3149 | } 3150 | } 3151 | } 3152 | layer { 3153 | name: "pool9" 3154 | type: "Pooling" 3155 | bottom: "conv9" 3156 | top: "pool9" 3157 | pooling_param { 3158 | pool: AVE 3159 | stride: 1 3160 | global_pooling: true 3161 | } 3162 | } 3163 | layer { 3164 | name: "dropout" 3165 | type: "Dropout" 3166 | bottom: "pool9" 3167 | top: "pool9" 3168 | dropout_param { 3169 | dropout_ratio : 0.2 3170 | } 3171 | } 3172 | layer { 3173 | name: "conv10" 3174 | type: "Convolution" 3175 | bottom: "pool9" 3176 | top: "conv10" 3177 | param { 3178 | lr_mult: 1.0 3179 | decay_mult: 1.0 3180 | } 3181 | convolution_param { 3182 | num_output: 1000 3183 | pad: 0 3184 | kernel_size: 1 3185 | stride: 1 3186 | weight_filler { 3187 | type: "msra" 3188 | } 3189 | bias_filler { 3190 | type: "constant" 3191 | value: 0.0 3192 | } 3193 | } 3194 | } 3195 | layer { 3196 | name: "loss" 3197 | type: "Softmax" 3198 | bottom: "conv10" 3199 | top: "loss" 3200 | } 3201 | 3202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MobileNet-v2-caffe 2 | MobileNet-v2 experimental network description for caffe. 3 | 4 | ### Update 2018-08-18 5 | 1. Add other Mobilenet-v2 variants 6 | 2. Suggestion: cudnn v7 has supported depthwise 3x3 when `group == input_channel`, you may speed up your training process by using the latest cudnn v7. 7 | 8 | ### Update 9 | 1. Google has released a series of mobilenet-v2 models. So reference pretrained model from tensorflow/model repository. 10 | 2. MobileNet-V2 has accepted by CVPR 2018. The latest ilsvrc12 top1 accuracy is **72.0%**. 11 | 3. According to google official model, mobilenet-v2 downsampled feature map early. 12 | 4. shortcuts are placed except the first inverted residual bottleneck sequence. 13 | 14 | ### Note 15 | There are some unclear details about the network architechture. 16 | 1. ~~bottleneck sequence 5's input size doesn't match its prior sequence's stride.~~ 17 | 2. ~~how to deal with shortcuts or residual when the input channel and ouptut chanel are not the same. (Currently, we add shortcuts for all bottlenecks in the bottleneck sequence except the first one.)~~ 18 | 3. The paper says there are 19 bottlenecks, while there only 17 bottlene in Table 2. 19 | 20 | ### Suggestion 21 | 1. Strongly recommend that reimplement the paper use mxnet, pytorch, tensorflow, other than caffe, since there are optimized depthwise conv layer. 22 | 2. Don't forget set the weight decay 4e-5. 23 | 3. inception data augmentation helps. 24 | -------------------------------------------------------------------------------- /mobilenetv2-0.35/test.prototxt: -------------------------------------------------------------------------------- 1 | layer { 2 | name: "data" 3 | type: "MemoryData" 4 | top: "data" 5 | top: "label" 6 | transform_param { 7 | crop_size: 224 8 | } 9 | memory_data_param { 10 | batch_size: 1 11 | channels: 3 12 | height: 224 13 | width: 224 14 | } 15 | } 16 | layer { 17 | name: "conv_1_1" 18 | type: "Convolution" 19 | bottom: "data" 20 | top: "conv_1_1" 21 | param { 22 | lr_mult: 1.0 23 | decay_mult: 1.0 24 | } 25 | convolution_param { 26 | num_output: 16 27 | bias_term: true 28 | pad: 1 29 | kernel_size: 3 30 | stride: 2 31 | weight_filler { 32 | type: "msra" 33 | } 34 | bias_filler { 35 | type: "constant" 36 | value: 0.0 37 | } 38 | } 39 | } 40 | layer { 41 | name: "bn_1_1" 42 | type: "BatchNorm" 43 | bottom: "conv_1_1" 44 | top: "conv_1_1" 45 | param { 46 | lr_mult: 0.0 47 | decay_mult: 0.0 48 | } 49 | param { 50 | lr_mult: 0.0 51 | decay_mult: 0.0 52 | } 53 | param { 54 | lr_mult: 0.0 55 | decay_mult: 0.0 56 | } 57 | batch_norm_param { 58 | use_global_stats: true 59 | } 60 | } 61 | layer { 62 | name: "scale_1_1" 63 | type: "Scale" 64 | bottom: "conv_1_1" 65 | top: "conv_1_1" 66 | scale_param { 67 | bias_term: true 68 | } 69 | } 70 | layer { 71 | name: "relu_1_1" 72 | type: "ReLU" 73 | bottom: "conv_1_1" 74 | top: "conv_1_1" 75 | } 76 | layer { 77 | name: "conv_2_1_pw" 78 | type: "Convolution" 79 | bottom: "conv_1_1" 80 | top: "conv_2_1_pw" 81 | param { 82 | lr_mult: 1.0 83 | decay_mult: 1.0 84 | } 85 | convolution_param { 86 | num_output: 16 87 | bias_term: false 88 | pad: 0 89 | kernel_size: 1 90 | stride: 1 91 | weight_filler { 92 | type: "msra" 93 | } 94 | bias_filler { 95 | type: "constant" 96 | value: 0.0 97 | } 98 | } 99 | } 100 | layer { 101 | name: "bn_2_1_pw" 102 | type: "BatchNorm" 103 | bottom: "conv_2_1_pw" 104 | top: "conv_2_1_pw" 105 | param { 106 | lr_mult: 0.0 107 | decay_mult: 0.0 108 | } 109 | param { 110 | lr_mult: 0.0 111 | decay_mult: 0.0 112 | } 113 | param { 114 | lr_mult: 0.0 115 | decay_mult: 0.0 116 | } 117 | batch_norm_param { 118 | use_global_stats: true 119 | } 120 | } 121 | layer { 122 | name: "scale_2_1_pw" 123 | type: "Scale" 124 | bottom: "conv_2_1_pw" 125 | top: "conv_2_1_pw" 126 | scale_param { 127 | bias_term: true 128 | } 129 | } 130 | layer { 131 | name: "relu_2_1_pw" 132 | type: "ReLU" 133 | bottom: "conv_2_1_pw" 134 | top: "conv_2_1_pw" 135 | } 136 | layer { 137 | name: "conv_2_1_dw" 138 | type: "Convolution" 139 | bottom: "conv_2_1_pw" 140 | top: "conv_2_1_dw" 141 | param { 142 | lr_mult: 1.0 143 | decay_mult: 1.0 144 | } 145 | convolution_param { 146 | num_output: 16 147 | bias_term: false 148 | pad: 1 149 | kernel_size: 3 150 | group: 16 151 | stride: 1 152 | weight_filler { 153 | type: "msra" 154 | } 155 | bias_filler { 156 | type: "constant" 157 | value: 0.0 158 | } 159 | engine: CAFFE 160 | } 161 | } 162 | layer { 163 | name: "bn_2_1_dw" 164 | type: "BatchNorm" 165 | bottom: "conv_2_1_dw" 166 | top: "conv_2_1_dw" 167 | param { 168 | lr_mult: 0.0 169 | decay_mult: 0.0 170 | } 171 | param { 172 | lr_mult: 0.0 173 | decay_mult: 0.0 174 | } 175 | param { 176 | lr_mult: 0.0 177 | decay_mult: 0.0 178 | } 179 | batch_norm_param { 180 | use_global_stats: true 181 | } 182 | } 183 | layer { 184 | name: "scale_2_1_dw" 185 | type: "Scale" 186 | bottom: "conv_2_1_dw" 187 | top: "conv_2_1_dw" 188 | scale_param { 189 | bias_term: true 190 | } 191 | } 192 | layer { 193 | name: "relu_2_1_dw" 194 | type: "ReLU" 195 | bottom: "conv_2_1_dw" 196 | top: "conv_2_1_dw" 197 | } 198 | layer { 199 | name: "conv_2_1_linear" 200 | type: "Convolution" 201 | bottom: "conv_2_1_dw" 202 | top: "conv_2_1_linear" 203 | param { 204 | lr_mult: 1.0 205 | decay_mult: 1.0 206 | } 207 | convolution_param { 208 | num_output: 8 209 | bias_term: false 210 | pad: 0 211 | kernel_size: 1 212 | stride: 1 213 | weight_filler { 214 | type: "msra" 215 | } 216 | bias_filler { 217 | type: "constant" 218 | value: 0.0 219 | } 220 | } 221 | } 222 | layer { 223 | name: "bn_2_1_linear" 224 | type: "BatchNorm" 225 | bottom: "conv_2_1_linear" 226 | top: "conv_2_1_linear" 227 | param { 228 | lr_mult: 0.0 229 | decay_mult: 0.0 230 | } 231 | param { 232 | lr_mult: 0.0 233 | decay_mult: 0.0 234 | } 235 | param { 236 | lr_mult: 0.0 237 | decay_mult: 0.0 238 | } 239 | batch_norm_param { 240 | use_global_stats: true 241 | } 242 | } 243 | layer { 244 | name: "scale_2_1_linear" 245 | type: "Scale" 246 | bottom: "conv_2_1_linear" 247 | top: "conv_2_1_linear" 248 | scale_param { 249 | bias_term: true 250 | } 251 | } 252 | layer { 253 | name: "conv_3_1_pw" 254 | type: "Convolution" 255 | bottom: "conv_2_1_linear" 256 | top: "conv_3_1_pw" 257 | param { 258 | lr_mult: 1.0 259 | decay_mult: 1.0 260 | } 261 | convolution_param { 262 | num_output: 48 263 | bias_term: false 264 | pad: 0 265 | kernel_size: 1 266 | stride: 1 267 | weight_filler { 268 | type: "msra" 269 | } 270 | bias_filler { 271 | type: "constant" 272 | value: 0.0 273 | } 274 | } 275 | } 276 | layer { 277 | name: "bn_3_1_pw" 278 | type: "BatchNorm" 279 | bottom: "conv_3_1_pw" 280 | top: "conv_3_1_pw" 281 | param { 282 | lr_mult: 0.0 283 | decay_mult: 0.0 284 | } 285 | param { 286 | lr_mult: 0.0 287 | decay_mult: 0.0 288 | } 289 | param { 290 | lr_mult: 0.0 291 | decay_mult: 0.0 292 | } 293 | batch_norm_param { 294 | use_global_stats: true 295 | } 296 | } 297 | layer { 298 | name: "scale_3_1_pw" 299 | type: "Scale" 300 | bottom: "conv_3_1_pw" 301 | top: "conv_3_1_pw" 302 | scale_param { 303 | bias_term: true 304 | } 305 | } 306 | layer { 307 | name: "relu_3_1_pw" 308 | type: "ReLU" 309 | bottom: "conv_3_1_pw" 310 | top: "conv_3_1_pw" 311 | } 312 | layer { 313 | name: "conv_3_1_dw" 314 | type: "Convolution" 315 | bottom: "conv_3_1_pw" 316 | top: "conv_3_1_dw" 317 | param { 318 | lr_mult: 1.0 319 | decay_mult: 1.0 320 | } 321 | convolution_param { 322 | num_output: 48 323 | bias_term: false 324 | pad: 1 325 | kernel_size: 3 326 | group: 48 327 | stride: 2 328 | weight_filler { 329 | type: "msra" 330 | } 331 | bias_filler { 332 | type: "constant" 333 | value: 0.0 334 | } 335 | engine: CAFFE 336 | } 337 | } 338 | layer { 339 | name: "bn_3_1_dw" 340 | type: "BatchNorm" 341 | bottom: "conv_3_1_dw" 342 | top: "conv_3_1_dw" 343 | param { 344 | lr_mult: 0.0 345 | decay_mult: 0.0 346 | } 347 | param { 348 | lr_mult: 0.0 349 | decay_mult: 0.0 350 | } 351 | param { 352 | lr_mult: 0.0 353 | decay_mult: 0.0 354 | } 355 | batch_norm_param { 356 | use_global_stats: true 357 | } 358 | } 359 | layer { 360 | name: "scale_3_1_dw" 361 | type: "Scale" 362 | bottom: "conv_3_1_dw" 363 | top: "conv_3_1_dw" 364 | scale_param { 365 | bias_term: true 366 | } 367 | } 368 | layer { 369 | name: "relu_3_1_dw" 370 | type: "ReLU" 371 | bottom: "conv_3_1_dw" 372 | top: "conv_3_1_dw" 373 | } 374 | layer { 375 | name: "conv_3_1_linear" 376 | type: "Convolution" 377 | bottom: "conv_3_1_dw" 378 | top: "conv_3_1_linear" 379 | param { 380 | lr_mult: 1.0 381 | decay_mult: 1.0 382 | } 383 | convolution_param { 384 | num_output: 8 385 | bias_term: false 386 | pad: 0 387 | kernel_size: 1 388 | stride: 1 389 | weight_filler { 390 | type: "msra" 391 | } 392 | bias_filler { 393 | type: "constant" 394 | value: 0.0 395 | } 396 | } 397 | } 398 | layer { 399 | name: "bn_3_1_linear" 400 | type: "BatchNorm" 401 | bottom: "conv_3_1_linear" 402 | top: "conv_3_1_linear" 403 | param { 404 | lr_mult: 0.0 405 | decay_mult: 0.0 406 | } 407 | param { 408 | lr_mult: 0.0 409 | decay_mult: 0.0 410 | } 411 | param { 412 | lr_mult: 0.0 413 | decay_mult: 0.0 414 | } 415 | batch_norm_param { 416 | use_global_stats: true 417 | } 418 | } 419 | layer { 420 | name: "scale_3_1_linear" 421 | type: "Scale" 422 | bottom: "conv_3_1_linear" 423 | top: "conv_3_1_linear" 424 | scale_param { 425 | bias_term: true 426 | } 427 | } 428 | layer { 429 | name: "conv_3_2_pw" 430 | type: "Convolution" 431 | bottom: "conv_3_1_linear" 432 | top: "conv_3_2_pw" 433 | param { 434 | lr_mult: 1.0 435 | decay_mult: 1.0 436 | } 437 | convolution_param { 438 | num_output: 48 439 | bias_term: false 440 | pad: 0 441 | kernel_size: 1 442 | stride: 1 443 | weight_filler { 444 | type: "msra" 445 | } 446 | bias_filler { 447 | type: "constant" 448 | value: 0.0 449 | } 450 | } 451 | } 452 | layer { 453 | name: "bn_3_2_pw" 454 | type: "BatchNorm" 455 | bottom: "conv_3_2_pw" 456 | top: "conv_3_2_pw" 457 | param { 458 | lr_mult: 0.0 459 | decay_mult: 0.0 460 | } 461 | param { 462 | lr_mult: 0.0 463 | decay_mult: 0.0 464 | } 465 | param { 466 | lr_mult: 0.0 467 | decay_mult: 0.0 468 | } 469 | batch_norm_param { 470 | use_global_stats: true 471 | } 472 | } 473 | layer { 474 | name: "scale_3_2_pw" 475 | type: "Scale" 476 | bottom: "conv_3_2_pw" 477 | top: "conv_3_2_pw" 478 | scale_param { 479 | bias_term: true 480 | } 481 | } 482 | layer { 483 | name: "relu_3_2_pw" 484 | type: "ReLU" 485 | bottom: "conv_3_2_pw" 486 | top: "conv_3_2_pw" 487 | } 488 | layer { 489 | name: "conv_3_2_dw" 490 | type: "Convolution" 491 | bottom: "conv_3_2_pw" 492 | top: "conv_3_2_dw" 493 | param { 494 | lr_mult: 1.0 495 | decay_mult: 1.0 496 | } 497 | convolution_param { 498 | num_output: 48 499 | bias_term: false 500 | pad: 1 501 | kernel_size: 3 502 | group: 48 503 | stride: 1 504 | weight_filler { 505 | type: "msra" 506 | } 507 | bias_filler { 508 | type: "constant" 509 | value: 0.0 510 | } 511 | engine: CAFFE 512 | } 513 | } 514 | layer { 515 | name: "bn_3_2_dw" 516 | type: "BatchNorm" 517 | bottom: "conv_3_2_dw" 518 | top: "conv_3_2_dw" 519 | param { 520 | lr_mult: 0.0 521 | decay_mult: 0.0 522 | } 523 | param { 524 | lr_mult: 0.0 525 | decay_mult: 0.0 526 | } 527 | param { 528 | lr_mult: 0.0 529 | decay_mult: 0.0 530 | } 531 | batch_norm_param { 532 | use_global_stats: true 533 | } 534 | } 535 | layer { 536 | name: "scale_3_2_dw" 537 | type: "Scale" 538 | bottom: "conv_3_2_dw" 539 | top: "conv_3_2_dw" 540 | scale_param { 541 | bias_term: true 542 | } 543 | } 544 | layer { 545 | name: "relu_3_2_dw" 546 | type: "ReLU" 547 | bottom: "conv_3_2_dw" 548 | top: "conv_3_2_dw" 549 | } 550 | layer { 551 | name: "conv_3_2_linear" 552 | type: "Convolution" 553 | bottom: "conv_3_2_dw" 554 | top: "conv_3_2_linear" 555 | param { 556 | lr_mult: 1.0 557 | decay_mult: 1.0 558 | } 559 | convolution_param { 560 | num_output: 8 561 | bias_term: false 562 | pad: 0 563 | kernel_size: 1 564 | stride: 1 565 | weight_filler { 566 | type: "msra" 567 | } 568 | bias_filler { 569 | type: "constant" 570 | value: 0.0 571 | } 572 | } 573 | } 574 | layer { 575 | name: "bn_3_2_linear" 576 | type: "BatchNorm" 577 | bottom: "conv_3_2_linear" 578 | top: "conv_3_2_linear" 579 | param { 580 | lr_mult: 0.0 581 | decay_mult: 0.0 582 | } 583 | param { 584 | lr_mult: 0.0 585 | decay_mult: 0.0 586 | } 587 | param { 588 | lr_mult: 0.0 589 | decay_mult: 0.0 590 | } 591 | batch_norm_param { 592 | use_global_stats: true 593 | } 594 | } 595 | layer { 596 | name: "scale_3_2_linear" 597 | type: "Scale" 598 | bottom: "conv_3_2_linear" 599 | top: "conv_3_2_linear" 600 | scale_param { 601 | bias_term: true 602 | } 603 | } 604 | layer { 605 | name: "add_3_2" 606 | type: "Eltwise" 607 | bottom: "conv_3_1_linear" 608 | bottom: "conv_3_2_linear" 609 | top: "add_3_2" 610 | } 611 | layer { 612 | name: "conv_4_1_pw" 613 | type: "Convolution" 614 | bottom: "add_3_2" 615 | top: "conv_4_1_pw" 616 | param { 617 | lr_mult: 1.0 618 | decay_mult: 1.0 619 | } 620 | convolution_param { 621 | num_output: 48 622 | bias_term: false 623 | pad: 0 624 | kernel_size: 1 625 | stride: 1 626 | weight_filler { 627 | type: "msra" 628 | } 629 | bias_filler { 630 | type: "constant" 631 | value: 0.0 632 | } 633 | } 634 | } 635 | layer { 636 | name: "bn_4_1_pw" 637 | type: "BatchNorm" 638 | bottom: "conv_4_1_pw" 639 | top: "conv_4_1_pw" 640 | param { 641 | lr_mult: 0.0 642 | decay_mult: 0.0 643 | } 644 | param { 645 | lr_mult: 0.0 646 | decay_mult: 0.0 647 | } 648 | param { 649 | lr_mult: 0.0 650 | decay_mult: 0.0 651 | } 652 | batch_norm_param { 653 | use_global_stats: true 654 | } 655 | } 656 | layer { 657 | name: "scale_4_1_pw" 658 | type: "Scale" 659 | bottom: "conv_4_1_pw" 660 | top: "conv_4_1_pw" 661 | scale_param { 662 | bias_term: true 663 | } 664 | } 665 | layer { 666 | name: "relu_4_1_pw" 667 | type: "ReLU" 668 | bottom: "conv_4_1_pw" 669 | top: "conv_4_1_pw" 670 | } 671 | layer { 672 | name: "conv_4_1_dw" 673 | type: "Convolution" 674 | bottom: "conv_4_1_pw" 675 | top: "conv_4_1_dw" 676 | param { 677 | lr_mult: 1.0 678 | decay_mult: 1.0 679 | } 680 | convolution_param { 681 | num_output: 48 682 | bias_term: false 683 | pad: 1 684 | kernel_size: 3 685 | group: 48 686 | stride: 2 687 | weight_filler { 688 | type: "msra" 689 | } 690 | bias_filler { 691 | type: "constant" 692 | value: 0.0 693 | } 694 | engine: CAFFE 695 | } 696 | } 697 | layer { 698 | name: "bn_4_1_dw" 699 | type: "BatchNorm" 700 | bottom: "conv_4_1_dw" 701 | top: "conv_4_1_dw" 702 | param { 703 | lr_mult: 0.0 704 | decay_mult: 0.0 705 | } 706 | param { 707 | lr_mult: 0.0 708 | decay_mult: 0.0 709 | } 710 | param { 711 | lr_mult: 0.0 712 | decay_mult: 0.0 713 | } 714 | batch_norm_param { 715 | use_global_stats: true 716 | } 717 | } 718 | layer { 719 | name: "scale_4_1_dw" 720 | type: "Scale" 721 | bottom: "conv_4_1_dw" 722 | top: "conv_4_1_dw" 723 | scale_param { 724 | bias_term: true 725 | } 726 | } 727 | layer { 728 | name: "relu_4_1_dw" 729 | type: "ReLU" 730 | bottom: "conv_4_1_dw" 731 | top: "conv_4_1_dw" 732 | } 733 | layer { 734 | name: "conv_4_1_linear" 735 | type: "Convolution" 736 | bottom: "conv_4_1_dw" 737 | top: "conv_4_1_linear" 738 | param { 739 | lr_mult: 1.0 740 | decay_mult: 1.0 741 | } 742 | convolution_param { 743 | num_output: 16 744 | bias_term: false 745 | pad: 0 746 | kernel_size: 1 747 | stride: 1 748 | weight_filler { 749 | type: "msra" 750 | } 751 | bias_filler { 752 | type: "constant" 753 | value: 0.0 754 | } 755 | } 756 | } 757 | layer { 758 | name: "bn_4_1_linear" 759 | type: "BatchNorm" 760 | bottom: "conv_4_1_linear" 761 | top: "conv_4_1_linear" 762 | param { 763 | lr_mult: 0.0 764 | decay_mult: 0.0 765 | } 766 | param { 767 | lr_mult: 0.0 768 | decay_mult: 0.0 769 | } 770 | param { 771 | lr_mult: 0.0 772 | decay_mult: 0.0 773 | } 774 | batch_norm_param { 775 | use_global_stats: true 776 | } 777 | } 778 | layer { 779 | name: "scale_4_1_linear" 780 | type: "Scale" 781 | bottom: "conv_4_1_linear" 782 | top: "conv_4_1_linear" 783 | scale_param { 784 | bias_term: true 785 | } 786 | } 787 | layer { 788 | name: "conv_4_2_pw" 789 | type: "Convolution" 790 | bottom: "conv_4_1_linear" 791 | top: "conv_4_2_pw" 792 | param { 793 | lr_mult: 1.0 794 | decay_mult: 1.0 795 | } 796 | convolution_param { 797 | num_output: 96 798 | bias_term: false 799 | pad: 0 800 | kernel_size: 1 801 | stride: 1 802 | weight_filler { 803 | type: "msra" 804 | } 805 | bias_filler { 806 | type: "constant" 807 | value: 0.0 808 | } 809 | } 810 | } 811 | layer { 812 | name: "bn_4_2_pw" 813 | type: "BatchNorm" 814 | bottom: "conv_4_2_pw" 815 | top: "conv_4_2_pw" 816 | param { 817 | lr_mult: 0.0 818 | decay_mult: 0.0 819 | } 820 | param { 821 | lr_mult: 0.0 822 | decay_mult: 0.0 823 | } 824 | param { 825 | lr_mult: 0.0 826 | decay_mult: 0.0 827 | } 828 | batch_norm_param { 829 | use_global_stats: true 830 | } 831 | } 832 | layer { 833 | name: "scale_4_2_pw" 834 | type: "Scale" 835 | bottom: "conv_4_2_pw" 836 | top: "conv_4_2_pw" 837 | scale_param { 838 | bias_term: true 839 | } 840 | } 841 | layer { 842 | name: "relu_4_2_pw" 843 | type: "ReLU" 844 | bottom: "conv_4_2_pw" 845 | top: "conv_4_2_pw" 846 | } 847 | layer { 848 | name: "conv_4_2_dw" 849 | type: "Convolution" 850 | bottom: "conv_4_2_pw" 851 | top: "conv_4_2_dw" 852 | param { 853 | lr_mult: 1.0 854 | decay_mult: 1.0 855 | } 856 | convolution_param { 857 | num_output: 96 858 | bias_term: false 859 | pad: 1 860 | kernel_size: 3 861 | group: 96 862 | stride: 1 863 | weight_filler { 864 | type: "msra" 865 | } 866 | bias_filler { 867 | type: "constant" 868 | value: 0.0 869 | } 870 | engine: CAFFE 871 | } 872 | } 873 | layer { 874 | name: "bn_4_2_dw" 875 | type: "BatchNorm" 876 | bottom: "conv_4_2_dw" 877 | top: "conv_4_2_dw" 878 | param { 879 | lr_mult: 0.0 880 | decay_mult: 0.0 881 | } 882 | param { 883 | lr_mult: 0.0 884 | decay_mult: 0.0 885 | } 886 | param { 887 | lr_mult: 0.0 888 | decay_mult: 0.0 889 | } 890 | batch_norm_param { 891 | use_global_stats: true 892 | } 893 | } 894 | layer { 895 | name: "scale_4_2_dw" 896 | type: "Scale" 897 | bottom: "conv_4_2_dw" 898 | top: "conv_4_2_dw" 899 | scale_param { 900 | bias_term: true 901 | } 902 | } 903 | layer { 904 | name: "relu_4_2_dw" 905 | type: "ReLU" 906 | bottom: "conv_4_2_dw" 907 | top: "conv_4_2_dw" 908 | } 909 | layer { 910 | name: "conv_4_2_linear" 911 | type: "Convolution" 912 | bottom: "conv_4_2_dw" 913 | top: "conv_4_2_linear" 914 | param { 915 | lr_mult: 1.0 916 | decay_mult: 1.0 917 | } 918 | convolution_param { 919 | num_output: 16 920 | bias_term: false 921 | pad: 0 922 | kernel_size: 1 923 | stride: 1 924 | weight_filler { 925 | type: "msra" 926 | } 927 | bias_filler { 928 | type: "constant" 929 | value: 0.0 930 | } 931 | } 932 | } 933 | layer { 934 | name: "bn_4_2_linear" 935 | type: "BatchNorm" 936 | bottom: "conv_4_2_linear" 937 | top: "conv_4_2_linear" 938 | param { 939 | lr_mult: 0.0 940 | decay_mult: 0.0 941 | } 942 | param { 943 | lr_mult: 0.0 944 | decay_mult: 0.0 945 | } 946 | param { 947 | lr_mult: 0.0 948 | decay_mult: 0.0 949 | } 950 | batch_norm_param { 951 | use_global_stats: true 952 | } 953 | } 954 | layer { 955 | name: "scale_4_2_linear" 956 | type: "Scale" 957 | bottom: "conv_4_2_linear" 958 | top: "conv_4_2_linear" 959 | scale_param { 960 | bias_term: true 961 | } 962 | } 963 | layer { 964 | name: "add_4_2" 965 | type: "Eltwise" 966 | bottom: "conv_4_1_linear" 967 | bottom: "conv_4_2_linear" 968 | top: "add_4_2" 969 | } 970 | layer { 971 | name: "conv_4_3_pw" 972 | type: "Convolution" 973 | bottom: "add_4_2" 974 | top: "conv_4_3_pw" 975 | param { 976 | lr_mult: 1.0 977 | decay_mult: 1.0 978 | } 979 | convolution_param { 980 | num_output: 96 981 | bias_term: false 982 | pad: 0 983 | kernel_size: 1 984 | stride: 1 985 | weight_filler { 986 | type: "msra" 987 | } 988 | bias_filler { 989 | type: "constant" 990 | value: 0.0 991 | } 992 | } 993 | } 994 | layer { 995 | name: "bn_4_3_pw" 996 | type: "BatchNorm" 997 | bottom: "conv_4_3_pw" 998 | top: "conv_4_3_pw" 999 | param { 1000 | lr_mult: 0.0 1001 | decay_mult: 0.0 1002 | } 1003 | param { 1004 | lr_mult: 0.0 1005 | decay_mult: 0.0 1006 | } 1007 | param { 1008 | lr_mult: 0.0 1009 | decay_mult: 0.0 1010 | } 1011 | batch_norm_param { 1012 | use_global_stats: true 1013 | } 1014 | } 1015 | layer { 1016 | name: "scale_4_3_pw" 1017 | type: "Scale" 1018 | bottom: "conv_4_3_pw" 1019 | top: "conv_4_3_pw" 1020 | scale_param { 1021 | bias_term: true 1022 | } 1023 | } 1024 | layer { 1025 | name: "relu_4_3_pw" 1026 | type: "ReLU" 1027 | bottom: "conv_4_3_pw" 1028 | top: "conv_4_3_pw" 1029 | } 1030 | layer { 1031 | name: "conv_4_3_dw" 1032 | type: "Convolution" 1033 | bottom: "conv_4_3_pw" 1034 | top: "conv_4_3_dw" 1035 | param { 1036 | lr_mult: 1.0 1037 | decay_mult: 1.0 1038 | } 1039 | convolution_param { 1040 | num_output: 96 1041 | bias_term: false 1042 | pad: 1 1043 | kernel_size: 3 1044 | group: 96 1045 | stride: 1 1046 | weight_filler { 1047 | type: "msra" 1048 | } 1049 | bias_filler { 1050 | type: "constant" 1051 | value: 0.0 1052 | } 1053 | engine: CAFFE 1054 | } 1055 | } 1056 | layer { 1057 | name: "bn_4_3_dw" 1058 | type: "BatchNorm" 1059 | bottom: "conv_4_3_dw" 1060 | top: "conv_4_3_dw" 1061 | param { 1062 | lr_mult: 0.0 1063 | decay_mult: 0.0 1064 | } 1065 | param { 1066 | lr_mult: 0.0 1067 | decay_mult: 0.0 1068 | } 1069 | param { 1070 | lr_mult: 0.0 1071 | decay_mult: 0.0 1072 | } 1073 | batch_norm_param { 1074 | use_global_stats: true 1075 | } 1076 | } 1077 | layer { 1078 | name: "scale_4_3_dw" 1079 | type: "Scale" 1080 | bottom: "conv_4_3_dw" 1081 | top: "conv_4_3_dw" 1082 | scale_param { 1083 | bias_term: true 1084 | } 1085 | } 1086 | layer { 1087 | name: "relu_4_3_dw" 1088 | type: "ReLU" 1089 | bottom: "conv_4_3_dw" 1090 | top: "conv_4_3_dw" 1091 | } 1092 | layer { 1093 | name: "conv_4_3_linear" 1094 | type: "Convolution" 1095 | bottom: "conv_4_3_dw" 1096 | top: "conv_4_3_linear" 1097 | param { 1098 | lr_mult: 1.0 1099 | decay_mult: 1.0 1100 | } 1101 | convolution_param { 1102 | num_output: 16 1103 | bias_term: false 1104 | pad: 0 1105 | kernel_size: 1 1106 | stride: 1 1107 | weight_filler { 1108 | type: "msra" 1109 | } 1110 | bias_filler { 1111 | type: "constant" 1112 | value: 0.0 1113 | } 1114 | } 1115 | } 1116 | layer { 1117 | name: "bn_4_3_linear" 1118 | type: "BatchNorm" 1119 | bottom: "conv_4_3_linear" 1120 | top: "conv_4_3_linear" 1121 | param { 1122 | lr_mult: 0.0 1123 | decay_mult: 0.0 1124 | } 1125 | param { 1126 | lr_mult: 0.0 1127 | decay_mult: 0.0 1128 | } 1129 | param { 1130 | lr_mult: 0.0 1131 | decay_mult: 0.0 1132 | } 1133 | batch_norm_param { 1134 | use_global_stats: true 1135 | } 1136 | } 1137 | layer { 1138 | name: "scale_4_3_linear" 1139 | type: "Scale" 1140 | bottom: "conv_4_3_linear" 1141 | top: "conv_4_3_linear" 1142 | scale_param { 1143 | bias_term: true 1144 | } 1145 | } 1146 | layer { 1147 | name: "add_4_3" 1148 | type: "Eltwise" 1149 | bottom: "add_4_2" 1150 | bottom: "conv_4_3_linear" 1151 | top: "add_4_3" 1152 | } 1153 | layer { 1154 | name: "conv_5_1_pw" 1155 | type: "Convolution" 1156 | bottom: "add_4_3" 1157 | top: "conv_5_1_pw" 1158 | param { 1159 | lr_mult: 1.0 1160 | decay_mult: 1.0 1161 | } 1162 | convolution_param { 1163 | num_output: 96 1164 | bias_term: false 1165 | pad: 0 1166 | kernel_size: 1 1167 | stride: 1 1168 | weight_filler { 1169 | type: "msra" 1170 | } 1171 | bias_filler { 1172 | type: "constant" 1173 | value: 0.0 1174 | } 1175 | } 1176 | } 1177 | layer { 1178 | name: "bn_5_1_pw" 1179 | type: "BatchNorm" 1180 | bottom: "conv_5_1_pw" 1181 | top: "conv_5_1_pw" 1182 | param { 1183 | lr_mult: 0.0 1184 | decay_mult: 0.0 1185 | } 1186 | param { 1187 | lr_mult: 0.0 1188 | decay_mult: 0.0 1189 | } 1190 | param { 1191 | lr_mult: 0.0 1192 | decay_mult: 0.0 1193 | } 1194 | batch_norm_param { 1195 | use_global_stats: true 1196 | } 1197 | } 1198 | layer { 1199 | name: "scale_5_1_pw" 1200 | type: "Scale" 1201 | bottom: "conv_5_1_pw" 1202 | top: "conv_5_1_pw" 1203 | scale_param { 1204 | bias_term: true 1205 | } 1206 | } 1207 | layer { 1208 | name: "relu_5_1_pw" 1209 | type: "ReLU" 1210 | bottom: "conv_5_1_pw" 1211 | top: "conv_5_1_pw" 1212 | } 1213 | layer { 1214 | name: "conv_5_1_dw" 1215 | type: "Convolution" 1216 | bottom: "conv_5_1_pw" 1217 | top: "conv_5_1_dw" 1218 | param { 1219 | lr_mult: 1.0 1220 | decay_mult: 1.0 1221 | } 1222 | convolution_param { 1223 | num_output: 96 1224 | bias_term: false 1225 | pad: 1 1226 | kernel_size: 3 1227 | group: 96 1228 | stride: 2 1229 | weight_filler { 1230 | type: "msra" 1231 | } 1232 | bias_filler { 1233 | type: "constant" 1234 | value: 0.0 1235 | } 1236 | engine: CAFFE 1237 | } 1238 | } 1239 | layer { 1240 | name: "bn_5_1_dw" 1241 | type: "BatchNorm" 1242 | bottom: "conv_5_1_dw" 1243 | top: "conv_5_1_dw" 1244 | param { 1245 | lr_mult: 0.0 1246 | decay_mult: 0.0 1247 | } 1248 | param { 1249 | lr_mult: 0.0 1250 | decay_mult: 0.0 1251 | } 1252 | param { 1253 | lr_mult: 0.0 1254 | decay_mult: 0.0 1255 | } 1256 | batch_norm_param { 1257 | use_global_stats: true 1258 | } 1259 | } 1260 | layer { 1261 | name: "scale_5_1_dw" 1262 | type: "Scale" 1263 | bottom: "conv_5_1_dw" 1264 | top: "conv_5_1_dw" 1265 | scale_param { 1266 | bias_term: true 1267 | } 1268 | } 1269 | layer { 1270 | name: "relu_5_1_dw" 1271 | type: "ReLU" 1272 | bottom: "conv_5_1_dw" 1273 | top: "conv_5_1_dw" 1274 | } 1275 | layer { 1276 | name: "conv_5_1_linear" 1277 | type: "Convolution" 1278 | bottom: "conv_5_1_dw" 1279 | top: "conv_5_1_linear" 1280 | param { 1281 | lr_mult: 1.0 1282 | decay_mult: 1.0 1283 | } 1284 | convolution_param { 1285 | num_output: 24 1286 | bias_term: false 1287 | pad: 0 1288 | kernel_size: 1 1289 | stride: 1 1290 | weight_filler { 1291 | type: "msra" 1292 | } 1293 | bias_filler { 1294 | type: "constant" 1295 | value: 0.0 1296 | } 1297 | } 1298 | } 1299 | layer { 1300 | name: "bn_5_1_linear" 1301 | type: "BatchNorm" 1302 | bottom: "conv_5_1_linear" 1303 | top: "conv_5_1_linear" 1304 | param { 1305 | lr_mult: 0.0 1306 | decay_mult: 0.0 1307 | } 1308 | param { 1309 | lr_mult: 0.0 1310 | decay_mult: 0.0 1311 | } 1312 | param { 1313 | lr_mult: 0.0 1314 | decay_mult: 0.0 1315 | } 1316 | batch_norm_param { 1317 | use_global_stats: true 1318 | } 1319 | } 1320 | layer { 1321 | name: "scale_5_1_linear" 1322 | type: "Scale" 1323 | bottom: "conv_5_1_linear" 1324 | top: "conv_5_1_linear" 1325 | scale_param { 1326 | bias_term: true 1327 | } 1328 | } 1329 | layer { 1330 | name: "conv_5_2_pw" 1331 | type: "Convolution" 1332 | bottom: "conv_5_1_linear" 1333 | top: "conv_5_2_pw" 1334 | param { 1335 | lr_mult: 1.0 1336 | decay_mult: 1.0 1337 | } 1338 | convolution_param { 1339 | num_output: 144 1340 | bias_term: false 1341 | pad: 0 1342 | kernel_size: 1 1343 | stride: 1 1344 | weight_filler { 1345 | type: "msra" 1346 | } 1347 | bias_filler { 1348 | type: "constant" 1349 | value: 0.0 1350 | } 1351 | } 1352 | } 1353 | layer { 1354 | name: "bn_5_2_pw" 1355 | type: "BatchNorm" 1356 | bottom: "conv_5_2_pw" 1357 | top: "conv_5_2_pw" 1358 | param { 1359 | lr_mult: 0.0 1360 | decay_mult: 0.0 1361 | } 1362 | param { 1363 | lr_mult: 0.0 1364 | decay_mult: 0.0 1365 | } 1366 | param { 1367 | lr_mult: 0.0 1368 | decay_mult: 0.0 1369 | } 1370 | batch_norm_param { 1371 | use_global_stats: true 1372 | } 1373 | } 1374 | layer { 1375 | name: "scale_5_2_pw" 1376 | type: "Scale" 1377 | bottom: "conv_5_2_pw" 1378 | top: "conv_5_2_pw" 1379 | scale_param { 1380 | bias_term: true 1381 | } 1382 | } 1383 | layer { 1384 | name: "relu_5_2_pw" 1385 | type: "ReLU" 1386 | bottom: "conv_5_2_pw" 1387 | top: "conv_5_2_pw" 1388 | } 1389 | layer { 1390 | name: "conv_5_2_dw" 1391 | type: "Convolution" 1392 | bottom: "conv_5_2_pw" 1393 | top: "conv_5_2_dw" 1394 | param { 1395 | lr_mult: 1.0 1396 | decay_mult: 1.0 1397 | } 1398 | convolution_param { 1399 | num_output: 144 1400 | bias_term: false 1401 | pad: 1 1402 | kernel_size: 3 1403 | group: 144 1404 | stride: 1 1405 | weight_filler { 1406 | type: "msra" 1407 | } 1408 | bias_filler { 1409 | type: "constant" 1410 | value: 0.0 1411 | } 1412 | engine: CAFFE 1413 | } 1414 | } 1415 | layer { 1416 | name: "bn_5_2_dw" 1417 | type: "BatchNorm" 1418 | bottom: "conv_5_2_dw" 1419 | top: "conv_5_2_dw" 1420 | param { 1421 | lr_mult: 0.0 1422 | decay_mult: 0.0 1423 | } 1424 | param { 1425 | lr_mult: 0.0 1426 | decay_mult: 0.0 1427 | } 1428 | param { 1429 | lr_mult: 0.0 1430 | decay_mult: 0.0 1431 | } 1432 | batch_norm_param { 1433 | use_global_stats: true 1434 | } 1435 | } 1436 | layer { 1437 | name: "scale_5_2_dw" 1438 | type: "Scale" 1439 | bottom: "conv_5_2_dw" 1440 | top: "conv_5_2_dw" 1441 | scale_param { 1442 | bias_term: true 1443 | } 1444 | } 1445 | layer { 1446 | name: "relu_5_2_dw" 1447 | type: "ReLU" 1448 | bottom: "conv_5_2_dw" 1449 | top: "conv_5_2_dw" 1450 | } 1451 | layer { 1452 | name: "conv_5_2_linear" 1453 | type: "Convolution" 1454 | bottom: "conv_5_2_dw" 1455 | top: "conv_5_2_linear" 1456 | param { 1457 | lr_mult: 1.0 1458 | decay_mult: 1.0 1459 | } 1460 | convolution_param { 1461 | num_output: 24 1462 | bias_term: false 1463 | pad: 0 1464 | kernel_size: 1 1465 | stride: 1 1466 | weight_filler { 1467 | type: "msra" 1468 | } 1469 | bias_filler { 1470 | type: "constant" 1471 | value: 0.0 1472 | } 1473 | } 1474 | } 1475 | layer { 1476 | name: "bn_5_2_linear" 1477 | type: "BatchNorm" 1478 | bottom: "conv_5_2_linear" 1479 | top: "conv_5_2_linear" 1480 | param { 1481 | lr_mult: 0.0 1482 | decay_mult: 0.0 1483 | } 1484 | param { 1485 | lr_mult: 0.0 1486 | decay_mult: 0.0 1487 | } 1488 | param { 1489 | lr_mult: 0.0 1490 | decay_mult: 0.0 1491 | } 1492 | batch_norm_param { 1493 | use_global_stats: true 1494 | } 1495 | } 1496 | layer { 1497 | name: "scale_5_2_linear" 1498 | type: "Scale" 1499 | bottom: "conv_5_2_linear" 1500 | top: "conv_5_2_linear" 1501 | scale_param { 1502 | bias_term: true 1503 | } 1504 | } 1505 | layer { 1506 | name: "add_5_2" 1507 | type: "Eltwise" 1508 | bottom: "conv_5_1_linear" 1509 | bottom: "conv_5_2_linear" 1510 | top: "add_5_2" 1511 | } 1512 | layer { 1513 | name: "conv_5_3_pw" 1514 | type: "Convolution" 1515 | bottom: "add_5_2" 1516 | top: "conv_5_3_pw" 1517 | param { 1518 | lr_mult: 1.0 1519 | decay_mult: 1.0 1520 | } 1521 | convolution_param { 1522 | num_output: 144 1523 | bias_term: false 1524 | pad: 0 1525 | kernel_size: 1 1526 | stride: 1 1527 | weight_filler { 1528 | type: "msra" 1529 | } 1530 | bias_filler { 1531 | type: "constant" 1532 | value: 0.0 1533 | } 1534 | } 1535 | } 1536 | layer { 1537 | name: "bn_5_3_pw" 1538 | type: "BatchNorm" 1539 | bottom: "conv_5_3_pw" 1540 | top: "conv_5_3_pw" 1541 | param { 1542 | lr_mult: 0.0 1543 | decay_mult: 0.0 1544 | } 1545 | param { 1546 | lr_mult: 0.0 1547 | decay_mult: 0.0 1548 | } 1549 | param { 1550 | lr_mult: 0.0 1551 | decay_mult: 0.0 1552 | } 1553 | batch_norm_param { 1554 | use_global_stats: true 1555 | } 1556 | } 1557 | layer { 1558 | name: "scale_5_3_pw" 1559 | type: "Scale" 1560 | bottom: "conv_5_3_pw" 1561 | top: "conv_5_3_pw" 1562 | scale_param { 1563 | bias_term: true 1564 | } 1565 | } 1566 | layer { 1567 | name: "relu_5_3_pw" 1568 | type: "ReLU" 1569 | bottom: "conv_5_3_pw" 1570 | top: "conv_5_3_pw" 1571 | } 1572 | layer { 1573 | name: "conv_5_3_dw" 1574 | type: "Convolution" 1575 | bottom: "conv_5_3_pw" 1576 | top: "conv_5_3_dw" 1577 | param { 1578 | lr_mult: 1.0 1579 | decay_mult: 1.0 1580 | } 1581 | convolution_param { 1582 | num_output: 144 1583 | bias_term: false 1584 | pad: 1 1585 | kernel_size: 3 1586 | group: 144 1587 | stride: 1 1588 | weight_filler { 1589 | type: "msra" 1590 | } 1591 | bias_filler { 1592 | type: "constant" 1593 | value: 0.0 1594 | } 1595 | engine: CAFFE 1596 | } 1597 | } 1598 | layer { 1599 | name: "bn_5_3_dw" 1600 | type: "BatchNorm" 1601 | bottom: "conv_5_3_dw" 1602 | top: "conv_5_3_dw" 1603 | param { 1604 | lr_mult: 0.0 1605 | decay_mult: 0.0 1606 | } 1607 | param { 1608 | lr_mult: 0.0 1609 | decay_mult: 0.0 1610 | } 1611 | param { 1612 | lr_mult: 0.0 1613 | decay_mult: 0.0 1614 | } 1615 | batch_norm_param { 1616 | use_global_stats: true 1617 | } 1618 | } 1619 | layer { 1620 | name: "scale_5_3_dw" 1621 | type: "Scale" 1622 | bottom: "conv_5_3_dw" 1623 | top: "conv_5_3_dw" 1624 | scale_param { 1625 | bias_term: true 1626 | } 1627 | } 1628 | layer { 1629 | name: "relu_5_3_dw" 1630 | type: "ReLU" 1631 | bottom: "conv_5_3_dw" 1632 | top: "conv_5_3_dw" 1633 | } 1634 | layer { 1635 | name: "conv_5_3_linear" 1636 | type: "Convolution" 1637 | bottom: "conv_5_3_dw" 1638 | top: "conv_5_3_linear" 1639 | param { 1640 | lr_mult: 1.0 1641 | decay_mult: 1.0 1642 | } 1643 | convolution_param { 1644 | num_output: 24 1645 | bias_term: false 1646 | pad: 0 1647 | kernel_size: 1 1648 | stride: 1 1649 | weight_filler { 1650 | type: "msra" 1651 | } 1652 | bias_filler { 1653 | type: "constant" 1654 | value: 0.0 1655 | } 1656 | } 1657 | } 1658 | layer { 1659 | name: "bn_5_3_linear" 1660 | type: "BatchNorm" 1661 | bottom: "conv_5_3_linear" 1662 | top: "conv_5_3_linear" 1663 | param { 1664 | lr_mult: 0.0 1665 | decay_mult: 0.0 1666 | } 1667 | param { 1668 | lr_mult: 0.0 1669 | decay_mult: 0.0 1670 | } 1671 | param { 1672 | lr_mult: 0.0 1673 | decay_mult: 0.0 1674 | } 1675 | batch_norm_param { 1676 | use_global_stats: true 1677 | } 1678 | } 1679 | layer { 1680 | name: "scale_5_3_linear" 1681 | type: "Scale" 1682 | bottom: "conv_5_3_linear" 1683 | top: "conv_5_3_linear" 1684 | scale_param { 1685 | bias_term: true 1686 | } 1687 | } 1688 | layer { 1689 | name: "add_5_3" 1690 | type: "Eltwise" 1691 | bottom: "add_5_2" 1692 | bottom: "conv_5_3_linear" 1693 | top: "add_5_3" 1694 | } 1695 | layer { 1696 | name: "conv_5_4_pw" 1697 | type: "Convolution" 1698 | bottom: "add_5_3" 1699 | top: "conv_5_4_pw" 1700 | param { 1701 | lr_mult: 1.0 1702 | decay_mult: 1.0 1703 | } 1704 | convolution_param { 1705 | num_output: 144 1706 | bias_term: false 1707 | pad: 0 1708 | kernel_size: 1 1709 | stride: 1 1710 | weight_filler { 1711 | type: "msra" 1712 | } 1713 | bias_filler { 1714 | type: "constant" 1715 | value: 0.0 1716 | } 1717 | } 1718 | } 1719 | layer { 1720 | name: "bn_5_4_pw" 1721 | type: "BatchNorm" 1722 | bottom: "conv_5_4_pw" 1723 | top: "conv_5_4_pw" 1724 | param { 1725 | lr_mult: 0.0 1726 | decay_mult: 0.0 1727 | } 1728 | param { 1729 | lr_mult: 0.0 1730 | decay_mult: 0.0 1731 | } 1732 | param { 1733 | lr_mult: 0.0 1734 | decay_mult: 0.0 1735 | } 1736 | batch_norm_param { 1737 | use_global_stats: true 1738 | } 1739 | } 1740 | layer { 1741 | name: "scale_5_4_pw" 1742 | type: "Scale" 1743 | bottom: "conv_5_4_pw" 1744 | top: "conv_5_4_pw" 1745 | scale_param { 1746 | bias_term: true 1747 | } 1748 | } 1749 | layer { 1750 | name: "relu_5_4_pw" 1751 | type: "ReLU" 1752 | bottom: "conv_5_4_pw" 1753 | top: "conv_5_4_pw" 1754 | } 1755 | layer { 1756 | name: "conv_5_4_dw" 1757 | type: "Convolution" 1758 | bottom: "conv_5_4_pw" 1759 | top: "conv_5_4_dw" 1760 | param { 1761 | lr_mult: 1.0 1762 | decay_mult: 1.0 1763 | } 1764 | convolution_param { 1765 | num_output: 144 1766 | bias_term: false 1767 | pad: 1 1768 | kernel_size: 3 1769 | group: 144 1770 | stride: 1 1771 | weight_filler { 1772 | type: "msra" 1773 | } 1774 | bias_filler { 1775 | type: "constant" 1776 | value: 0.0 1777 | } 1778 | engine: CAFFE 1779 | } 1780 | } 1781 | layer { 1782 | name: "bn_5_4_dw" 1783 | type: "BatchNorm" 1784 | bottom: "conv_5_4_dw" 1785 | top: "conv_5_4_dw" 1786 | param { 1787 | lr_mult: 0.0 1788 | decay_mult: 0.0 1789 | } 1790 | param { 1791 | lr_mult: 0.0 1792 | decay_mult: 0.0 1793 | } 1794 | param { 1795 | lr_mult: 0.0 1796 | decay_mult: 0.0 1797 | } 1798 | batch_norm_param { 1799 | use_global_stats: true 1800 | } 1801 | } 1802 | layer { 1803 | name: "scale_5_4_dw" 1804 | type: "Scale" 1805 | bottom: "conv_5_4_dw" 1806 | top: "conv_5_4_dw" 1807 | scale_param { 1808 | bias_term: true 1809 | } 1810 | } 1811 | layer { 1812 | name: "relu_5_4_dw" 1813 | type: "ReLU" 1814 | bottom: "conv_5_4_dw" 1815 | top: "conv_5_4_dw" 1816 | } 1817 | layer { 1818 | name: "conv_5_4_linear" 1819 | type: "Convolution" 1820 | bottom: "conv_5_4_dw" 1821 | top: "conv_5_4_linear" 1822 | param { 1823 | lr_mult: 1.0 1824 | decay_mult: 1.0 1825 | } 1826 | convolution_param { 1827 | num_output: 24 1828 | bias_term: false 1829 | pad: 0 1830 | kernel_size: 1 1831 | stride: 1 1832 | weight_filler { 1833 | type: "msra" 1834 | } 1835 | bias_filler { 1836 | type: "constant" 1837 | value: 0.0 1838 | } 1839 | } 1840 | } 1841 | layer { 1842 | name: "bn_5_4_linear" 1843 | type: "BatchNorm" 1844 | bottom: "conv_5_4_linear" 1845 | top: "conv_5_4_linear" 1846 | param { 1847 | lr_mult: 0.0 1848 | decay_mult: 0.0 1849 | } 1850 | param { 1851 | lr_mult: 0.0 1852 | decay_mult: 0.0 1853 | } 1854 | param { 1855 | lr_mult: 0.0 1856 | decay_mult: 0.0 1857 | } 1858 | batch_norm_param { 1859 | use_global_stats: true 1860 | } 1861 | } 1862 | layer { 1863 | name: "scale_5_4_linear" 1864 | type: "Scale" 1865 | bottom: "conv_5_4_linear" 1866 | top: "conv_5_4_linear" 1867 | scale_param { 1868 | bias_term: true 1869 | } 1870 | } 1871 | layer { 1872 | name: "add_5_4" 1873 | type: "Eltwise" 1874 | bottom: "add_5_3" 1875 | bottom: "conv_5_4_linear" 1876 | top: "add_5_4" 1877 | } 1878 | layer { 1879 | name: "conv_6_1_pw" 1880 | type: "Convolution" 1881 | bottom: "add_5_4" 1882 | top: "conv_6_1_pw" 1883 | param { 1884 | lr_mult: 1.0 1885 | decay_mult: 1.0 1886 | } 1887 | convolution_param { 1888 | num_output: 144 1889 | bias_term: false 1890 | pad: 0 1891 | kernel_size: 1 1892 | stride: 1 1893 | weight_filler { 1894 | type: "msra" 1895 | } 1896 | bias_filler { 1897 | type: "constant" 1898 | value: 0.0 1899 | } 1900 | } 1901 | } 1902 | layer { 1903 | name: "bn_6_1_pw" 1904 | type: "BatchNorm" 1905 | bottom: "conv_6_1_pw" 1906 | top: "conv_6_1_pw" 1907 | param { 1908 | lr_mult: 0.0 1909 | decay_mult: 0.0 1910 | } 1911 | param { 1912 | lr_mult: 0.0 1913 | decay_mult: 0.0 1914 | } 1915 | param { 1916 | lr_mult: 0.0 1917 | decay_mult: 0.0 1918 | } 1919 | batch_norm_param { 1920 | use_global_stats: true 1921 | } 1922 | } 1923 | layer { 1924 | name: "scale_6_1_pw" 1925 | type: "Scale" 1926 | bottom: "conv_6_1_pw" 1927 | top: "conv_6_1_pw" 1928 | scale_param { 1929 | bias_term: true 1930 | } 1931 | } 1932 | layer { 1933 | name: "relu_6_1_pw" 1934 | type: "ReLU" 1935 | bottom: "conv_6_1_pw" 1936 | top: "conv_6_1_pw" 1937 | } 1938 | layer { 1939 | name: "conv_6_1_dw" 1940 | type: "Convolution" 1941 | bottom: "conv_6_1_pw" 1942 | top: "conv_6_1_dw" 1943 | param { 1944 | lr_mult: 1.0 1945 | decay_mult: 1.0 1946 | } 1947 | convolution_param { 1948 | num_output: 144 1949 | bias_term: false 1950 | pad: 1 1951 | kernel_size: 3 1952 | group: 144 1953 | stride: 1 1954 | weight_filler { 1955 | type: "msra" 1956 | } 1957 | bias_filler { 1958 | type: "constant" 1959 | value: 0.0 1960 | } 1961 | engine: CAFFE 1962 | } 1963 | } 1964 | layer { 1965 | name: "bn_6_1_dw" 1966 | type: "BatchNorm" 1967 | bottom: "conv_6_1_dw" 1968 | top: "conv_6_1_dw" 1969 | param { 1970 | lr_mult: 0.0 1971 | decay_mult: 0.0 1972 | } 1973 | param { 1974 | lr_mult: 0.0 1975 | decay_mult: 0.0 1976 | } 1977 | param { 1978 | lr_mult: 0.0 1979 | decay_mult: 0.0 1980 | } 1981 | batch_norm_param { 1982 | use_global_stats: true 1983 | } 1984 | } 1985 | layer { 1986 | name: "scale_6_1_dw" 1987 | type: "Scale" 1988 | bottom: "conv_6_1_dw" 1989 | top: "conv_6_1_dw" 1990 | scale_param { 1991 | bias_term: true 1992 | } 1993 | } 1994 | layer { 1995 | name: "relu_6_1_dw" 1996 | type: "ReLU" 1997 | bottom: "conv_6_1_dw" 1998 | top: "conv_6_1_dw" 1999 | } 2000 | layer { 2001 | name: "conv_6_1_linear" 2002 | type: "Convolution" 2003 | bottom: "conv_6_1_dw" 2004 | top: "conv_6_1_linear" 2005 | param { 2006 | lr_mult: 1.0 2007 | decay_mult: 1.0 2008 | } 2009 | convolution_param { 2010 | num_output: 32 2011 | bias_term: false 2012 | pad: 0 2013 | kernel_size: 1 2014 | stride: 1 2015 | weight_filler { 2016 | type: "msra" 2017 | } 2018 | bias_filler { 2019 | type: "constant" 2020 | value: 0.0 2021 | } 2022 | } 2023 | } 2024 | layer { 2025 | name: "bn_6_1_linear" 2026 | type: "BatchNorm" 2027 | bottom: "conv_6_1_linear" 2028 | top: "conv_6_1_linear" 2029 | param { 2030 | lr_mult: 0.0 2031 | decay_mult: 0.0 2032 | } 2033 | param { 2034 | lr_mult: 0.0 2035 | decay_mult: 0.0 2036 | } 2037 | param { 2038 | lr_mult: 0.0 2039 | decay_mult: 0.0 2040 | } 2041 | batch_norm_param { 2042 | use_global_stats: true 2043 | } 2044 | } 2045 | layer { 2046 | name: "scale_6_1_linear" 2047 | type: "Scale" 2048 | bottom: "conv_6_1_linear" 2049 | top: "conv_6_1_linear" 2050 | scale_param { 2051 | bias_term: true 2052 | } 2053 | } 2054 | layer { 2055 | name: "conv_6_2_pw" 2056 | type: "Convolution" 2057 | bottom: "conv_6_1_linear" 2058 | top: "conv_6_2_pw" 2059 | param { 2060 | lr_mult: 1.0 2061 | decay_mult: 1.0 2062 | } 2063 | convolution_param { 2064 | num_output: 192 2065 | bias_term: false 2066 | pad: 0 2067 | kernel_size: 1 2068 | stride: 1 2069 | weight_filler { 2070 | type: "msra" 2071 | } 2072 | bias_filler { 2073 | type: "constant" 2074 | value: 0.0 2075 | } 2076 | } 2077 | } 2078 | layer { 2079 | name: "bn_6_2_pw" 2080 | type: "BatchNorm" 2081 | bottom: "conv_6_2_pw" 2082 | top: "conv_6_2_pw" 2083 | param { 2084 | lr_mult: 0.0 2085 | decay_mult: 0.0 2086 | } 2087 | param { 2088 | lr_mult: 0.0 2089 | decay_mult: 0.0 2090 | } 2091 | param { 2092 | lr_mult: 0.0 2093 | decay_mult: 0.0 2094 | } 2095 | batch_norm_param { 2096 | use_global_stats: true 2097 | } 2098 | } 2099 | layer { 2100 | name: "scale_6_2_pw" 2101 | type: "Scale" 2102 | bottom: "conv_6_2_pw" 2103 | top: "conv_6_2_pw" 2104 | scale_param { 2105 | bias_term: true 2106 | } 2107 | } 2108 | layer { 2109 | name: "relu_6_2_pw" 2110 | type: "ReLU" 2111 | bottom: "conv_6_2_pw" 2112 | top: "conv_6_2_pw" 2113 | } 2114 | layer { 2115 | name: "conv_6_2_dw" 2116 | type: "Convolution" 2117 | bottom: "conv_6_2_pw" 2118 | top: "conv_6_2_dw" 2119 | param { 2120 | lr_mult: 1.0 2121 | decay_mult: 1.0 2122 | } 2123 | convolution_param { 2124 | num_output: 192 2125 | bias_term: false 2126 | pad: 1 2127 | kernel_size: 3 2128 | group: 192 2129 | stride: 1 2130 | weight_filler { 2131 | type: "msra" 2132 | } 2133 | bias_filler { 2134 | type: "constant" 2135 | value: 0.0 2136 | } 2137 | engine: CAFFE 2138 | } 2139 | } 2140 | layer { 2141 | name: "bn_6_2_dw" 2142 | type: "BatchNorm" 2143 | bottom: "conv_6_2_dw" 2144 | top: "conv_6_2_dw" 2145 | param { 2146 | lr_mult: 0.0 2147 | decay_mult: 0.0 2148 | } 2149 | param { 2150 | lr_mult: 0.0 2151 | decay_mult: 0.0 2152 | } 2153 | param { 2154 | lr_mult: 0.0 2155 | decay_mult: 0.0 2156 | } 2157 | batch_norm_param { 2158 | use_global_stats: true 2159 | } 2160 | } 2161 | layer { 2162 | name: "scale_6_2_dw" 2163 | type: "Scale" 2164 | bottom: "conv_6_2_dw" 2165 | top: "conv_6_2_dw" 2166 | scale_param { 2167 | bias_term: true 2168 | } 2169 | } 2170 | layer { 2171 | name: "relu_6_2_dw" 2172 | type: "ReLU" 2173 | bottom: "conv_6_2_dw" 2174 | top: "conv_6_2_dw" 2175 | } 2176 | layer { 2177 | name: "conv_6_2_linear" 2178 | type: "Convolution" 2179 | bottom: "conv_6_2_dw" 2180 | top: "conv_6_2_linear" 2181 | param { 2182 | lr_mult: 1.0 2183 | decay_mult: 1.0 2184 | } 2185 | convolution_param { 2186 | num_output: 32 2187 | bias_term: false 2188 | pad: 0 2189 | kernel_size: 1 2190 | stride: 1 2191 | weight_filler { 2192 | type: "msra" 2193 | } 2194 | bias_filler { 2195 | type: "constant" 2196 | value: 0.0 2197 | } 2198 | } 2199 | } 2200 | layer { 2201 | name: "bn_6_2_linear" 2202 | type: "BatchNorm" 2203 | bottom: "conv_6_2_linear" 2204 | top: "conv_6_2_linear" 2205 | param { 2206 | lr_mult: 0.0 2207 | decay_mult: 0.0 2208 | } 2209 | param { 2210 | lr_mult: 0.0 2211 | decay_mult: 0.0 2212 | } 2213 | param { 2214 | lr_mult: 0.0 2215 | decay_mult: 0.0 2216 | } 2217 | batch_norm_param { 2218 | use_global_stats: true 2219 | } 2220 | } 2221 | layer { 2222 | name: "scale_6_2_linear" 2223 | type: "Scale" 2224 | bottom: "conv_6_2_linear" 2225 | top: "conv_6_2_linear" 2226 | scale_param { 2227 | bias_term: true 2228 | } 2229 | } 2230 | layer { 2231 | name: "add_6_2" 2232 | type: "Eltwise" 2233 | bottom: "conv_6_1_linear" 2234 | bottom: "conv_6_2_linear" 2235 | top: "add_6_2" 2236 | } 2237 | layer { 2238 | name: "conv_6_3_pw" 2239 | type: "Convolution" 2240 | bottom: "add_6_2" 2241 | top: "conv_6_3_pw" 2242 | param { 2243 | lr_mult: 1.0 2244 | decay_mult: 1.0 2245 | } 2246 | convolution_param { 2247 | num_output: 192 2248 | bias_term: false 2249 | pad: 0 2250 | kernel_size: 1 2251 | stride: 1 2252 | weight_filler { 2253 | type: "msra" 2254 | } 2255 | bias_filler { 2256 | type: "constant" 2257 | value: 0.0 2258 | } 2259 | } 2260 | } 2261 | layer { 2262 | name: "bn_6_3_pw" 2263 | type: "BatchNorm" 2264 | bottom: "conv_6_3_pw" 2265 | top: "conv_6_3_pw" 2266 | param { 2267 | lr_mult: 0.0 2268 | decay_mult: 0.0 2269 | } 2270 | param { 2271 | lr_mult: 0.0 2272 | decay_mult: 0.0 2273 | } 2274 | param { 2275 | lr_mult: 0.0 2276 | decay_mult: 0.0 2277 | } 2278 | batch_norm_param { 2279 | use_global_stats: true 2280 | } 2281 | } 2282 | layer { 2283 | name: "scale_6_3_pw" 2284 | type: "Scale" 2285 | bottom: "conv_6_3_pw" 2286 | top: "conv_6_3_pw" 2287 | scale_param { 2288 | bias_term: true 2289 | } 2290 | } 2291 | layer { 2292 | name: "relu_6_3_pw" 2293 | type: "ReLU" 2294 | bottom: "conv_6_3_pw" 2295 | top: "conv_6_3_pw" 2296 | } 2297 | layer { 2298 | name: "conv_6_3_dw" 2299 | type: "Convolution" 2300 | bottom: "conv_6_3_pw" 2301 | top: "conv_6_3_dw" 2302 | param { 2303 | lr_mult: 1.0 2304 | decay_mult: 1.0 2305 | } 2306 | convolution_param { 2307 | num_output: 192 2308 | bias_term: false 2309 | pad: 1 2310 | kernel_size: 3 2311 | group: 192 2312 | stride: 1 2313 | weight_filler { 2314 | type: "msra" 2315 | } 2316 | bias_filler { 2317 | type: "constant" 2318 | value: 0.0 2319 | } 2320 | engine: CAFFE 2321 | } 2322 | } 2323 | layer { 2324 | name: "bn_6_3_dw" 2325 | type: "BatchNorm" 2326 | bottom: "conv_6_3_dw" 2327 | top: "conv_6_3_dw" 2328 | param { 2329 | lr_mult: 0.0 2330 | decay_mult: 0.0 2331 | } 2332 | param { 2333 | lr_mult: 0.0 2334 | decay_mult: 0.0 2335 | } 2336 | param { 2337 | lr_mult: 0.0 2338 | decay_mult: 0.0 2339 | } 2340 | batch_norm_param { 2341 | use_global_stats: true 2342 | } 2343 | } 2344 | layer { 2345 | name: "scale_6_3_dw" 2346 | type: "Scale" 2347 | bottom: "conv_6_3_dw" 2348 | top: "conv_6_3_dw" 2349 | scale_param { 2350 | bias_term: true 2351 | } 2352 | } 2353 | layer { 2354 | name: "relu_6_3_dw" 2355 | type: "ReLU" 2356 | bottom: "conv_6_3_dw" 2357 | top: "conv_6_3_dw" 2358 | } 2359 | layer { 2360 | name: "conv_6_3_linear" 2361 | type: "Convolution" 2362 | bottom: "conv_6_3_dw" 2363 | top: "conv_6_3_linear" 2364 | param { 2365 | lr_mult: 1.0 2366 | decay_mult: 1.0 2367 | } 2368 | convolution_param { 2369 | num_output: 32 2370 | bias_term: false 2371 | pad: 0 2372 | kernel_size: 1 2373 | stride: 1 2374 | weight_filler { 2375 | type: "msra" 2376 | } 2377 | bias_filler { 2378 | type: "constant" 2379 | value: 0.0 2380 | } 2381 | } 2382 | } 2383 | layer { 2384 | name: "bn_6_3_linear" 2385 | type: "BatchNorm" 2386 | bottom: "conv_6_3_linear" 2387 | top: "conv_6_3_linear" 2388 | param { 2389 | lr_mult: 0.0 2390 | decay_mult: 0.0 2391 | } 2392 | param { 2393 | lr_mult: 0.0 2394 | decay_mult: 0.0 2395 | } 2396 | param { 2397 | lr_mult: 0.0 2398 | decay_mult: 0.0 2399 | } 2400 | batch_norm_param { 2401 | use_global_stats: true 2402 | } 2403 | } 2404 | layer { 2405 | name: "scale_6_3_linear" 2406 | type: "Scale" 2407 | bottom: "conv_6_3_linear" 2408 | top: "conv_6_3_linear" 2409 | scale_param { 2410 | bias_term: true 2411 | } 2412 | } 2413 | layer { 2414 | name: "add_6_3" 2415 | type: "Eltwise" 2416 | bottom: "add_6_2" 2417 | bottom: "conv_6_3_linear" 2418 | top: "add_6_3" 2419 | } 2420 | layer { 2421 | name: "conv_7_1_pw" 2422 | type: "Convolution" 2423 | bottom: "add_6_3" 2424 | top: "conv_7_1_pw" 2425 | param { 2426 | lr_mult: 1.0 2427 | decay_mult: 1.0 2428 | } 2429 | convolution_param { 2430 | num_output: 192 2431 | bias_term: false 2432 | pad: 0 2433 | kernel_size: 1 2434 | stride: 1 2435 | weight_filler { 2436 | type: "msra" 2437 | } 2438 | bias_filler { 2439 | type: "constant" 2440 | value: 0.0 2441 | } 2442 | } 2443 | } 2444 | layer { 2445 | name: "bn_7_1_pw" 2446 | type: "BatchNorm" 2447 | bottom: "conv_7_1_pw" 2448 | top: "conv_7_1_pw" 2449 | param { 2450 | lr_mult: 0.0 2451 | decay_mult: 0.0 2452 | } 2453 | param { 2454 | lr_mult: 0.0 2455 | decay_mult: 0.0 2456 | } 2457 | param { 2458 | lr_mult: 0.0 2459 | decay_mult: 0.0 2460 | } 2461 | batch_norm_param { 2462 | use_global_stats: true 2463 | } 2464 | } 2465 | layer { 2466 | name: "scale_7_1_pw" 2467 | type: "Scale" 2468 | bottom: "conv_7_1_pw" 2469 | top: "conv_7_1_pw" 2470 | scale_param { 2471 | bias_term: true 2472 | } 2473 | } 2474 | layer { 2475 | name: "relu_7_1_pw" 2476 | type: "ReLU" 2477 | bottom: "conv_7_1_pw" 2478 | top: "conv_7_1_pw" 2479 | } 2480 | layer { 2481 | name: "conv_7_1_dw" 2482 | type: "Convolution" 2483 | bottom: "conv_7_1_pw" 2484 | top: "conv_7_1_dw" 2485 | param { 2486 | lr_mult: 1.0 2487 | decay_mult: 1.0 2488 | } 2489 | convolution_param { 2490 | num_output: 192 2491 | bias_term: false 2492 | pad: 1 2493 | kernel_size: 3 2494 | group: 192 2495 | stride: 2 2496 | weight_filler { 2497 | type: "msra" 2498 | } 2499 | bias_filler { 2500 | type: "constant" 2501 | value: 0.0 2502 | } 2503 | engine: CAFFE 2504 | } 2505 | } 2506 | layer { 2507 | name: "bn_7_1_dw" 2508 | type: "BatchNorm" 2509 | bottom: "conv_7_1_dw" 2510 | top: "conv_7_1_dw" 2511 | param { 2512 | lr_mult: 0.0 2513 | decay_mult: 0.0 2514 | } 2515 | param { 2516 | lr_mult: 0.0 2517 | decay_mult: 0.0 2518 | } 2519 | param { 2520 | lr_mult: 0.0 2521 | decay_mult: 0.0 2522 | } 2523 | batch_norm_param { 2524 | use_global_stats: true 2525 | } 2526 | } 2527 | layer { 2528 | name: "scale_7_1_dw" 2529 | type: "Scale" 2530 | bottom: "conv_7_1_dw" 2531 | top: "conv_7_1_dw" 2532 | scale_param { 2533 | bias_term: true 2534 | } 2535 | } 2536 | layer { 2537 | name: "relu_7_1_dw" 2538 | type: "ReLU" 2539 | bottom: "conv_7_1_dw" 2540 | top: "conv_7_1_dw" 2541 | } 2542 | layer { 2543 | name: "conv_7_1_linear" 2544 | type: "Convolution" 2545 | bottom: "conv_7_1_dw" 2546 | top: "conv_7_1_linear" 2547 | param { 2548 | lr_mult: 1.0 2549 | decay_mult: 1.0 2550 | } 2551 | convolution_param { 2552 | num_output: 56 2553 | bias_term: false 2554 | pad: 0 2555 | kernel_size: 1 2556 | stride: 1 2557 | weight_filler { 2558 | type: "msra" 2559 | } 2560 | bias_filler { 2561 | type: "constant" 2562 | value: 0.0 2563 | } 2564 | } 2565 | } 2566 | layer { 2567 | name: "bn_7_1_linear" 2568 | type: "BatchNorm" 2569 | bottom: "conv_7_1_linear" 2570 | top: "conv_7_1_linear" 2571 | param { 2572 | lr_mult: 0.0 2573 | decay_mult: 0.0 2574 | } 2575 | param { 2576 | lr_mult: 0.0 2577 | decay_mult: 0.0 2578 | } 2579 | param { 2580 | lr_mult: 0.0 2581 | decay_mult: 0.0 2582 | } 2583 | batch_norm_param { 2584 | use_global_stats: true 2585 | } 2586 | } 2587 | layer { 2588 | name: "scale_7_1_linear" 2589 | type: "Scale" 2590 | bottom: "conv_7_1_linear" 2591 | top: "conv_7_1_linear" 2592 | scale_param { 2593 | bias_term: true 2594 | } 2595 | } 2596 | layer { 2597 | name: "conv_7_2_pw" 2598 | type: "Convolution" 2599 | bottom: "conv_7_1_linear" 2600 | top: "conv_7_2_pw" 2601 | param { 2602 | lr_mult: 1.0 2603 | decay_mult: 1.0 2604 | } 2605 | convolution_param { 2606 | num_output: 336 2607 | bias_term: false 2608 | pad: 0 2609 | kernel_size: 1 2610 | stride: 1 2611 | weight_filler { 2612 | type: "msra" 2613 | } 2614 | bias_filler { 2615 | type: "constant" 2616 | value: 0.0 2617 | } 2618 | } 2619 | } 2620 | layer { 2621 | name: "bn_7_2_pw" 2622 | type: "BatchNorm" 2623 | bottom: "conv_7_2_pw" 2624 | top: "conv_7_2_pw" 2625 | param { 2626 | lr_mult: 0.0 2627 | decay_mult: 0.0 2628 | } 2629 | param { 2630 | lr_mult: 0.0 2631 | decay_mult: 0.0 2632 | } 2633 | param { 2634 | lr_mult: 0.0 2635 | decay_mult: 0.0 2636 | } 2637 | batch_norm_param { 2638 | use_global_stats: true 2639 | } 2640 | } 2641 | layer { 2642 | name: "scale_7_2_pw" 2643 | type: "Scale" 2644 | bottom: "conv_7_2_pw" 2645 | top: "conv_7_2_pw" 2646 | scale_param { 2647 | bias_term: true 2648 | } 2649 | } 2650 | layer { 2651 | name: "relu_7_2_pw" 2652 | type: "ReLU" 2653 | bottom: "conv_7_2_pw" 2654 | top: "conv_7_2_pw" 2655 | } 2656 | layer { 2657 | name: "conv_7_2_dw" 2658 | type: "Convolution" 2659 | bottom: "conv_7_2_pw" 2660 | top: "conv_7_2_dw" 2661 | param { 2662 | lr_mult: 1.0 2663 | decay_mult: 1.0 2664 | } 2665 | convolution_param { 2666 | num_output: 336 2667 | bias_term: false 2668 | pad: 1 2669 | kernel_size: 3 2670 | group: 336 2671 | stride: 1 2672 | weight_filler { 2673 | type: "msra" 2674 | } 2675 | bias_filler { 2676 | type: "constant" 2677 | value: 0.0 2678 | } 2679 | engine: CAFFE 2680 | } 2681 | } 2682 | layer { 2683 | name: "bn_7_2_dw" 2684 | type: "BatchNorm" 2685 | bottom: "conv_7_2_dw" 2686 | top: "conv_7_2_dw" 2687 | param { 2688 | lr_mult: 0.0 2689 | decay_mult: 0.0 2690 | } 2691 | param { 2692 | lr_mult: 0.0 2693 | decay_mult: 0.0 2694 | } 2695 | param { 2696 | lr_mult: 0.0 2697 | decay_mult: 0.0 2698 | } 2699 | batch_norm_param { 2700 | use_global_stats: true 2701 | } 2702 | } 2703 | layer { 2704 | name: "scale_7_2_dw" 2705 | type: "Scale" 2706 | bottom: "conv_7_2_dw" 2707 | top: "conv_7_2_dw" 2708 | scale_param { 2709 | bias_term: true 2710 | } 2711 | } 2712 | layer { 2713 | name: "relu_7_2_dw" 2714 | type: "ReLU" 2715 | bottom: "conv_7_2_dw" 2716 | top: "conv_7_2_dw" 2717 | } 2718 | layer { 2719 | name: "conv_7_2_linear" 2720 | type: "Convolution" 2721 | bottom: "conv_7_2_dw" 2722 | top: "conv_7_2_linear" 2723 | param { 2724 | lr_mult: 1.0 2725 | decay_mult: 1.0 2726 | } 2727 | convolution_param { 2728 | num_output: 56 2729 | bias_term: false 2730 | pad: 0 2731 | kernel_size: 1 2732 | stride: 1 2733 | weight_filler { 2734 | type: "msra" 2735 | } 2736 | bias_filler { 2737 | type: "constant" 2738 | value: 0.0 2739 | } 2740 | } 2741 | } 2742 | layer { 2743 | name: "bn_7_2_linear" 2744 | type: "BatchNorm" 2745 | bottom: "conv_7_2_linear" 2746 | top: "conv_7_2_linear" 2747 | param { 2748 | lr_mult: 0.0 2749 | decay_mult: 0.0 2750 | } 2751 | param { 2752 | lr_mult: 0.0 2753 | decay_mult: 0.0 2754 | } 2755 | param { 2756 | lr_mult: 0.0 2757 | decay_mult: 0.0 2758 | } 2759 | batch_norm_param { 2760 | use_global_stats: true 2761 | } 2762 | } 2763 | layer { 2764 | name: "scale_7_2_linear" 2765 | type: "Scale" 2766 | bottom: "conv_7_2_linear" 2767 | top: "conv_7_2_linear" 2768 | scale_param { 2769 | bias_term: true 2770 | } 2771 | } 2772 | layer { 2773 | name: "add_7_2" 2774 | type: "Eltwise" 2775 | bottom: "conv_7_1_linear" 2776 | bottom: "conv_7_2_linear" 2777 | top: "add_7_2" 2778 | } 2779 | layer { 2780 | name: "conv_7_3_pw" 2781 | type: "Convolution" 2782 | bottom: "add_7_2" 2783 | top: "conv_7_3_pw" 2784 | param { 2785 | lr_mult: 1.0 2786 | decay_mult: 1.0 2787 | } 2788 | convolution_param { 2789 | num_output: 336 2790 | bias_term: false 2791 | pad: 0 2792 | kernel_size: 1 2793 | stride: 1 2794 | weight_filler { 2795 | type: "msra" 2796 | } 2797 | bias_filler { 2798 | type: "constant" 2799 | value: 0.0 2800 | } 2801 | } 2802 | } 2803 | layer { 2804 | name: "bn_7_3_pw" 2805 | type: "BatchNorm" 2806 | bottom: "conv_7_3_pw" 2807 | top: "conv_7_3_pw" 2808 | param { 2809 | lr_mult: 0.0 2810 | decay_mult: 0.0 2811 | } 2812 | param { 2813 | lr_mult: 0.0 2814 | decay_mult: 0.0 2815 | } 2816 | param { 2817 | lr_mult: 0.0 2818 | decay_mult: 0.0 2819 | } 2820 | batch_norm_param { 2821 | use_global_stats: true 2822 | } 2823 | } 2824 | layer { 2825 | name: "scale_7_3_pw" 2826 | type: "Scale" 2827 | bottom: "conv_7_3_pw" 2828 | top: "conv_7_3_pw" 2829 | scale_param { 2830 | bias_term: true 2831 | } 2832 | } 2833 | layer { 2834 | name: "relu_7_3_pw" 2835 | type: "ReLU" 2836 | bottom: "conv_7_3_pw" 2837 | top: "conv_7_3_pw" 2838 | } 2839 | layer { 2840 | name: "conv_7_3_dw" 2841 | type: "Convolution" 2842 | bottom: "conv_7_3_pw" 2843 | top: "conv_7_3_dw" 2844 | param { 2845 | lr_mult: 1.0 2846 | decay_mult: 1.0 2847 | } 2848 | convolution_param { 2849 | num_output: 336 2850 | bias_term: false 2851 | pad: 1 2852 | kernel_size: 3 2853 | group: 336 2854 | stride: 1 2855 | weight_filler { 2856 | type: "msra" 2857 | } 2858 | bias_filler { 2859 | type: "constant" 2860 | value: 0.0 2861 | } 2862 | engine: CAFFE 2863 | } 2864 | } 2865 | layer { 2866 | name: "bn_7_3_dw" 2867 | type: "BatchNorm" 2868 | bottom: "conv_7_3_dw" 2869 | top: "conv_7_3_dw" 2870 | param { 2871 | lr_mult: 0.0 2872 | decay_mult: 0.0 2873 | } 2874 | param { 2875 | lr_mult: 0.0 2876 | decay_mult: 0.0 2877 | } 2878 | param { 2879 | lr_mult: 0.0 2880 | decay_mult: 0.0 2881 | } 2882 | batch_norm_param { 2883 | use_global_stats: true 2884 | } 2885 | } 2886 | layer { 2887 | name: "scale_7_3_dw" 2888 | type: "Scale" 2889 | bottom: "conv_7_3_dw" 2890 | top: "conv_7_3_dw" 2891 | scale_param { 2892 | bias_term: true 2893 | } 2894 | } 2895 | layer { 2896 | name: "relu_7_3_dw" 2897 | type: "ReLU" 2898 | bottom: "conv_7_3_dw" 2899 | top: "conv_7_3_dw" 2900 | } 2901 | layer { 2902 | name: "conv_7_3_linear" 2903 | type: "Convolution" 2904 | bottom: "conv_7_3_dw" 2905 | top: "conv_7_3_linear" 2906 | param { 2907 | lr_mult: 1.0 2908 | decay_mult: 1.0 2909 | } 2910 | convolution_param { 2911 | num_output: 56 2912 | bias_term: false 2913 | pad: 0 2914 | kernel_size: 1 2915 | stride: 1 2916 | weight_filler { 2917 | type: "msra" 2918 | } 2919 | bias_filler { 2920 | type: "constant" 2921 | value: 0.0 2922 | } 2923 | } 2924 | } 2925 | layer { 2926 | name: "bn_7_3_linear" 2927 | type: "BatchNorm" 2928 | bottom: "conv_7_3_linear" 2929 | top: "conv_7_3_linear" 2930 | param { 2931 | lr_mult: 0.0 2932 | decay_mult: 0.0 2933 | } 2934 | param { 2935 | lr_mult: 0.0 2936 | decay_mult: 0.0 2937 | } 2938 | param { 2939 | lr_mult: 0.0 2940 | decay_mult: 0.0 2941 | } 2942 | batch_norm_param { 2943 | use_global_stats: true 2944 | } 2945 | } 2946 | layer { 2947 | name: "scale_7_3_linear" 2948 | type: "Scale" 2949 | bottom: "conv_7_3_linear" 2950 | top: "conv_7_3_linear" 2951 | scale_param { 2952 | bias_term: true 2953 | } 2954 | } 2955 | layer { 2956 | name: "add_7_3" 2957 | type: "Eltwise" 2958 | bottom: "add_7_2" 2959 | bottom: "conv_7_3_linear" 2960 | top: "add_7_3" 2961 | } 2962 | layer { 2963 | name: "conv_8_1_pw" 2964 | type: "Convolution" 2965 | bottom: "add_7_3" 2966 | top: "conv_8_1_pw" 2967 | param { 2968 | lr_mult: 1.0 2969 | decay_mult: 1.0 2970 | } 2971 | convolution_param { 2972 | num_output: 336 2973 | bias_term: false 2974 | pad: 0 2975 | kernel_size: 1 2976 | stride: 1 2977 | weight_filler { 2978 | type: "msra" 2979 | } 2980 | bias_filler { 2981 | type: "constant" 2982 | value: 0.0 2983 | } 2984 | } 2985 | } 2986 | layer { 2987 | name: "bn_8_1_pw" 2988 | type: "BatchNorm" 2989 | bottom: "conv_8_1_pw" 2990 | top: "conv_8_1_pw" 2991 | param { 2992 | lr_mult: 0.0 2993 | decay_mult: 0.0 2994 | } 2995 | param { 2996 | lr_mult: 0.0 2997 | decay_mult: 0.0 2998 | } 2999 | param { 3000 | lr_mult: 0.0 3001 | decay_mult: 0.0 3002 | } 3003 | batch_norm_param { 3004 | use_global_stats: true 3005 | } 3006 | } 3007 | layer { 3008 | name: "scale_8_1_pw" 3009 | type: "Scale" 3010 | bottom: "conv_8_1_pw" 3011 | top: "conv_8_1_pw" 3012 | scale_param { 3013 | bias_term: true 3014 | } 3015 | } 3016 | layer { 3017 | name: "relu_8_1_pw" 3018 | type: "ReLU" 3019 | bottom: "conv_8_1_pw" 3020 | top: "conv_8_1_pw" 3021 | } 3022 | layer { 3023 | name: "conv_8_1_dw" 3024 | type: "Convolution" 3025 | bottom: "conv_8_1_pw" 3026 | top: "conv_8_1_dw" 3027 | param { 3028 | lr_mult: 1.0 3029 | decay_mult: 1.0 3030 | } 3031 | convolution_param { 3032 | num_output: 336 3033 | bias_term: false 3034 | pad: 1 3035 | kernel_size: 3 3036 | group: 336 3037 | stride: 1 3038 | weight_filler { 3039 | type: "msra" 3040 | } 3041 | bias_filler { 3042 | type: "constant" 3043 | value: 0.0 3044 | } 3045 | engine: CAFFE 3046 | } 3047 | } 3048 | layer { 3049 | name: "bn_8_1_dw" 3050 | type: "BatchNorm" 3051 | bottom: "conv_8_1_dw" 3052 | top: "conv_8_1_dw" 3053 | param { 3054 | lr_mult: 0.0 3055 | decay_mult: 0.0 3056 | } 3057 | param { 3058 | lr_mult: 0.0 3059 | decay_mult: 0.0 3060 | } 3061 | param { 3062 | lr_mult: 0.0 3063 | decay_mult: 0.0 3064 | } 3065 | batch_norm_param { 3066 | use_global_stats: true 3067 | } 3068 | } 3069 | layer { 3070 | name: "scale_8_1_dw" 3071 | type: "Scale" 3072 | bottom: "conv_8_1_dw" 3073 | top: "conv_8_1_dw" 3074 | scale_param { 3075 | bias_term: true 3076 | } 3077 | } 3078 | layer { 3079 | name: "relu_8_1_dw" 3080 | type: "ReLU" 3081 | bottom: "conv_8_1_dw" 3082 | top: "conv_8_1_dw" 3083 | } 3084 | layer { 3085 | name: "conv_8_1_linear" 3086 | type: "Convolution" 3087 | bottom: "conv_8_1_dw" 3088 | top: "conv_8_1_linear" 3089 | param { 3090 | lr_mult: 1.0 3091 | decay_mult: 1.0 3092 | } 3093 | convolution_param { 3094 | num_output: 112 3095 | bias_term: false 3096 | pad: 0 3097 | kernel_size: 1 3098 | stride: 1 3099 | weight_filler { 3100 | type: "msra" 3101 | } 3102 | bias_filler { 3103 | type: "constant" 3104 | value: 0.0 3105 | } 3106 | } 3107 | } 3108 | layer { 3109 | name: "bn_8_1_linear" 3110 | type: "BatchNorm" 3111 | bottom: "conv_8_1_linear" 3112 | top: "conv_8_1_linear" 3113 | param { 3114 | lr_mult: 0.0 3115 | decay_mult: 0.0 3116 | } 3117 | param { 3118 | lr_mult: 0.0 3119 | decay_mult: 0.0 3120 | } 3121 | param { 3122 | lr_mult: 0.0 3123 | decay_mult: 0.0 3124 | } 3125 | batch_norm_param { 3126 | use_global_stats: true 3127 | } 3128 | } 3129 | layer { 3130 | name: "scale_8_1_linear" 3131 | type: "Scale" 3132 | bottom: "conv_8_1_linear" 3133 | top: "conv_8_1_linear" 3134 | scale_param { 3135 | bias_term: true 3136 | } 3137 | } 3138 | layer { 3139 | name: "conv_conv9" 3140 | type: "Convolution" 3141 | bottom: "conv_8_1_linear" 3142 | top: "conv_conv9" 3143 | param { 3144 | lr_mult: 1.0 3145 | decay_mult: 1.0 3146 | } 3147 | convolution_param { 3148 | num_output: 1280 3149 | bias_term: true 3150 | pad: 0 3151 | kernel_size: 1 3152 | stride: 1 3153 | weight_filler { 3154 | type: "msra" 3155 | } 3156 | bias_filler { 3157 | type: "constant" 3158 | value: 0.0 3159 | } 3160 | } 3161 | } 3162 | layer { 3163 | name: "bn_conv9" 3164 | type: "BatchNorm" 3165 | bottom: "conv_conv9" 3166 | top: "conv_conv9" 3167 | param { 3168 | lr_mult: 0.0 3169 | decay_mult: 0.0 3170 | } 3171 | param { 3172 | lr_mult: 0.0 3173 | decay_mult: 0.0 3174 | } 3175 | param { 3176 | lr_mult: 0.0 3177 | decay_mult: 0.0 3178 | } 3179 | batch_norm_param { 3180 | use_global_stats: true 3181 | } 3182 | } 3183 | layer { 3184 | name: "scale_conv9" 3185 | type: "Scale" 3186 | bottom: "conv_conv9" 3187 | top: "conv_conv9" 3188 | scale_param { 3189 | bias_term: true 3190 | } 3191 | } 3192 | layer { 3193 | name: "relu_conv9" 3194 | type: "ReLU" 3195 | bottom: "conv_conv9" 3196 | top: "conv_conv9" 3197 | } 3198 | layer { 3199 | name: "pool9" 3200 | type: "Pooling" 3201 | bottom: "conv_conv9" 3202 | top: "pool9" 3203 | pooling_param { 3204 | pool: AVE 3205 | stride: 1 3206 | global_pooling: true 3207 | } 3208 | } 3209 | layer { 3210 | name: "conv10" 3211 | type: "Convolution" 3212 | bottom: "pool9" 3213 | top: "conv10" 3214 | param { 3215 | lr_mult: 1.0 3216 | decay_mult: 1.0 3217 | } 3218 | convolution_param { 3219 | num_output: 1000 3220 | pad: 0 3221 | kernel_size: 1 3222 | stride: 1 3223 | weight_filler { 3224 | type: "msra" 3225 | } 3226 | bias_filler { 3227 | type: "constant" 3228 | value: 0.0 3229 | } 3230 | } 3231 | } 3232 | layer { 3233 | name: "loss" 3234 | type: "SoftmaxWithLoss" 3235 | bottom: "conv10" 3236 | bottom: "label" 3237 | top: "loss" 3238 | } 3239 | 3240 | -------------------------------------------------------------------------------- /mobilenetv2-0.5/test.prototxt: -------------------------------------------------------------------------------- 1 | layer { 2 | name: "data" 3 | type: "MemoryData" 4 | top: "data" 5 | top: "label" 6 | transform_param { 7 | crop_size: 224 8 | } 9 | memory_data_param { 10 | batch_size: 1 11 | channels: 3 12 | height: 224 13 | width: 224 14 | } 15 | } 16 | layer { 17 | name: "conv_1_1" 18 | type: "Convolution" 19 | bottom: "data" 20 | top: "conv_1_1" 21 | param { 22 | lr_mult: 1.0 23 | decay_mult: 1.0 24 | } 25 | convolution_param { 26 | num_output: 16 27 | bias_term: true 28 | pad: 1 29 | kernel_size: 3 30 | stride: 2 31 | weight_filler { 32 | type: "msra" 33 | } 34 | bias_filler { 35 | type: "constant" 36 | value: 0.0 37 | } 38 | } 39 | } 40 | layer { 41 | name: "bn_1_1" 42 | type: "BatchNorm" 43 | bottom: "conv_1_1" 44 | top: "conv_1_1" 45 | param { 46 | lr_mult: 0.0 47 | decay_mult: 0.0 48 | } 49 | param { 50 | lr_mult: 0.0 51 | decay_mult: 0.0 52 | } 53 | param { 54 | lr_mult: 0.0 55 | decay_mult: 0.0 56 | } 57 | batch_norm_param { 58 | use_global_stats: true 59 | } 60 | } 61 | layer { 62 | name: "scale_1_1" 63 | type: "Scale" 64 | bottom: "conv_1_1" 65 | top: "conv_1_1" 66 | scale_param { 67 | bias_term: true 68 | } 69 | } 70 | layer { 71 | name: "relu_1_1" 72 | type: "ReLU" 73 | bottom: "conv_1_1" 74 | top: "conv_1_1" 75 | } 76 | layer { 77 | name: "conv_2_1_pw" 78 | type: "Convolution" 79 | bottom: "conv_1_1" 80 | top: "conv_2_1_pw" 81 | param { 82 | lr_mult: 1.0 83 | decay_mult: 1.0 84 | } 85 | convolution_param { 86 | num_output: 16 87 | bias_term: false 88 | pad: 0 89 | kernel_size: 1 90 | stride: 1 91 | weight_filler { 92 | type: "msra" 93 | } 94 | bias_filler { 95 | type: "constant" 96 | value: 0.0 97 | } 98 | } 99 | } 100 | layer { 101 | name: "bn_2_1_pw" 102 | type: "BatchNorm" 103 | bottom: "conv_2_1_pw" 104 | top: "conv_2_1_pw" 105 | param { 106 | lr_mult: 0.0 107 | decay_mult: 0.0 108 | } 109 | param { 110 | lr_mult: 0.0 111 | decay_mult: 0.0 112 | } 113 | param { 114 | lr_mult: 0.0 115 | decay_mult: 0.0 116 | } 117 | batch_norm_param { 118 | use_global_stats: true 119 | } 120 | } 121 | layer { 122 | name: "scale_2_1_pw" 123 | type: "Scale" 124 | bottom: "conv_2_1_pw" 125 | top: "conv_2_1_pw" 126 | scale_param { 127 | bias_term: true 128 | } 129 | } 130 | layer { 131 | name: "relu_2_1_pw" 132 | type: "ReLU" 133 | bottom: "conv_2_1_pw" 134 | top: "conv_2_1_pw" 135 | } 136 | layer { 137 | name: "conv_2_1_dw" 138 | type: "Convolution" 139 | bottom: "conv_2_1_pw" 140 | top: "conv_2_1_dw" 141 | param { 142 | lr_mult: 1.0 143 | decay_mult: 1.0 144 | } 145 | convolution_param { 146 | num_output: 16 147 | bias_term: false 148 | pad: 1 149 | kernel_size: 3 150 | group: 16 151 | stride: 1 152 | weight_filler { 153 | type: "msra" 154 | } 155 | bias_filler { 156 | type: "constant" 157 | value: 0.0 158 | } 159 | engine: CAFFE 160 | } 161 | } 162 | layer { 163 | name: "bn_2_1_dw" 164 | type: "BatchNorm" 165 | bottom: "conv_2_1_dw" 166 | top: "conv_2_1_dw" 167 | param { 168 | lr_mult: 0.0 169 | decay_mult: 0.0 170 | } 171 | param { 172 | lr_mult: 0.0 173 | decay_mult: 0.0 174 | } 175 | param { 176 | lr_mult: 0.0 177 | decay_mult: 0.0 178 | } 179 | batch_norm_param { 180 | use_global_stats: true 181 | } 182 | } 183 | layer { 184 | name: "scale_2_1_dw" 185 | type: "Scale" 186 | bottom: "conv_2_1_dw" 187 | top: "conv_2_1_dw" 188 | scale_param { 189 | bias_term: true 190 | } 191 | } 192 | layer { 193 | name: "relu_2_1_dw" 194 | type: "ReLU" 195 | bottom: "conv_2_1_dw" 196 | top: "conv_2_1_dw" 197 | } 198 | layer { 199 | name: "conv_2_1_linear" 200 | type: "Convolution" 201 | bottom: "conv_2_1_dw" 202 | top: "conv_2_1_linear" 203 | param { 204 | lr_mult: 1.0 205 | decay_mult: 1.0 206 | } 207 | convolution_param { 208 | num_output: 8 209 | bias_term: false 210 | pad: 0 211 | kernel_size: 1 212 | stride: 1 213 | weight_filler { 214 | type: "msra" 215 | } 216 | bias_filler { 217 | type: "constant" 218 | value: 0.0 219 | } 220 | } 221 | } 222 | layer { 223 | name: "bn_2_1_linear" 224 | type: "BatchNorm" 225 | bottom: "conv_2_1_linear" 226 | top: "conv_2_1_linear" 227 | param { 228 | lr_mult: 0.0 229 | decay_mult: 0.0 230 | } 231 | param { 232 | lr_mult: 0.0 233 | decay_mult: 0.0 234 | } 235 | param { 236 | lr_mult: 0.0 237 | decay_mult: 0.0 238 | } 239 | batch_norm_param { 240 | use_global_stats: true 241 | } 242 | } 243 | layer { 244 | name: "scale_2_1_linear" 245 | type: "Scale" 246 | bottom: "conv_2_1_linear" 247 | top: "conv_2_1_linear" 248 | scale_param { 249 | bias_term: true 250 | } 251 | } 252 | layer { 253 | name: "conv_3_1_pw" 254 | type: "Convolution" 255 | bottom: "conv_2_1_linear" 256 | top: "conv_3_1_pw" 257 | param { 258 | lr_mult: 1.0 259 | decay_mult: 1.0 260 | } 261 | convolution_param { 262 | num_output: 48 263 | bias_term: false 264 | pad: 0 265 | kernel_size: 1 266 | stride: 1 267 | weight_filler { 268 | type: "msra" 269 | } 270 | bias_filler { 271 | type: "constant" 272 | value: 0.0 273 | } 274 | } 275 | } 276 | layer { 277 | name: "bn_3_1_pw" 278 | type: "BatchNorm" 279 | bottom: "conv_3_1_pw" 280 | top: "conv_3_1_pw" 281 | param { 282 | lr_mult: 0.0 283 | decay_mult: 0.0 284 | } 285 | param { 286 | lr_mult: 0.0 287 | decay_mult: 0.0 288 | } 289 | param { 290 | lr_mult: 0.0 291 | decay_mult: 0.0 292 | } 293 | batch_norm_param { 294 | use_global_stats: true 295 | } 296 | } 297 | layer { 298 | name: "scale_3_1_pw" 299 | type: "Scale" 300 | bottom: "conv_3_1_pw" 301 | top: "conv_3_1_pw" 302 | scale_param { 303 | bias_term: true 304 | } 305 | } 306 | layer { 307 | name: "relu_3_1_pw" 308 | type: "ReLU" 309 | bottom: "conv_3_1_pw" 310 | top: "conv_3_1_pw" 311 | } 312 | layer { 313 | name: "conv_3_1_dw" 314 | type: "Convolution" 315 | bottom: "conv_3_1_pw" 316 | top: "conv_3_1_dw" 317 | param { 318 | lr_mult: 1.0 319 | decay_mult: 1.0 320 | } 321 | convolution_param { 322 | num_output: 48 323 | bias_term: false 324 | pad: 1 325 | kernel_size: 3 326 | group: 48 327 | stride: 2 328 | weight_filler { 329 | type: "msra" 330 | } 331 | bias_filler { 332 | type: "constant" 333 | value: 0.0 334 | } 335 | engine: CAFFE 336 | } 337 | } 338 | layer { 339 | name: "bn_3_1_dw" 340 | type: "BatchNorm" 341 | bottom: "conv_3_1_dw" 342 | top: "conv_3_1_dw" 343 | param { 344 | lr_mult: 0.0 345 | decay_mult: 0.0 346 | } 347 | param { 348 | lr_mult: 0.0 349 | decay_mult: 0.0 350 | } 351 | param { 352 | lr_mult: 0.0 353 | decay_mult: 0.0 354 | } 355 | batch_norm_param { 356 | use_global_stats: true 357 | } 358 | } 359 | layer { 360 | name: "scale_3_1_dw" 361 | type: "Scale" 362 | bottom: "conv_3_1_dw" 363 | top: "conv_3_1_dw" 364 | scale_param { 365 | bias_term: true 366 | } 367 | } 368 | layer { 369 | name: "relu_3_1_dw" 370 | type: "ReLU" 371 | bottom: "conv_3_1_dw" 372 | top: "conv_3_1_dw" 373 | } 374 | layer { 375 | name: "conv_3_1_linear" 376 | type: "Convolution" 377 | bottom: "conv_3_1_dw" 378 | top: "conv_3_1_linear" 379 | param { 380 | lr_mult: 1.0 381 | decay_mult: 1.0 382 | } 383 | convolution_param { 384 | num_output: 16 385 | bias_term: false 386 | pad: 0 387 | kernel_size: 1 388 | stride: 1 389 | weight_filler { 390 | type: "msra" 391 | } 392 | bias_filler { 393 | type: "constant" 394 | value: 0.0 395 | } 396 | } 397 | } 398 | layer { 399 | name: "bn_3_1_linear" 400 | type: "BatchNorm" 401 | bottom: "conv_3_1_linear" 402 | top: "conv_3_1_linear" 403 | param { 404 | lr_mult: 0.0 405 | decay_mult: 0.0 406 | } 407 | param { 408 | lr_mult: 0.0 409 | decay_mult: 0.0 410 | } 411 | param { 412 | lr_mult: 0.0 413 | decay_mult: 0.0 414 | } 415 | batch_norm_param { 416 | use_global_stats: true 417 | } 418 | } 419 | layer { 420 | name: "scale_3_1_linear" 421 | type: "Scale" 422 | bottom: "conv_3_1_linear" 423 | top: "conv_3_1_linear" 424 | scale_param { 425 | bias_term: true 426 | } 427 | } 428 | layer { 429 | name: "conv_3_2_pw" 430 | type: "Convolution" 431 | bottom: "conv_3_1_linear" 432 | top: "conv_3_2_pw" 433 | param { 434 | lr_mult: 1.0 435 | decay_mult: 1.0 436 | } 437 | convolution_param { 438 | num_output: 96 439 | bias_term: false 440 | pad: 0 441 | kernel_size: 1 442 | stride: 1 443 | weight_filler { 444 | type: "msra" 445 | } 446 | bias_filler { 447 | type: "constant" 448 | value: 0.0 449 | } 450 | } 451 | } 452 | layer { 453 | name: "bn_3_2_pw" 454 | type: "BatchNorm" 455 | bottom: "conv_3_2_pw" 456 | top: "conv_3_2_pw" 457 | param { 458 | lr_mult: 0.0 459 | decay_mult: 0.0 460 | } 461 | param { 462 | lr_mult: 0.0 463 | decay_mult: 0.0 464 | } 465 | param { 466 | lr_mult: 0.0 467 | decay_mult: 0.0 468 | } 469 | batch_norm_param { 470 | use_global_stats: true 471 | } 472 | } 473 | layer { 474 | name: "scale_3_2_pw" 475 | type: "Scale" 476 | bottom: "conv_3_2_pw" 477 | top: "conv_3_2_pw" 478 | scale_param { 479 | bias_term: true 480 | } 481 | } 482 | layer { 483 | name: "relu_3_2_pw" 484 | type: "ReLU" 485 | bottom: "conv_3_2_pw" 486 | top: "conv_3_2_pw" 487 | } 488 | layer { 489 | name: "conv_3_2_dw" 490 | type: "Convolution" 491 | bottom: "conv_3_2_pw" 492 | top: "conv_3_2_dw" 493 | param { 494 | lr_mult: 1.0 495 | decay_mult: 1.0 496 | } 497 | convolution_param { 498 | num_output: 96 499 | bias_term: false 500 | pad: 1 501 | kernel_size: 3 502 | group: 96 503 | stride: 1 504 | weight_filler { 505 | type: "msra" 506 | } 507 | bias_filler { 508 | type: "constant" 509 | value: 0.0 510 | } 511 | engine: CAFFE 512 | } 513 | } 514 | layer { 515 | name: "bn_3_2_dw" 516 | type: "BatchNorm" 517 | bottom: "conv_3_2_dw" 518 | top: "conv_3_2_dw" 519 | param { 520 | lr_mult: 0.0 521 | decay_mult: 0.0 522 | } 523 | param { 524 | lr_mult: 0.0 525 | decay_mult: 0.0 526 | } 527 | param { 528 | lr_mult: 0.0 529 | decay_mult: 0.0 530 | } 531 | batch_norm_param { 532 | use_global_stats: true 533 | } 534 | } 535 | layer { 536 | name: "scale_3_2_dw" 537 | type: "Scale" 538 | bottom: "conv_3_2_dw" 539 | top: "conv_3_2_dw" 540 | scale_param { 541 | bias_term: true 542 | } 543 | } 544 | layer { 545 | name: "relu_3_2_dw" 546 | type: "ReLU" 547 | bottom: "conv_3_2_dw" 548 | top: "conv_3_2_dw" 549 | } 550 | layer { 551 | name: "conv_3_2_linear" 552 | type: "Convolution" 553 | bottom: "conv_3_2_dw" 554 | top: "conv_3_2_linear" 555 | param { 556 | lr_mult: 1.0 557 | decay_mult: 1.0 558 | } 559 | convolution_param { 560 | num_output: 16 561 | bias_term: false 562 | pad: 0 563 | kernel_size: 1 564 | stride: 1 565 | weight_filler { 566 | type: "msra" 567 | } 568 | bias_filler { 569 | type: "constant" 570 | value: 0.0 571 | } 572 | } 573 | } 574 | layer { 575 | name: "bn_3_2_linear" 576 | type: "BatchNorm" 577 | bottom: "conv_3_2_linear" 578 | top: "conv_3_2_linear" 579 | param { 580 | lr_mult: 0.0 581 | decay_mult: 0.0 582 | } 583 | param { 584 | lr_mult: 0.0 585 | decay_mult: 0.0 586 | } 587 | param { 588 | lr_mult: 0.0 589 | decay_mult: 0.0 590 | } 591 | batch_norm_param { 592 | use_global_stats: true 593 | } 594 | } 595 | layer { 596 | name: "scale_3_2_linear" 597 | type: "Scale" 598 | bottom: "conv_3_2_linear" 599 | top: "conv_3_2_linear" 600 | scale_param { 601 | bias_term: true 602 | } 603 | } 604 | layer { 605 | name: "add_3_2" 606 | type: "Eltwise" 607 | bottom: "conv_3_1_linear" 608 | bottom: "conv_3_2_linear" 609 | top: "add_3_2" 610 | } 611 | layer { 612 | name: "conv_4_1_pw" 613 | type: "Convolution" 614 | bottom: "add_3_2" 615 | top: "conv_4_1_pw" 616 | param { 617 | lr_mult: 1.0 618 | decay_mult: 1.0 619 | } 620 | convolution_param { 621 | num_output: 96 622 | bias_term: false 623 | pad: 0 624 | kernel_size: 1 625 | stride: 1 626 | weight_filler { 627 | type: "msra" 628 | } 629 | bias_filler { 630 | type: "constant" 631 | value: 0.0 632 | } 633 | } 634 | } 635 | layer { 636 | name: "bn_4_1_pw" 637 | type: "BatchNorm" 638 | bottom: "conv_4_1_pw" 639 | top: "conv_4_1_pw" 640 | param { 641 | lr_mult: 0.0 642 | decay_mult: 0.0 643 | } 644 | param { 645 | lr_mult: 0.0 646 | decay_mult: 0.0 647 | } 648 | param { 649 | lr_mult: 0.0 650 | decay_mult: 0.0 651 | } 652 | batch_norm_param { 653 | use_global_stats: true 654 | } 655 | } 656 | layer { 657 | name: "scale_4_1_pw" 658 | type: "Scale" 659 | bottom: "conv_4_1_pw" 660 | top: "conv_4_1_pw" 661 | scale_param { 662 | bias_term: true 663 | } 664 | } 665 | layer { 666 | name: "relu_4_1_pw" 667 | type: "ReLU" 668 | bottom: "conv_4_1_pw" 669 | top: "conv_4_1_pw" 670 | } 671 | layer { 672 | name: "conv_4_1_dw" 673 | type: "Convolution" 674 | bottom: "conv_4_1_pw" 675 | top: "conv_4_1_dw" 676 | param { 677 | lr_mult: 1.0 678 | decay_mult: 1.0 679 | } 680 | convolution_param { 681 | num_output: 96 682 | bias_term: false 683 | pad: 1 684 | kernel_size: 3 685 | group: 96 686 | stride: 2 687 | weight_filler { 688 | type: "msra" 689 | } 690 | bias_filler { 691 | type: "constant" 692 | value: 0.0 693 | } 694 | engine: CAFFE 695 | } 696 | } 697 | layer { 698 | name: "bn_4_1_dw" 699 | type: "BatchNorm" 700 | bottom: "conv_4_1_dw" 701 | top: "conv_4_1_dw" 702 | param { 703 | lr_mult: 0.0 704 | decay_mult: 0.0 705 | } 706 | param { 707 | lr_mult: 0.0 708 | decay_mult: 0.0 709 | } 710 | param { 711 | lr_mult: 0.0 712 | decay_mult: 0.0 713 | } 714 | batch_norm_param { 715 | use_global_stats: true 716 | } 717 | } 718 | layer { 719 | name: "scale_4_1_dw" 720 | type: "Scale" 721 | bottom: "conv_4_1_dw" 722 | top: "conv_4_1_dw" 723 | scale_param { 724 | bias_term: true 725 | } 726 | } 727 | layer { 728 | name: "relu_4_1_dw" 729 | type: "ReLU" 730 | bottom: "conv_4_1_dw" 731 | top: "conv_4_1_dw" 732 | } 733 | layer { 734 | name: "conv_4_1_linear" 735 | type: "Convolution" 736 | bottom: "conv_4_1_dw" 737 | top: "conv_4_1_linear" 738 | param { 739 | lr_mult: 1.0 740 | decay_mult: 1.0 741 | } 742 | convolution_param { 743 | num_output: 16 744 | bias_term: false 745 | pad: 0 746 | kernel_size: 1 747 | stride: 1 748 | weight_filler { 749 | type: "msra" 750 | } 751 | bias_filler { 752 | type: "constant" 753 | value: 0.0 754 | } 755 | } 756 | } 757 | layer { 758 | name: "bn_4_1_linear" 759 | type: "BatchNorm" 760 | bottom: "conv_4_1_linear" 761 | top: "conv_4_1_linear" 762 | param { 763 | lr_mult: 0.0 764 | decay_mult: 0.0 765 | } 766 | param { 767 | lr_mult: 0.0 768 | decay_mult: 0.0 769 | } 770 | param { 771 | lr_mult: 0.0 772 | decay_mult: 0.0 773 | } 774 | batch_norm_param { 775 | use_global_stats: true 776 | } 777 | } 778 | layer { 779 | name: "scale_4_1_linear" 780 | type: "Scale" 781 | bottom: "conv_4_1_linear" 782 | top: "conv_4_1_linear" 783 | scale_param { 784 | bias_term: true 785 | } 786 | } 787 | layer { 788 | name: "conv_4_2_pw" 789 | type: "Convolution" 790 | bottom: "conv_4_1_linear" 791 | top: "conv_4_2_pw" 792 | param { 793 | lr_mult: 1.0 794 | decay_mult: 1.0 795 | } 796 | convolution_param { 797 | num_output: 96 798 | bias_term: false 799 | pad: 0 800 | kernel_size: 1 801 | stride: 1 802 | weight_filler { 803 | type: "msra" 804 | } 805 | bias_filler { 806 | type: "constant" 807 | value: 0.0 808 | } 809 | } 810 | } 811 | layer { 812 | name: "bn_4_2_pw" 813 | type: "BatchNorm" 814 | bottom: "conv_4_2_pw" 815 | top: "conv_4_2_pw" 816 | param { 817 | lr_mult: 0.0 818 | decay_mult: 0.0 819 | } 820 | param { 821 | lr_mult: 0.0 822 | decay_mult: 0.0 823 | } 824 | param { 825 | lr_mult: 0.0 826 | decay_mult: 0.0 827 | } 828 | batch_norm_param { 829 | use_global_stats: true 830 | } 831 | } 832 | layer { 833 | name: "scale_4_2_pw" 834 | type: "Scale" 835 | bottom: "conv_4_2_pw" 836 | top: "conv_4_2_pw" 837 | scale_param { 838 | bias_term: true 839 | } 840 | } 841 | layer { 842 | name: "relu_4_2_pw" 843 | type: "ReLU" 844 | bottom: "conv_4_2_pw" 845 | top: "conv_4_2_pw" 846 | } 847 | layer { 848 | name: "conv_4_2_dw" 849 | type: "Convolution" 850 | bottom: "conv_4_2_pw" 851 | top: "conv_4_2_dw" 852 | param { 853 | lr_mult: 1.0 854 | decay_mult: 1.0 855 | } 856 | convolution_param { 857 | num_output: 96 858 | bias_term: false 859 | pad: 1 860 | kernel_size: 3 861 | group: 96 862 | stride: 1 863 | weight_filler { 864 | type: "msra" 865 | } 866 | bias_filler { 867 | type: "constant" 868 | value: 0.0 869 | } 870 | engine: CAFFE 871 | } 872 | } 873 | layer { 874 | name: "bn_4_2_dw" 875 | type: "BatchNorm" 876 | bottom: "conv_4_2_dw" 877 | top: "conv_4_2_dw" 878 | param { 879 | lr_mult: 0.0 880 | decay_mult: 0.0 881 | } 882 | param { 883 | lr_mult: 0.0 884 | decay_mult: 0.0 885 | } 886 | param { 887 | lr_mult: 0.0 888 | decay_mult: 0.0 889 | } 890 | batch_norm_param { 891 | use_global_stats: true 892 | } 893 | } 894 | layer { 895 | name: "scale_4_2_dw" 896 | type: "Scale" 897 | bottom: "conv_4_2_dw" 898 | top: "conv_4_2_dw" 899 | scale_param { 900 | bias_term: true 901 | } 902 | } 903 | layer { 904 | name: "relu_4_2_dw" 905 | type: "ReLU" 906 | bottom: "conv_4_2_dw" 907 | top: "conv_4_2_dw" 908 | } 909 | layer { 910 | name: "conv_4_2_linear" 911 | type: "Convolution" 912 | bottom: "conv_4_2_dw" 913 | top: "conv_4_2_linear" 914 | param { 915 | lr_mult: 1.0 916 | decay_mult: 1.0 917 | } 918 | convolution_param { 919 | num_output: 16 920 | bias_term: false 921 | pad: 0 922 | kernel_size: 1 923 | stride: 1 924 | weight_filler { 925 | type: "msra" 926 | } 927 | bias_filler { 928 | type: "constant" 929 | value: 0.0 930 | } 931 | } 932 | } 933 | layer { 934 | name: "bn_4_2_linear" 935 | type: "BatchNorm" 936 | bottom: "conv_4_2_linear" 937 | top: "conv_4_2_linear" 938 | param { 939 | lr_mult: 0.0 940 | decay_mult: 0.0 941 | } 942 | param { 943 | lr_mult: 0.0 944 | decay_mult: 0.0 945 | } 946 | param { 947 | lr_mult: 0.0 948 | decay_mult: 0.0 949 | } 950 | batch_norm_param { 951 | use_global_stats: true 952 | } 953 | } 954 | layer { 955 | name: "scale_4_2_linear" 956 | type: "Scale" 957 | bottom: "conv_4_2_linear" 958 | top: "conv_4_2_linear" 959 | scale_param { 960 | bias_term: true 961 | } 962 | } 963 | layer { 964 | name: "add_4_2" 965 | type: "Eltwise" 966 | bottom: "conv_4_1_linear" 967 | bottom: "conv_4_2_linear" 968 | top: "add_4_2" 969 | } 970 | layer { 971 | name: "conv_4_3_pw" 972 | type: "Convolution" 973 | bottom: "add_4_2" 974 | top: "conv_4_3_pw" 975 | param { 976 | lr_mult: 1.0 977 | decay_mult: 1.0 978 | } 979 | convolution_param { 980 | num_output: 96 981 | bias_term: false 982 | pad: 0 983 | kernel_size: 1 984 | stride: 1 985 | weight_filler { 986 | type: "msra" 987 | } 988 | bias_filler { 989 | type: "constant" 990 | value: 0.0 991 | } 992 | } 993 | } 994 | layer { 995 | name: "bn_4_3_pw" 996 | type: "BatchNorm" 997 | bottom: "conv_4_3_pw" 998 | top: "conv_4_3_pw" 999 | param { 1000 | lr_mult: 0.0 1001 | decay_mult: 0.0 1002 | } 1003 | param { 1004 | lr_mult: 0.0 1005 | decay_mult: 0.0 1006 | } 1007 | param { 1008 | lr_mult: 0.0 1009 | decay_mult: 0.0 1010 | } 1011 | batch_norm_param { 1012 | use_global_stats: true 1013 | } 1014 | } 1015 | layer { 1016 | name: "scale_4_3_pw" 1017 | type: "Scale" 1018 | bottom: "conv_4_3_pw" 1019 | top: "conv_4_3_pw" 1020 | scale_param { 1021 | bias_term: true 1022 | } 1023 | } 1024 | layer { 1025 | name: "relu_4_3_pw" 1026 | type: "ReLU" 1027 | bottom: "conv_4_3_pw" 1028 | top: "conv_4_3_pw" 1029 | } 1030 | layer { 1031 | name: "conv_4_3_dw" 1032 | type: "Convolution" 1033 | bottom: "conv_4_3_pw" 1034 | top: "conv_4_3_dw" 1035 | param { 1036 | lr_mult: 1.0 1037 | decay_mult: 1.0 1038 | } 1039 | convolution_param { 1040 | num_output: 96 1041 | bias_term: false 1042 | pad: 1 1043 | kernel_size: 3 1044 | group: 96 1045 | stride: 1 1046 | weight_filler { 1047 | type: "msra" 1048 | } 1049 | bias_filler { 1050 | type: "constant" 1051 | value: 0.0 1052 | } 1053 | engine: CAFFE 1054 | } 1055 | } 1056 | layer { 1057 | name: "bn_4_3_dw" 1058 | type: "BatchNorm" 1059 | bottom: "conv_4_3_dw" 1060 | top: "conv_4_3_dw" 1061 | param { 1062 | lr_mult: 0.0 1063 | decay_mult: 0.0 1064 | } 1065 | param { 1066 | lr_mult: 0.0 1067 | decay_mult: 0.0 1068 | } 1069 | param { 1070 | lr_mult: 0.0 1071 | decay_mult: 0.0 1072 | } 1073 | batch_norm_param { 1074 | use_global_stats: true 1075 | } 1076 | } 1077 | layer { 1078 | name: "scale_4_3_dw" 1079 | type: "Scale" 1080 | bottom: "conv_4_3_dw" 1081 | top: "conv_4_3_dw" 1082 | scale_param { 1083 | bias_term: true 1084 | } 1085 | } 1086 | layer { 1087 | name: "relu_4_3_dw" 1088 | type: "ReLU" 1089 | bottom: "conv_4_3_dw" 1090 | top: "conv_4_3_dw" 1091 | } 1092 | layer { 1093 | name: "conv_4_3_linear" 1094 | type: "Convolution" 1095 | bottom: "conv_4_3_dw" 1096 | top: "conv_4_3_linear" 1097 | param { 1098 | lr_mult: 1.0 1099 | decay_mult: 1.0 1100 | } 1101 | convolution_param { 1102 | num_output: 16 1103 | bias_term: false 1104 | pad: 0 1105 | kernel_size: 1 1106 | stride: 1 1107 | weight_filler { 1108 | type: "msra" 1109 | } 1110 | bias_filler { 1111 | type: "constant" 1112 | value: 0.0 1113 | } 1114 | } 1115 | } 1116 | layer { 1117 | name: "bn_4_3_linear" 1118 | type: "BatchNorm" 1119 | bottom: "conv_4_3_linear" 1120 | top: "conv_4_3_linear" 1121 | param { 1122 | lr_mult: 0.0 1123 | decay_mult: 0.0 1124 | } 1125 | param { 1126 | lr_mult: 0.0 1127 | decay_mult: 0.0 1128 | } 1129 | param { 1130 | lr_mult: 0.0 1131 | decay_mult: 0.0 1132 | } 1133 | batch_norm_param { 1134 | use_global_stats: true 1135 | } 1136 | } 1137 | layer { 1138 | name: "scale_4_3_linear" 1139 | type: "Scale" 1140 | bottom: "conv_4_3_linear" 1141 | top: "conv_4_3_linear" 1142 | scale_param { 1143 | bias_term: true 1144 | } 1145 | } 1146 | layer { 1147 | name: "add_4_3" 1148 | type: "Eltwise" 1149 | bottom: "add_4_2" 1150 | bottom: "conv_4_3_linear" 1151 | top: "add_4_3" 1152 | } 1153 | layer { 1154 | name: "conv_5_1_pw" 1155 | type: "Convolution" 1156 | bottom: "add_4_3" 1157 | top: "conv_5_1_pw" 1158 | param { 1159 | lr_mult: 1.0 1160 | decay_mult: 1.0 1161 | } 1162 | convolution_param { 1163 | num_output: 96 1164 | bias_term: false 1165 | pad: 0 1166 | kernel_size: 1 1167 | stride: 1 1168 | weight_filler { 1169 | type: "msra" 1170 | } 1171 | bias_filler { 1172 | type: "constant" 1173 | value: 0.0 1174 | } 1175 | } 1176 | } 1177 | layer { 1178 | name: "bn_5_1_pw" 1179 | type: "BatchNorm" 1180 | bottom: "conv_5_1_pw" 1181 | top: "conv_5_1_pw" 1182 | param { 1183 | lr_mult: 0.0 1184 | decay_mult: 0.0 1185 | } 1186 | param { 1187 | lr_mult: 0.0 1188 | decay_mult: 0.0 1189 | } 1190 | param { 1191 | lr_mult: 0.0 1192 | decay_mult: 0.0 1193 | } 1194 | batch_norm_param { 1195 | use_global_stats: true 1196 | } 1197 | } 1198 | layer { 1199 | name: "scale_5_1_pw" 1200 | type: "Scale" 1201 | bottom: "conv_5_1_pw" 1202 | top: "conv_5_1_pw" 1203 | scale_param { 1204 | bias_term: true 1205 | } 1206 | } 1207 | layer { 1208 | name: "relu_5_1_pw" 1209 | type: "ReLU" 1210 | bottom: "conv_5_1_pw" 1211 | top: "conv_5_1_pw" 1212 | } 1213 | layer { 1214 | name: "conv_5_1_dw" 1215 | type: "Convolution" 1216 | bottom: "conv_5_1_pw" 1217 | top: "conv_5_1_dw" 1218 | param { 1219 | lr_mult: 1.0 1220 | decay_mult: 1.0 1221 | } 1222 | convolution_param { 1223 | num_output: 96 1224 | bias_term: false 1225 | pad: 1 1226 | kernel_size: 3 1227 | group: 96 1228 | stride: 2 1229 | weight_filler { 1230 | type: "msra" 1231 | } 1232 | bias_filler { 1233 | type: "constant" 1234 | value: 0.0 1235 | } 1236 | engine: CAFFE 1237 | } 1238 | } 1239 | layer { 1240 | name: "bn_5_1_dw" 1241 | type: "BatchNorm" 1242 | bottom: "conv_5_1_dw" 1243 | top: "conv_5_1_dw" 1244 | param { 1245 | lr_mult: 0.0 1246 | decay_mult: 0.0 1247 | } 1248 | param { 1249 | lr_mult: 0.0 1250 | decay_mult: 0.0 1251 | } 1252 | param { 1253 | lr_mult: 0.0 1254 | decay_mult: 0.0 1255 | } 1256 | batch_norm_param { 1257 | use_global_stats: true 1258 | } 1259 | } 1260 | layer { 1261 | name: "scale_5_1_dw" 1262 | type: "Scale" 1263 | bottom: "conv_5_1_dw" 1264 | top: "conv_5_1_dw" 1265 | scale_param { 1266 | bias_term: true 1267 | } 1268 | } 1269 | layer { 1270 | name: "relu_5_1_dw" 1271 | type: "ReLU" 1272 | bottom: "conv_5_1_dw" 1273 | top: "conv_5_1_dw" 1274 | } 1275 | layer { 1276 | name: "conv_5_1_linear" 1277 | type: "Convolution" 1278 | bottom: "conv_5_1_dw" 1279 | top: "conv_5_1_linear" 1280 | param { 1281 | lr_mult: 1.0 1282 | decay_mult: 1.0 1283 | } 1284 | convolution_param { 1285 | num_output: 32 1286 | bias_term: false 1287 | pad: 0 1288 | kernel_size: 1 1289 | stride: 1 1290 | weight_filler { 1291 | type: "msra" 1292 | } 1293 | bias_filler { 1294 | type: "constant" 1295 | value: 0.0 1296 | } 1297 | } 1298 | } 1299 | layer { 1300 | name: "bn_5_1_linear" 1301 | type: "BatchNorm" 1302 | bottom: "conv_5_1_linear" 1303 | top: "conv_5_1_linear" 1304 | param { 1305 | lr_mult: 0.0 1306 | decay_mult: 0.0 1307 | } 1308 | param { 1309 | lr_mult: 0.0 1310 | decay_mult: 0.0 1311 | } 1312 | param { 1313 | lr_mult: 0.0 1314 | decay_mult: 0.0 1315 | } 1316 | batch_norm_param { 1317 | use_global_stats: true 1318 | } 1319 | } 1320 | layer { 1321 | name: "scale_5_1_linear" 1322 | type: "Scale" 1323 | bottom: "conv_5_1_linear" 1324 | top: "conv_5_1_linear" 1325 | scale_param { 1326 | bias_term: true 1327 | } 1328 | } 1329 | layer { 1330 | name: "conv_5_2_pw" 1331 | type: "Convolution" 1332 | bottom: "conv_5_1_linear" 1333 | top: "conv_5_2_pw" 1334 | param { 1335 | lr_mult: 1.0 1336 | decay_mult: 1.0 1337 | } 1338 | convolution_param { 1339 | num_output: 192 1340 | bias_term: false 1341 | pad: 0 1342 | kernel_size: 1 1343 | stride: 1 1344 | weight_filler { 1345 | type: "msra" 1346 | } 1347 | bias_filler { 1348 | type: "constant" 1349 | value: 0.0 1350 | } 1351 | } 1352 | } 1353 | layer { 1354 | name: "bn_5_2_pw" 1355 | type: "BatchNorm" 1356 | bottom: "conv_5_2_pw" 1357 | top: "conv_5_2_pw" 1358 | param { 1359 | lr_mult: 0.0 1360 | decay_mult: 0.0 1361 | } 1362 | param { 1363 | lr_mult: 0.0 1364 | decay_mult: 0.0 1365 | } 1366 | param { 1367 | lr_mult: 0.0 1368 | decay_mult: 0.0 1369 | } 1370 | batch_norm_param { 1371 | use_global_stats: true 1372 | } 1373 | } 1374 | layer { 1375 | name: "scale_5_2_pw" 1376 | type: "Scale" 1377 | bottom: "conv_5_2_pw" 1378 | top: "conv_5_2_pw" 1379 | scale_param { 1380 | bias_term: true 1381 | } 1382 | } 1383 | layer { 1384 | name: "relu_5_2_pw" 1385 | type: "ReLU" 1386 | bottom: "conv_5_2_pw" 1387 | top: "conv_5_2_pw" 1388 | } 1389 | layer { 1390 | name: "conv_5_2_dw" 1391 | type: "Convolution" 1392 | bottom: "conv_5_2_pw" 1393 | top: "conv_5_2_dw" 1394 | param { 1395 | lr_mult: 1.0 1396 | decay_mult: 1.0 1397 | } 1398 | convolution_param { 1399 | num_output: 192 1400 | bias_term: false 1401 | pad: 1 1402 | kernel_size: 3 1403 | group: 192 1404 | stride: 1 1405 | weight_filler { 1406 | type: "msra" 1407 | } 1408 | bias_filler { 1409 | type: "constant" 1410 | value: 0.0 1411 | } 1412 | engine: CAFFE 1413 | } 1414 | } 1415 | layer { 1416 | name: "bn_5_2_dw" 1417 | type: "BatchNorm" 1418 | bottom: "conv_5_2_dw" 1419 | top: "conv_5_2_dw" 1420 | param { 1421 | lr_mult: 0.0 1422 | decay_mult: 0.0 1423 | } 1424 | param { 1425 | lr_mult: 0.0 1426 | decay_mult: 0.0 1427 | } 1428 | param { 1429 | lr_mult: 0.0 1430 | decay_mult: 0.0 1431 | } 1432 | batch_norm_param { 1433 | use_global_stats: true 1434 | } 1435 | } 1436 | layer { 1437 | name: "scale_5_2_dw" 1438 | type: "Scale" 1439 | bottom: "conv_5_2_dw" 1440 | top: "conv_5_2_dw" 1441 | scale_param { 1442 | bias_term: true 1443 | } 1444 | } 1445 | layer { 1446 | name: "relu_5_2_dw" 1447 | type: "ReLU" 1448 | bottom: "conv_5_2_dw" 1449 | top: "conv_5_2_dw" 1450 | } 1451 | layer { 1452 | name: "conv_5_2_linear" 1453 | type: "Convolution" 1454 | bottom: "conv_5_2_dw" 1455 | top: "conv_5_2_linear" 1456 | param { 1457 | lr_mult: 1.0 1458 | decay_mult: 1.0 1459 | } 1460 | convolution_param { 1461 | num_output: 32 1462 | bias_term: false 1463 | pad: 0 1464 | kernel_size: 1 1465 | stride: 1 1466 | weight_filler { 1467 | type: "msra" 1468 | } 1469 | bias_filler { 1470 | type: "constant" 1471 | value: 0.0 1472 | } 1473 | } 1474 | } 1475 | layer { 1476 | name: "bn_5_2_linear" 1477 | type: "BatchNorm" 1478 | bottom: "conv_5_2_linear" 1479 | top: "conv_5_2_linear" 1480 | param { 1481 | lr_mult: 0.0 1482 | decay_mult: 0.0 1483 | } 1484 | param { 1485 | lr_mult: 0.0 1486 | decay_mult: 0.0 1487 | } 1488 | param { 1489 | lr_mult: 0.0 1490 | decay_mult: 0.0 1491 | } 1492 | batch_norm_param { 1493 | use_global_stats: true 1494 | } 1495 | } 1496 | layer { 1497 | name: "scale_5_2_linear" 1498 | type: "Scale" 1499 | bottom: "conv_5_2_linear" 1500 | top: "conv_5_2_linear" 1501 | scale_param { 1502 | bias_term: true 1503 | } 1504 | } 1505 | layer { 1506 | name: "add_5_2" 1507 | type: "Eltwise" 1508 | bottom: "conv_5_1_linear" 1509 | bottom: "conv_5_2_linear" 1510 | top: "add_5_2" 1511 | } 1512 | layer { 1513 | name: "conv_5_3_pw" 1514 | type: "Convolution" 1515 | bottom: "add_5_2" 1516 | top: "conv_5_3_pw" 1517 | param { 1518 | lr_mult: 1.0 1519 | decay_mult: 1.0 1520 | } 1521 | convolution_param { 1522 | num_output: 192 1523 | bias_term: false 1524 | pad: 0 1525 | kernel_size: 1 1526 | stride: 1 1527 | weight_filler { 1528 | type: "msra" 1529 | } 1530 | bias_filler { 1531 | type: "constant" 1532 | value: 0.0 1533 | } 1534 | } 1535 | } 1536 | layer { 1537 | name: "bn_5_3_pw" 1538 | type: "BatchNorm" 1539 | bottom: "conv_5_3_pw" 1540 | top: "conv_5_3_pw" 1541 | param { 1542 | lr_mult: 0.0 1543 | decay_mult: 0.0 1544 | } 1545 | param { 1546 | lr_mult: 0.0 1547 | decay_mult: 0.0 1548 | } 1549 | param { 1550 | lr_mult: 0.0 1551 | decay_mult: 0.0 1552 | } 1553 | batch_norm_param { 1554 | use_global_stats: true 1555 | } 1556 | } 1557 | layer { 1558 | name: "scale_5_3_pw" 1559 | type: "Scale" 1560 | bottom: "conv_5_3_pw" 1561 | top: "conv_5_3_pw" 1562 | scale_param { 1563 | bias_term: true 1564 | } 1565 | } 1566 | layer { 1567 | name: "relu_5_3_pw" 1568 | type: "ReLU" 1569 | bottom: "conv_5_3_pw" 1570 | top: "conv_5_3_pw" 1571 | } 1572 | layer { 1573 | name: "conv_5_3_dw" 1574 | type: "Convolution" 1575 | bottom: "conv_5_3_pw" 1576 | top: "conv_5_3_dw" 1577 | param { 1578 | lr_mult: 1.0 1579 | decay_mult: 1.0 1580 | } 1581 | convolution_param { 1582 | num_output: 192 1583 | bias_term: false 1584 | pad: 1 1585 | kernel_size: 3 1586 | group: 192 1587 | stride: 1 1588 | weight_filler { 1589 | type: "msra" 1590 | } 1591 | bias_filler { 1592 | type: "constant" 1593 | value: 0.0 1594 | } 1595 | engine: CAFFE 1596 | } 1597 | } 1598 | layer { 1599 | name: "bn_5_3_dw" 1600 | type: "BatchNorm" 1601 | bottom: "conv_5_3_dw" 1602 | top: "conv_5_3_dw" 1603 | param { 1604 | lr_mult: 0.0 1605 | decay_mult: 0.0 1606 | } 1607 | param { 1608 | lr_mult: 0.0 1609 | decay_mult: 0.0 1610 | } 1611 | param { 1612 | lr_mult: 0.0 1613 | decay_mult: 0.0 1614 | } 1615 | batch_norm_param { 1616 | use_global_stats: true 1617 | } 1618 | } 1619 | layer { 1620 | name: "scale_5_3_dw" 1621 | type: "Scale" 1622 | bottom: "conv_5_3_dw" 1623 | top: "conv_5_3_dw" 1624 | scale_param { 1625 | bias_term: true 1626 | } 1627 | } 1628 | layer { 1629 | name: "relu_5_3_dw" 1630 | type: "ReLU" 1631 | bottom: "conv_5_3_dw" 1632 | top: "conv_5_3_dw" 1633 | } 1634 | layer { 1635 | name: "conv_5_3_linear" 1636 | type: "Convolution" 1637 | bottom: "conv_5_3_dw" 1638 | top: "conv_5_3_linear" 1639 | param { 1640 | lr_mult: 1.0 1641 | decay_mult: 1.0 1642 | } 1643 | convolution_param { 1644 | num_output: 32 1645 | bias_term: false 1646 | pad: 0 1647 | kernel_size: 1 1648 | stride: 1 1649 | weight_filler { 1650 | type: "msra" 1651 | } 1652 | bias_filler { 1653 | type: "constant" 1654 | value: 0.0 1655 | } 1656 | } 1657 | } 1658 | layer { 1659 | name: "bn_5_3_linear" 1660 | type: "BatchNorm" 1661 | bottom: "conv_5_3_linear" 1662 | top: "conv_5_3_linear" 1663 | param { 1664 | lr_mult: 0.0 1665 | decay_mult: 0.0 1666 | } 1667 | param { 1668 | lr_mult: 0.0 1669 | decay_mult: 0.0 1670 | } 1671 | param { 1672 | lr_mult: 0.0 1673 | decay_mult: 0.0 1674 | } 1675 | batch_norm_param { 1676 | use_global_stats: true 1677 | } 1678 | } 1679 | layer { 1680 | name: "scale_5_3_linear" 1681 | type: "Scale" 1682 | bottom: "conv_5_3_linear" 1683 | top: "conv_5_3_linear" 1684 | scale_param { 1685 | bias_term: true 1686 | } 1687 | } 1688 | layer { 1689 | name: "add_5_3" 1690 | type: "Eltwise" 1691 | bottom: "add_5_2" 1692 | bottom: "conv_5_3_linear" 1693 | top: "add_5_3" 1694 | } 1695 | layer { 1696 | name: "conv_5_4_pw" 1697 | type: "Convolution" 1698 | bottom: "add_5_3" 1699 | top: "conv_5_4_pw" 1700 | param { 1701 | lr_mult: 1.0 1702 | decay_mult: 1.0 1703 | } 1704 | convolution_param { 1705 | num_output: 192 1706 | bias_term: false 1707 | pad: 0 1708 | kernel_size: 1 1709 | stride: 1 1710 | weight_filler { 1711 | type: "msra" 1712 | } 1713 | bias_filler { 1714 | type: "constant" 1715 | value: 0.0 1716 | } 1717 | } 1718 | } 1719 | layer { 1720 | name: "bn_5_4_pw" 1721 | type: "BatchNorm" 1722 | bottom: "conv_5_4_pw" 1723 | top: "conv_5_4_pw" 1724 | param { 1725 | lr_mult: 0.0 1726 | decay_mult: 0.0 1727 | } 1728 | param { 1729 | lr_mult: 0.0 1730 | decay_mult: 0.0 1731 | } 1732 | param { 1733 | lr_mult: 0.0 1734 | decay_mult: 0.0 1735 | } 1736 | batch_norm_param { 1737 | use_global_stats: true 1738 | } 1739 | } 1740 | layer { 1741 | name: "scale_5_4_pw" 1742 | type: "Scale" 1743 | bottom: "conv_5_4_pw" 1744 | top: "conv_5_4_pw" 1745 | scale_param { 1746 | bias_term: true 1747 | } 1748 | } 1749 | layer { 1750 | name: "relu_5_4_pw" 1751 | type: "ReLU" 1752 | bottom: "conv_5_4_pw" 1753 | top: "conv_5_4_pw" 1754 | } 1755 | layer { 1756 | name: "conv_5_4_dw" 1757 | type: "Convolution" 1758 | bottom: "conv_5_4_pw" 1759 | top: "conv_5_4_dw" 1760 | param { 1761 | lr_mult: 1.0 1762 | decay_mult: 1.0 1763 | } 1764 | convolution_param { 1765 | num_output: 192 1766 | bias_term: false 1767 | pad: 1 1768 | kernel_size: 3 1769 | group: 192 1770 | stride: 1 1771 | weight_filler { 1772 | type: "msra" 1773 | } 1774 | bias_filler { 1775 | type: "constant" 1776 | value: 0.0 1777 | } 1778 | engine: CAFFE 1779 | } 1780 | } 1781 | layer { 1782 | name: "bn_5_4_dw" 1783 | type: "BatchNorm" 1784 | bottom: "conv_5_4_dw" 1785 | top: "conv_5_4_dw" 1786 | param { 1787 | lr_mult: 0.0 1788 | decay_mult: 0.0 1789 | } 1790 | param { 1791 | lr_mult: 0.0 1792 | decay_mult: 0.0 1793 | } 1794 | param { 1795 | lr_mult: 0.0 1796 | decay_mult: 0.0 1797 | } 1798 | batch_norm_param { 1799 | use_global_stats: true 1800 | } 1801 | } 1802 | layer { 1803 | name: "scale_5_4_dw" 1804 | type: "Scale" 1805 | bottom: "conv_5_4_dw" 1806 | top: "conv_5_4_dw" 1807 | scale_param { 1808 | bias_term: true 1809 | } 1810 | } 1811 | layer { 1812 | name: "relu_5_4_dw" 1813 | type: "ReLU" 1814 | bottom: "conv_5_4_dw" 1815 | top: "conv_5_4_dw" 1816 | } 1817 | layer { 1818 | name: "conv_5_4_linear" 1819 | type: "Convolution" 1820 | bottom: "conv_5_4_dw" 1821 | top: "conv_5_4_linear" 1822 | param { 1823 | lr_mult: 1.0 1824 | decay_mult: 1.0 1825 | } 1826 | convolution_param { 1827 | num_output: 32 1828 | bias_term: false 1829 | pad: 0 1830 | kernel_size: 1 1831 | stride: 1 1832 | weight_filler { 1833 | type: "msra" 1834 | } 1835 | bias_filler { 1836 | type: "constant" 1837 | value: 0.0 1838 | } 1839 | } 1840 | } 1841 | layer { 1842 | name: "bn_5_4_linear" 1843 | type: "BatchNorm" 1844 | bottom: "conv_5_4_linear" 1845 | top: "conv_5_4_linear" 1846 | param { 1847 | lr_mult: 0.0 1848 | decay_mult: 0.0 1849 | } 1850 | param { 1851 | lr_mult: 0.0 1852 | decay_mult: 0.0 1853 | } 1854 | param { 1855 | lr_mult: 0.0 1856 | decay_mult: 0.0 1857 | } 1858 | batch_norm_param { 1859 | use_global_stats: true 1860 | } 1861 | } 1862 | layer { 1863 | name: "scale_5_4_linear" 1864 | type: "Scale" 1865 | bottom: "conv_5_4_linear" 1866 | top: "conv_5_4_linear" 1867 | scale_param { 1868 | bias_term: true 1869 | } 1870 | } 1871 | layer { 1872 | name: "add_5_4" 1873 | type: "Eltwise" 1874 | bottom: "add_5_3" 1875 | bottom: "conv_5_4_linear" 1876 | top: "add_5_4" 1877 | } 1878 | layer { 1879 | name: "conv_6_1_pw" 1880 | type: "Convolution" 1881 | bottom: "add_5_4" 1882 | top: "conv_6_1_pw" 1883 | param { 1884 | lr_mult: 1.0 1885 | decay_mult: 1.0 1886 | } 1887 | convolution_param { 1888 | num_output: 192 1889 | bias_term: false 1890 | pad: 0 1891 | kernel_size: 1 1892 | stride: 1 1893 | weight_filler { 1894 | type: "msra" 1895 | } 1896 | bias_filler { 1897 | type: "constant" 1898 | value: 0.0 1899 | } 1900 | } 1901 | } 1902 | layer { 1903 | name: "bn_6_1_pw" 1904 | type: "BatchNorm" 1905 | bottom: "conv_6_1_pw" 1906 | top: "conv_6_1_pw" 1907 | param { 1908 | lr_mult: 0.0 1909 | decay_mult: 0.0 1910 | } 1911 | param { 1912 | lr_mult: 0.0 1913 | decay_mult: 0.0 1914 | } 1915 | param { 1916 | lr_mult: 0.0 1917 | decay_mult: 0.0 1918 | } 1919 | batch_norm_param { 1920 | use_global_stats: true 1921 | } 1922 | } 1923 | layer { 1924 | name: "scale_6_1_pw" 1925 | type: "Scale" 1926 | bottom: "conv_6_1_pw" 1927 | top: "conv_6_1_pw" 1928 | scale_param { 1929 | bias_term: true 1930 | } 1931 | } 1932 | layer { 1933 | name: "relu_6_1_pw" 1934 | type: "ReLU" 1935 | bottom: "conv_6_1_pw" 1936 | top: "conv_6_1_pw" 1937 | } 1938 | layer { 1939 | name: "conv_6_1_dw" 1940 | type: "Convolution" 1941 | bottom: "conv_6_1_pw" 1942 | top: "conv_6_1_dw" 1943 | param { 1944 | lr_mult: 1.0 1945 | decay_mult: 1.0 1946 | } 1947 | convolution_param { 1948 | num_output: 192 1949 | bias_term: false 1950 | pad: 1 1951 | kernel_size: 3 1952 | group: 192 1953 | stride: 1 1954 | weight_filler { 1955 | type: "msra" 1956 | } 1957 | bias_filler { 1958 | type: "constant" 1959 | value: 0.0 1960 | } 1961 | engine: CAFFE 1962 | } 1963 | } 1964 | layer { 1965 | name: "bn_6_1_dw" 1966 | type: "BatchNorm" 1967 | bottom: "conv_6_1_dw" 1968 | top: "conv_6_1_dw" 1969 | param { 1970 | lr_mult: 0.0 1971 | decay_mult: 0.0 1972 | } 1973 | param { 1974 | lr_mult: 0.0 1975 | decay_mult: 0.0 1976 | } 1977 | param { 1978 | lr_mult: 0.0 1979 | decay_mult: 0.0 1980 | } 1981 | batch_norm_param { 1982 | use_global_stats: true 1983 | } 1984 | } 1985 | layer { 1986 | name: "scale_6_1_dw" 1987 | type: "Scale" 1988 | bottom: "conv_6_1_dw" 1989 | top: "conv_6_1_dw" 1990 | scale_param { 1991 | bias_term: true 1992 | } 1993 | } 1994 | layer { 1995 | name: "relu_6_1_dw" 1996 | type: "ReLU" 1997 | bottom: "conv_6_1_dw" 1998 | top: "conv_6_1_dw" 1999 | } 2000 | layer { 2001 | name: "conv_6_1_linear" 2002 | type: "Convolution" 2003 | bottom: "conv_6_1_dw" 2004 | top: "conv_6_1_linear" 2005 | param { 2006 | lr_mult: 1.0 2007 | decay_mult: 1.0 2008 | } 2009 | convolution_param { 2010 | num_output: 48 2011 | bias_term: false 2012 | pad: 0 2013 | kernel_size: 1 2014 | stride: 1 2015 | weight_filler { 2016 | type: "msra" 2017 | } 2018 | bias_filler { 2019 | type: "constant" 2020 | value: 0.0 2021 | } 2022 | } 2023 | } 2024 | layer { 2025 | name: "bn_6_1_linear" 2026 | type: "BatchNorm" 2027 | bottom: "conv_6_1_linear" 2028 | top: "conv_6_1_linear" 2029 | param { 2030 | lr_mult: 0.0 2031 | decay_mult: 0.0 2032 | } 2033 | param { 2034 | lr_mult: 0.0 2035 | decay_mult: 0.0 2036 | } 2037 | param { 2038 | lr_mult: 0.0 2039 | decay_mult: 0.0 2040 | } 2041 | batch_norm_param { 2042 | use_global_stats: true 2043 | } 2044 | } 2045 | layer { 2046 | name: "scale_6_1_linear" 2047 | type: "Scale" 2048 | bottom: "conv_6_1_linear" 2049 | top: "conv_6_1_linear" 2050 | scale_param { 2051 | bias_term: true 2052 | } 2053 | } 2054 | layer { 2055 | name: "conv_6_2_pw" 2056 | type: "Convolution" 2057 | bottom: "conv_6_1_linear" 2058 | top: "conv_6_2_pw" 2059 | param { 2060 | lr_mult: 1.0 2061 | decay_mult: 1.0 2062 | } 2063 | convolution_param { 2064 | num_output: 288 2065 | bias_term: false 2066 | pad: 0 2067 | kernel_size: 1 2068 | stride: 1 2069 | weight_filler { 2070 | type: "msra" 2071 | } 2072 | bias_filler { 2073 | type: "constant" 2074 | value: 0.0 2075 | } 2076 | } 2077 | } 2078 | layer { 2079 | name: "bn_6_2_pw" 2080 | type: "BatchNorm" 2081 | bottom: "conv_6_2_pw" 2082 | top: "conv_6_2_pw" 2083 | param { 2084 | lr_mult: 0.0 2085 | decay_mult: 0.0 2086 | } 2087 | param { 2088 | lr_mult: 0.0 2089 | decay_mult: 0.0 2090 | } 2091 | param { 2092 | lr_mult: 0.0 2093 | decay_mult: 0.0 2094 | } 2095 | batch_norm_param { 2096 | use_global_stats: true 2097 | } 2098 | } 2099 | layer { 2100 | name: "scale_6_2_pw" 2101 | type: "Scale" 2102 | bottom: "conv_6_2_pw" 2103 | top: "conv_6_2_pw" 2104 | scale_param { 2105 | bias_term: true 2106 | } 2107 | } 2108 | layer { 2109 | name: "relu_6_2_pw" 2110 | type: "ReLU" 2111 | bottom: "conv_6_2_pw" 2112 | top: "conv_6_2_pw" 2113 | } 2114 | layer { 2115 | name: "conv_6_2_dw" 2116 | type: "Convolution" 2117 | bottom: "conv_6_2_pw" 2118 | top: "conv_6_2_dw" 2119 | param { 2120 | lr_mult: 1.0 2121 | decay_mult: 1.0 2122 | } 2123 | convolution_param { 2124 | num_output: 288 2125 | bias_term: false 2126 | pad: 1 2127 | kernel_size: 3 2128 | group: 288 2129 | stride: 1 2130 | weight_filler { 2131 | type: "msra" 2132 | } 2133 | bias_filler { 2134 | type: "constant" 2135 | value: 0.0 2136 | } 2137 | engine: CAFFE 2138 | } 2139 | } 2140 | layer { 2141 | name: "bn_6_2_dw" 2142 | type: "BatchNorm" 2143 | bottom: "conv_6_2_dw" 2144 | top: "conv_6_2_dw" 2145 | param { 2146 | lr_mult: 0.0 2147 | decay_mult: 0.0 2148 | } 2149 | param { 2150 | lr_mult: 0.0 2151 | decay_mult: 0.0 2152 | } 2153 | param { 2154 | lr_mult: 0.0 2155 | decay_mult: 0.0 2156 | } 2157 | batch_norm_param { 2158 | use_global_stats: true 2159 | } 2160 | } 2161 | layer { 2162 | name: "scale_6_2_dw" 2163 | type: "Scale" 2164 | bottom: "conv_6_2_dw" 2165 | top: "conv_6_2_dw" 2166 | scale_param { 2167 | bias_term: true 2168 | } 2169 | } 2170 | layer { 2171 | name: "relu_6_2_dw" 2172 | type: "ReLU" 2173 | bottom: "conv_6_2_dw" 2174 | top: "conv_6_2_dw" 2175 | } 2176 | layer { 2177 | name: "conv_6_2_linear" 2178 | type: "Convolution" 2179 | bottom: "conv_6_2_dw" 2180 | top: "conv_6_2_linear" 2181 | param { 2182 | lr_mult: 1.0 2183 | decay_mult: 1.0 2184 | } 2185 | convolution_param { 2186 | num_output: 48 2187 | bias_term: false 2188 | pad: 0 2189 | kernel_size: 1 2190 | stride: 1 2191 | weight_filler { 2192 | type: "msra" 2193 | } 2194 | bias_filler { 2195 | type: "constant" 2196 | value: 0.0 2197 | } 2198 | } 2199 | } 2200 | layer { 2201 | name: "bn_6_2_linear" 2202 | type: "BatchNorm" 2203 | bottom: "conv_6_2_linear" 2204 | top: "conv_6_2_linear" 2205 | param { 2206 | lr_mult: 0.0 2207 | decay_mult: 0.0 2208 | } 2209 | param { 2210 | lr_mult: 0.0 2211 | decay_mult: 0.0 2212 | } 2213 | param { 2214 | lr_mult: 0.0 2215 | decay_mult: 0.0 2216 | } 2217 | batch_norm_param { 2218 | use_global_stats: true 2219 | } 2220 | } 2221 | layer { 2222 | name: "scale_6_2_linear" 2223 | type: "Scale" 2224 | bottom: "conv_6_2_linear" 2225 | top: "conv_6_2_linear" 2226 | scale_param { 2227 | bias_term: true 2228 | } 2229 | } 2230 | layer { 2231 | name: "add_6_2" 2232 | type: "Eltwise" 2233 | bottom: "conv_6_1_linear" 2234 | bottom: "conv_6_2_linear" 2235 | top: "add_6_2" 2236 | } 2237 | layer { 2238 | name: "conv_6_3_pw" 2239 | type: "Convolution" 2240 | bottom: "add_6_2" 2241 | top: "conv_6_3_pw" 2242 | param { 2243 | lr_mult: 1.0 2244 | decay_mult: 1.0 2245 | } 2246 | convolution_param { 2247 | num_output: 288 2248 | bias_term: false 2249 | pad: 0 2250 | kernel_size: 1 2251 | stride: 1 2252 | weight_filler { 2253 | type: "msra" 2254 | } 2255 | bias_filler { 2256 | type: "constant" 2257 | value: 0.0 2258 | } 2259 | } 2260 | } 2261 | layer { 2262 | name: "bn_6_3_pw" 2263 | type: "BatchNorm" 2264 | bottom: "conv_6_3_pw" 2265 | top: "conv_6_3_pw" 2266 | param { 2267 | lr_mult: 0.0 2268 | decay_mult: 0.0 2269 | } 2270 | param { 2271 | lr_mult: 0.0 2272 | decay_mult: 0.0 2273 | } 2274 | param { 2275 | lr_mult: 0.0 2276 | decay_mult: 0.0 2277 | } 2278 | batch_norm_param { 2279 | use_global_stats: true 2280 | } 2281 | } 2282 | layer { 2283 | name: "scale_6_3_pw" 2284 | type: "Scale" 2285 | bottom: "conv_6_3_pw" 2286 | top: "conv_6_3_pw" 2287 | scale_param { 2288 | bias_term: true 2289 | } 2290 | } 2291 | layer { 2292 | name: "relu_6_3_pw" 2293 | type: "ReLU" 2294 | bottom: "conv_6_3_pw" 2295 | top: "conv_6_3_pw" 2296 | } 2297 | layer { 2298 | name: "conv_6_3_dw" 2299 | type: "Convolution" 2300 | bottom: "conv_6_3_pw" 2301 | top: "conv_6_3_dw" 2302 | param { 2303 | lr_mult: 1.0 2304 | decay_mult: 1.0 2305 | } 2306 | convolution_param { 2307 | num_output: 288 2308 | bias_term: false 2309 | pad: 1 2310 | kernel_size: 3 2311 | group: 288 2312 | stride: 1 2313 | weight_filler { 2314 | type: "msra" 2315 | } 2316 | bias_filler { 2317 | type: "constant" 2318 | value: 0.0 2319 | } 2320 | engine: CAFFE 2321 | } 2322 | } 2323 | layer { 2324 | name: "bn_6_3_dw" 2325 | type: "BatchNorm" 2326 | bottom: "conv_6_3_dw" 2327 | top: "conv_6_3_dw" 2328 | param { 2329 | lr_mult: 0.0 2330 | decay_mult: 0.0 2331 | } 2332 | param { 2333 | lr_mult: 0.0 2334 | decay_mult: 0.0 2335 | } 2336 | param { 2337 | lr_mult: 0.0 2338 | decay_mult: 0.0 2339 | } 2340 | batch_norm_param { 2341 | use_global_stats: true 2342 | } 2343 | } 2344 | layer { 2345 | name: "scale_6_3_dw" 2346 | type: "Scale" 2347 | bottom: "conv_6_3_dw" 2348 | top: "conv_6_3_dw" 2349 | scale_param { 2350 | bias_term: true 2351 | } 2352 | } 2353 | layer { 2354 | name: "relu_6_3_dw" 2355 | type: "ReLU" 2356 | bottom: "conv_6_3_dw" 2357 | top: "conv_6_3_dw" 2358 | } 2359 | layer { 2360 | name: "conv_6_3_linear" 2361 | type: "Convolution" 2362 | bottom: "conv_6_3_dw" 2363 | top: "conv_6_3_linear" 2364 | param { 2365 | lr_mult: 1.0 2366 | decay_mult: 1.0 2367 | } 2368 | convolution_param { 2369 | num_output: 48 2370 | bias_term: false 2371 | pad: 0 2372 | kernel_size: 1 2373 | stride: 1 2374 | weight_filler { 2375 | type: "msra" 2376 | } 2377 | bias_filler { 2378 | type: "constant" 2379 | value: 0.0 2380 | } 2381 | } 2382 | } 2383 | layer { 2384 | name: "bn_6_3_linear" 2385 | type: "BatchNorm" 2386 | bottom: "conv_6_3_linear" 2387 | top: "conv_6_3_linear" 2388 | param { 2389 | lr_mult: 0.0 2390 | decay_mult: 0.0 2391 | } 2392 | param { 2393 | lr_mult: 0.0 2394 | decay_mult: 0.0 2395 | } 2396 | param { 2397 | lr_mult: 0.0 2398 | decay_mult: 0.0 2399 | } 2400 | batch_norm_param { 2401 | use_global_stats: true 2402 | } 2403 | } 2404 | layer { 2405 | name: "scale_6_3_linear" 2406 | type: "Scale" 2407 | bottom: "conv_6_3_linear" 2408 | top: "conv_6_3_linear" 2409 | scale_param { 2410 | bias_term: true 2411 | } 2412 | } 2413 | layer { 2414 | name: "add_6_3" 2415 | type: "Eltwise" 2416 | bottom: "add_6_2" 2417 | bottom: "conv_6_3_linear" 2418 | top: "add_6_3" 2419 | } 2420 | layer { 2421 | name: "conv_7_1_pw" 2422 | type: "Convolution" 2423 | bottom: "add_6_3" 2424 | top: "conv_7_1_pw" 2425 | param { 2426 | lr_mult: 1.0 2427 | decay_mult: 1.0 2428 | } 2429 | convolution_param { 2430 | num_output: 288 2431 | bias_term: false 2432 | pad: 0 2433 | kernel_size: 1 2434 | stride: 1 2435 | weight_filler { 2436 | type: "msra" 2437 | } 2438 | bias_filler { 2439 | type: "constant" 2440 | value: 0.0 2441 | } 2442 | } 2443 | } 2444 | layer { 2445 | name: "bn_7_1_pw" 2446 | type: "BatchNorm" 2447 | bottom: "conv_7_1_pw" 2448 | top: "conv_7_1_pw" 2449 | param { 2450 | lr_mult: 0.0 2451 | decay_mult: 0.0 2452 | } 2453 | param { 2454 | lr_mult: 0.0 2455 | decay_mult: 0.0 2456 | } 2457 | param { 2458 | lr_mult: 0.0 2459 | decay_mult: 0.0 2460 | } 2461 | batch_norm_param { 2462 | use_global_stats: true 2463 | } 2464 | } 2465 | layer { 2466 | name: "scale_7_1_pw" 2467 | type: "Scale" 2468 | bottom: "conv_7_1_pw" 2469 | top: "conv_7_1_pw" 2470 | scale_param { 2471 | bias_term: true 2472 | } 2473 | } 2474 | layer { 2475 | name: "relu_7_1_pw" 2476 | type: "ReLU" 2477 | bottom: "conv_7_1_pw" 2478 | top: "conv_7_1_pw" 2479 | } 2480 | layer { 2481 | name: "conv_7_1_dw" 2482 | type: "Convolution" 2483 | bottom: "conv_7_1_pw" 2484 | top: "conv_7_1_dw" 2485 | param { 2486 | lr_mult: 1.0 2487 | decay_mult: 1.0 2488 | } 2489 | convolution_param { 2490 | num_output: 288 2491 | bias_term: false 2492 | pad: 1 2493 | kernel_size: 3 2494 | group: 288 2495 | stride: 2 2496 | weight_filler { 2497 | type: "msra" 2498 | } 2499 | bias_filler { 2500 | type: "constant" 2501 | value: 0.0 2502 | } 2503 | engine: CAFFE 2504 | } 2505 | } 2506 | layer { 2507 | name: "bn_7_1_dw" 2508 | type: "BatchNorm" 2509 | bottom: "conv_7_1_dw" 2510 | top: "conv_7_1_dw" 2511 | param { 2512 | lr_mult: 0.0 2513 | decay_mult: 0.0 2514 | } 2515 | param { 2516 | lr_mult: 0.0 2517 | decay_mult: 0.0 2518 | } 2519 | param { 2520 | lr_mult: 0.0 2521 | decay_mult: 0.0 2522 | } 2523 | batch_norm_param { 2524 | use_global_stats: true 2525 | } 2526 | } 2527 | layer { 2528 | name: "scale_7_1_dw" 2529 | type: "Scale" 2530 | bottom: "conv_7_1_dw" 2531 | top: "conv_7_1_dw" 2532 | scale_param { 2533 | bias_term: true 2534 | } 2535 | } 2536 | layer { 2537 | name: "relu_7_1_dw" 2538 | type: "ReLU" 2539 | bottom: "conv_7_1_dw" 2540 | top: "conv_7_1_dw" 2541 | } 2542 | layer { 2543 | name: "conv_7_1_linear" 2544 | type: "Convolution" 2545 | bottom: "conv_7_1_dw" 2546 | top: "conv_7_1_linear" 2547 | param { 2548 | lr_mult: 1.0 2549 | decay_mult: 1.0 2550 | } 2551 | convolution_param { 2552 | num_output: 80 2553 | bias_term: false 2554 | pad: 0 2555 | kernel_size: 1 2556 | stride: 1 2557 | weight_filler { 2558 | type: "msra" 2559 | } 2560 | bias_filler { 2561 | type: "constant" 2562 | value: 0.0 2563 | } 2564 | } 2565 | } 2566 | layer { 2567 | name: "bn_7_1_linear" 2568 | type: "BatchNorm" 2569 | bottom: "conv_7_1_linear" 2570 | top: "conv_7_1_linear" 2571 | param { 2572 | lr_mult: 0.0 2573 | decay_mult: 0.0 2574 | } 2575 | param { 2576 | lr_mult: 0.0 2577 | decay_mult: 0.0 2578 | } 2579 | param { 2580 | lr_mult: 0.0 2581 | decay_mult: 0.0 2582 | } 2583 | batch_norm_param { 2584 | use_global_stats: true 2585 | } 2586 | } 2587 | layer { 2588 | name: "scale_7_1_linear" 2589 | type: "Scale" 2590 | bottom: "conv_7_1_linear" 2591 | top: "conv_7_1_linear" 2592 | scale_param { 2593 | bias_term: true 2594 | } 2595 | } 2596 | layer { 2597 | name: "conv_7_2_pw" 2598 | type: "Convolution" 2599 | bottom: "conv_7_1_linear" 2600 | top: "conv_7_2_pw" 2601 | param { 2602 | lr_mult: 1.0 2603 | decay_mult: 1.0 2604 | } 2605 | convolution_param { 2606 | num_output: 480 2607 | bias_term: false 2608 | pad: 0 2609 | kernel_size: 1 2610 | stride: 1 2611 | weight_filler { 2612 | type: "msra" 2613 | } 2614 | bias_filler { 2615 | type: "constant" 2616 | value: 0.0 2617 | } 2618 | } 2619 | } 2620 | layer { 2621 | name: "bn_7_2_pw" 2622 | type: "BatchNorm" 2623 | bottom: "conv_7_2_pw" 2624 | top: "conv_7_2_pw" 2625 | param { 2626 | lr_mult: 0.0 2627 | decay_mult: 0.0 2628 | } 2629 | param { 2630 | lr_mult: 0.0 2631 | decay_mult: 0.0 2632 | } 2633 | param { 2634 | lr_mult: 0.0 2635 | decay_mult: 0.0 2636 | } 2637 | batch_norm_param { 2638 | use_global_stats: true 2639 | } 2640 | } 2641 | layer { 2642 | name: "scale_7_2_pw" 2643 | type: "Scale" 2644 | bottom: "conv_7_2_pw" 2645 | top: "conv_7_2_pw" 2646 | scale_param { 2647 | bias_term: true 2648 | } 2649 | } 2650 | layer { 2651 | name: "relu_7_2_pw" 2652 | type: "ReLU" 2653 | bottom: "conv_7_2_pw" 2654 | top: "conv_7_2_pw" 2655 | } 2656 | layer { 2657 | name: "conv_7_2_dw" 2658 | type: "Convolution" 2659 | bottom: "conv_7_2_pw" 2660 | top: "conv_7_2_dw" 2661 | param { 2662 | lr_mult: 1.0 2663 | decay_mult: 1.0 2664 | } 2665 | convolution_param { 2666 | num_output: 480 2667 | bias_term: false 2668 | pad: 1 2669 | kernel_size: 3 2670 | group: 480 2671 | stride: 1 2672 | weight_filler { 2673 | type: "msra" 2674 | } 2675 | bias_filler { 2676 | type: "constant" 2677 | value: 0.0 2678 | } 2679 | engine: CAFFE 2680 | } 2681 | } 2682 | layer { 2683 | name: "bn_7_2_dw" 2684 | type: "BatchNorm" 2685 | bottom: "conv_7_2_dw" 2686 | top: "conv_7_2_dw" 2687 | param { 2688 | lr_mult: 0.0 2689 | decay_mult: 0.0 2690 | } 2691 | param { 2692 | lr_mult: 0.0 2693 | decay_mult: 0.0 2694 | } 2695 | param { 2696 | lr_mult: 0.0 2697 | decay_mult: 0.0 2698 | } 2699 | batch_norm_param { 2700 | use_global_stats: true 2701 | } 2702 | } 2703 | layer { 2704 | name: "scale_7_2_dw" 2705 | type: "Scale" 2706 | bottom: "conv_7_2_dw" 2707 | top: "conv_7_2_dw" 2708 | scale_param { 2709 | bias_term: true 2710 | } 2711 | } 2712 | layer { 2713 | name: "relu_7_2_dw" 2714 | type: "ReLU" 2715 | bottom: "conv_7_2_dw" 2716 | top: "conv_7_2_dw" 2717 | } 2718 | layer { 2719 | name: "conv_7_2_linear" 2720 | type: "Convolution" 2721 | bottom: "conv_7_2_dw" 2722 | top: "conv_7_2_linear" 2723 | param { 2724 | lr_mult: 1.0 2725 | decay_mult: 1.0 2726 | } 2727 | convolution_param { 2728 | num_output: 80 2729 | bias_term: false 2730 | pad: 0 2731 | kernel_size: 1 2732 | stride: 1 2733 | weight_filler { 2734 | type: "msra" 2735 | } 2736 | bias_filler { 2737 | type: "constant" 2738 | value: 0.0 2739 | } 2740 | } 2741 | } 2742 | layer { 2743 | name: "bn_7_2_linear" 2744 | type: "BatchNorm" 2745 | bottom: "conv_7_2_linear" 2746 | top: "conv_7_2_linear" 2747 | param { 2748 | lr_mult: 0.0 2749 | decay_mult: 0.0 2750 | } 2751 | param { 2752 | lr_mult: 0.0 2753 | decay_mult: 0.0 2754 | } 2755 | param { 2756 | lr_mult: 0.0 2757 | decay_mult: 0.0 2758 | } 2759 | batch_norm_param { 2760 | use_global_stats: true 2761 | } 2762 | } 2763 | layer { 2764 | name: "scale_7_2_linear" 2765 | type: "Scale" 2766 | bottom: "conv_7_2_linear" 2767 | top: "conv_7_2_linear" 2768 | scale_param { 2769 | bias_term: true 2770 | } 2771 | } 2772 | layer { 2773 | name: "add_7_2" 2774 | type: "Eltwise" 2775 | bottom: "conv_7_1_linear" 2776 | bottom: "conv_7_2_linear" 2777 | top: "add_7_2" 2778 | } 2779 | layer { 2780 | name: "conv_7_3_pw" 2781 | type: "Convolution" 2782 | bottom: "add_7_2" 2783 | top: "conv_7_3_pw" 2784 | param { 2785 | lr_mult: 1.0 2786 | decay_mult: 1.0 2787 | } 2788 | convolution_param { 2789 | num_output: 480 2790 | bias_term: false 2791 | pad: 0 2792 | kernel_size: 1 2793 | stride: 1 2794 | weight_filler { 2795 | type: "msra" 2796 | } 2797 | bias_filler { 2798 | type: "constant" 2799 | value: 0.0 2800 | } 2801 | } 2802 | } 2803 | layer { 2804 | name: "bn_7_3_pw" 2805 | type: "BatchNorm" 2806 | bottom: "conv_7_3_pw" 2807 | top: "conv_7_3_pw" 2808 | param { 2809 | lr_mult: 0.0 2810 | decay_mult: 0.0 2811 | } 2812 | param { 2813 | lr_mult: 0.0 2814 | decay_mult: 0.0 2815 | } 2816 | param { 2817 | lr_mult: 0.0 2818 | decay_mult: 0.0 2819 | } 2820 | batch_norm_param { 2821 | use_global_stats: true 2822 | } 2823 | } 2824 | layer { 2825 | name: "scale_7_3_pw" 2826 | type: "Scale" 2827 | bottom: "conv_7_3_pw" 2828 | top: "conv_7_3_pw" 2829 | scale_param { 2830 | bias_term: true 2831 | } 2832 | } 2833 | layer { 2834 | name: "relu_7_3_pw" 2835 | type: "ReLU" 2836 | bottom: "conv_7_3_pw" 2837 | top: "conv_7_3_pw" 2838 | } 2839 | layer { 2840 | name: "conv_7_3_dw" 2841 | type: "Convolution" 2842 | bottom: "conv_7_3_pw" 2843 | top: "conv_7_3_dw" 2844 | param { 2845 | lr_mult: 1.0 2846 | decay_mult: 1.0 2847 | } 2848 | convolution_param { 2849 | num_output: 480 2850 | bias_term: false 2851 | pad: 1 2852 | kernel_size: 3 2853 | group: 480 2854 | stride: 1 2855 | weight_filler { 2856 | type: "msra" 2857 | } 2858 | bias_filler { 2859 | type: "constant" 2860 | value: 0.0 2861 | } 2862 | engine: CAFFE 2863 | } 2864 | } 2865 | layer { 2866 | name: "bn_7_3_dw" 2867 | type: "BatchNorm" 2868 | bottom: "conv_7_3_dw" 2869 | top: "conv_7_3_dw" 2870 | param { 2871 | lr_mult: 0.0 2872 | decay_mult: 0.0 2873 | } 2874 | param { 2875 | lr_mult: 0.0 2876 | decay_mult: 0.0 2877 | } 2878 | param { 2879 | lr_mult: 0.0 2880 | decay_mult: 0.0 2881 | } 2882 | batch_norm_param { 2883 | use_global_stats: true 2884 | } 2885 | } 2886 | layer { 2887 | name: "scale_7_3_dw" 2888 | type: "Scale" 2889 | bottom: "conv_7_3_dw" 2890 | top: "conv_7_3_dw" 2891 | scale_param { 2892 | bias_term: true 2893 | } 2894 | } 2895 | layer { 2896 | name: "relu_7_3_dw" 2897 | type: "ReLU" 2898 | bottom: "conv_7_3_dw" 2899 | top: "conv_7_3_dw" 2900 | } 2901 | layer { 2902 | name: "conv_7_3_linear" 2903 | type: "Convolution" 2904 | bottom: "conv_7_3_dw" 2905 | top: "conv_7_3_linear" 2906 | param { 2907 | lr_mult: 1.0 2908 | decay_mult: 1.0 2909 | } 2910 | convolution_param { 2911 | num_output: 80 2912 | bias_term: false 2913 | pad: 0 2914 | kernel_size: 1 2915 | stride: 1 2916 | weight_filler { 2917 | type: "msra" 2918 | } 2919 | bias_filler { 2920 | type: "constant" 2921 | value: 0.0 2922 | } 2923 | } 2924 | } 2925 | layer { 2926 | name: "bn_7_3_linear" 2927 | type: "BatchNorm" 2928 | bottom: "conv_7_3_linear" 2929 | top: "conv_7_3_linear" 2930 | param { 2931 | lr_mult: 0.0 2932 | decay_mult: 0.0 2933 | } 2934 | param { 2935 | lr_mult: 0.0 2936 | decay_mult: 0.0 2937 | } 2938 | param { 2939 | lr_mult: 0.0 2940 | decay_mult: 0.0 2941 | } 2942 | batch_norm_param { 2943 | use_global_stats: true 2944 | } 2945 | } 2946 | layer { 2947 | name: "scale_7_3_linear" 2948 | type: "Scale" 2949 | bottom: "conv_7_3_linear" 2950 | top: "conv_7_3_linear" 2951 | scale_param { 2952 | bias_term: true 2953 | } 2954 | } 2955 | layer { 2956 | name: "add_7_3" 2957 | type: "Eltwise" 2958 | bottom: "add_7_2" 2959 | bottom: "conv_7_3_linear" 2960 | top: "add_7_3" 2961 | } 2962 | layer { 2963 | name: "conv_8_1_pw" 2964 | type: "Convolution" 2965 | bottom: "add_7_3" 2966 | top: "conv_8_1_pw" 2967 | param { 2968 | lr_mult: 1.0 2969 | decay_mult: 1.0 2970 | } 2971 | convolution_param { 2972 | num_output: 480 2973 | bias_term: false 2974 | pad: 0 2975 | kernel_size: 1 2976 | stride: 1 2977 | weight_filler { 2978 | type: "msra" 2979 | } 2980 | bias_filler { 2981 | type: "constant" 2982 | value: 0.0 2983 | } 2984 | } 2985 | } 2986 | layer { 2987 | name: "bn_8_1_pw" 2988 | type: "BatchNorm" 2989 | bottom: "conv_8_1_pw" 2990 | top: "conv_8_1_pw" 2991 | param { 2992 | lr_mult: 0.0 2993 | decay_mult: 0.0 2994 | } 2995 | param { 2996 | lr_mult: 0.0 2997 | decay_mult: 0.0 2998 | } 2999 | param { 3000 | lr_mult: 0.0 3001 | decay_mult: 0.0 3002 | } 3003 | batch_norm_param { 3004 | use_global_stats: true 3005 | } 3006 | } 3007 | layer { 3008 | name: "scale_8_1_pw" 3009 | type: "Scale" 3010 | bottom: "conv_8_1_pw" 3011 | top: "conv_8_1_pw" 3012 | scale_param { 3013 | bias_term: true 3014 | } 3015 | } 3016 | layer { 3017 | name: "relu_8_1_pw" 3018 | type: "ReLU" 3019 | bottom: "conv_8_1_pw" 3020 | top: "conv_8_1_pw" 3021 | } 3022 | layer { 3023 | name: "conv_8_1_dw" 3024 | type: "Convolution" 3025 | bottom: "conv_8_1_pw" 3026 | top: "conv_8_1_dw" 3027 | param { 3028 | lr_mult: 1.0 3029 | decay_mult: 1.0 3030 | } 3031 | convolution_param { 3032 | num_output: 480 3033 | bias_term: false 3034 | pad: 1 3035 | kernel_size: 3 3036 | group: 480 3037 | stride: 1 3038 | weight_filler { 3039 | type: "msra" 3040 | } 3041 | bias_filler { 3042 | type: "constant" 3043 | value: 0.0 3044 | } 3045 | engine: CAFFE 3046 | } 3047 | } 3048 | layer { 3049 | name: "bn_8_1_dw" 3050 | type: "BatchNorm" 3051 | bottom: "conv_8_1_dw" 3052 | top: "conv_8_1_dw" 3053 | param { 3054 | lr_mult: 0.0 3055 | decay_mult: 0.0 3056 | } 3057 | param { 3058 | lr_mult: 0.0 3059 | decay_mult: 0.0 3060 | } 3061 | param { 3062 | lr_mult: 0.0 3063 | decay_mult: 0.0 3064 | } 3065 | batch_norm_param { 3066 | use_global_stats: true 3067 | } 3068 | } 3069 | layer { 3070 | name: "scale_8_1_dw" 3071 | type: "Scale" 3072 | bottom: "conv_8_1_dw" 3073 | top: "conv_8_1_dw" 3074 | scale_param { 3075 | bias_term: true 3076 | } 3077 | } 3078 | layer { 3079 | name: "relu_8_1_dw" 3080 | type: "ReLU" 3081 | bottom: "conv_8_1_dw" 3082 | top: "conv_8_1_dw" 3083 | } 3084 | layer { 3085 | name: "conv_8_1_linear" 3086 | type: "Convolution" 3087 | bottom: "conv_8_1_dw" 3088 | top: "conv_8_1_linear" 3089 | param { 3090 | lr_mult: 1.0 3091 | decay_mult: 1.0 3092 | } 3093 | convolution_param { 3094 | num_output: 160 3095 | bias_term: false 3096 | pad: 0 3097 | kernel_size: 1 3098 | stride: 1 3099 | weight_filler { 3100 | type: "msra" 3101 | } 3102 | bias_filler { 3103 | type: "constant" 3104 | value: 0.0 3105 | } 3106 | } 3107 | } 3108 | layer { 3109 | name: "bn_8_1_linear" 3110 | type: "BatchNorm" 3111 | bottom: "conv_8_1_linear" 3112 | top: "conv_8_1_linear" 3113 | param { 3114 | lr_mult: 0.0 3115 | decay_mult: 0.0 3116 | } 3117 | param { 3118 | lr_mult: 0.0 3119 | decay_mult: 0.0 3120 | } 3121 | param { 3122 | lr_mult: 0.0 3123 | decay_mult: 0.0 3124 | } 3125 | batch_norm_param { 3126 | use_global_stats: true 3127 | } 3128 | } 3129 | layer { 3130 | name: "scale_8_1_linear" 3131 | type: "Scale" 3132 | bottom: "conv_8_1_linear" 3133 | top: "conv_8_1_linear" 3134 | scale_param { 3135 | bias_term: true 3136 | } 3137 | } 3138 | layer { 3139 | name: "conv_conv9" 3140 | type: "Convolution" 3141 | bottom: "conv_8_1_linear" 3142 | top: "conv_conv9" 3143 | param { 3144 | lr_mult: 1.0 3145 | decay_mult: 1.0 3146 | } 3147 | convolution_param { 3148 | num_output: 1280 3149 | bias_term: true 3150 | pad: 0 3151 | kernel_size: 1 3152 | stride: 1 3153 | weight_filler { 3154 | type: "msra" 3155 | } 3156 | bias_filler { 3157 | type: "constant" 3158 | value: 0.0 3159 | } 3160 | } 3161 | } 3162 | layer { 3163 | name: "bn_conv9" 3164 | type: "BatchNorm" 3165 | bottom: "conv_conv9" 3166 | top: "conv_conv9" 3167 | param { 3168 | lr_mult: 0.0 3169 | decay_mult: 0.0 3170 | } 3171 | param { 3172 | lr_mult: 0.0 3173 | decay_mult: 0.0 3174 | } 3175 | param { 3176 | lr_mult: 0.0 3177 | decay_mult: 0.0 3178 | } 3179 | batch_norm_param { 3180 | use_global_stats: true 3181 | } 3182 | } 3183 | layer { 3184 | name: "scale_conv9" 3185 | type: "Scale" 3186 | bottom: "conv_conv9" 3187 | top: "conv_conv9" 3188 | scale_param { 3189 | bias_term: true 3190 | } 3191 | } 3192 | layer { 3193 | name: "relu_conv9" 3194 | type: "ReLU" 3195 | bottom: "conv_conv9" 3196 | top: "conv_conv9" 3197 | } 3198 | layer { 3199 | name: "pool9" 3200 | type: "Pooling" 3201 | bottom: "conv_conv9" 3202 | top: "pool9" 3203 | pooling_param { 3204 | pool: AVE 3205 | stride: 1 3206 | global_pooling: true 3207 | } 3208 | } 3209 | layer { 3210 | name: "conv10" 3211 | type: "Convolution" 3212 | bottom: "pool9" 3213 | top: "conv10" 3214 | param { 3215 | lr_mult: 1.0 3216 | decay_mult: 1.0 3217 | } 3218 | convolution_param { 3219 | num_output: 1000 3220 | pad: 0 3221 | kernel_size: 1 3222 | stride: 1 3223 | weight_filler { 3224 | type: "msra" 3225 | } 3226 | bias_filler { 3227 | type: "constant" 3228 | value: 0.0 3229 | } 3230 | } 3231 | } 3232 | layer { 3233 | name: "loss" 3234 | type: "SoftmaxWithLoss" 3235 | bottom: "conv10" 3236 | bottom: "label" 3237 | top: "loss" 3238 | } 3239 | 3240 | --------------------------------------------------------------------------------