当前位置:   article > 正文

人脸属性分析多任务训练 multi cnn for face attribution_多任务人脸属性分类

多任务人脸属性分类

face_attribute.prototxt 

shuffle_net   10-20ms

  1. name: "FaceAttribution"
  2. layer {
  3. name: "data"
  4. type: "Data"
  5. top: "data"
  6. include {
  7. phase: TRAIN
  8. }
  9. transform_param {
  10. mean_value: 104
  11. mean_value: 117
  12. mean_value: 124
  13. scale: 0.0078125
  14. }
  15. data_param {
  16. source: "../lmdb/train_data_npd"
  17. batch_size: 128
  18. backend: LMDB
  19. }
  20. }
  21. layer {
  22. name: "data"
  23. type: "Data"
  24. top: "label"
  25. include {
  26. phase: TRAIN
  27. }
  28. data_param {
  29. source: "../lmdb/train_label_npd"
  30. batch_size: 128
  31. backend: LMDB
  32. }
  33. }
  34. layer {
  35. name: "data"
  36. type: "Data"
  37. top: "data"
  38. include {
  39. phase: TEST
  40. }
  41. transform_param {
  42. mean_value: 104
  43. mean_value: 117
  44. mean_value: 124
  45. scale: 0.0078125
  46. }
  47. data_param {
  48. source: "../lmdb/test_data_npd"
  49. batch_size: 128
  50. backend: LMDB
  51. }
  52. }
  53. layer {
  54. name: "data"
  55. type: "Data"
  56. top: "label"
  57. include {
  58. phase: TEST
  59. }
  60. data_param {
  61. source: "../lmdb/test_label_npd"
  62. batch_size: 128
  63. backend: LMDB
  64. }
  65. }
  66. layer {
  67. name: "conv1"
  68. type: "Convolution"
  69. bottom: "data"
  70. top: "conv1"
  71. convolution_param {
  72. num_output: 24
  73. pad: 1
  74. kernel_size: 3
  75. stride: 2
  76. bias_term: false
  77. weight_filler {
  78. type: "msra"
  79. }
  80. }
  81. }
  82. layer {
  83. name: "conv1_bn"
  84. type: "BatchNorm"
  85. bottom: "conv1"
  86. top: "conv1"
  87. param {
  88. lr_mult: 0
  89. decay_mult: 0
  90. }
  91. param {
  92. lr_mult: 0
  93. decay_mult: 0
  94. }
  95. param {
  96. lr_mult: 0
  97. decay_mult: 0
  98. }
  99. }
  100. layer {
  101. name: "conv1_scale"
  102. bottom: "conv1"
  103. top: "conv1"
  104. type: "Scale"
  105. scale_param {
  106. filler {
  107. value: 1
  108. }
  109. bias_term: true
  110. bias_filler {
  111. value: 0
  112. }
  113. }
  114. }
  115. layer {
  116. name: "conv1_relu"
  117. type: "ReLU"
  118. bottom: "conv1"
  119. top: "conv1"
  120. }
  121. layer {
  122. name: "conv2"
  123. type: "Convolution"
  124. bottom: "conv1"
  125. top: "conv2"
  126. convolution_param {
  127. num_output: 48
  128. pad: 1
  129. kernel_size: 3
  130. stride: 2
  131. bias_term: false
  132. weight_filler {
  133. type: "msra"
  134. }
  135. }
  136. }
  137. layer {
  138. name: "conv2_bn"
  139. type: "BatchNorm"
  140. bottom: "conv2"
  141. top: "conv2"
  142. param {
  143. lr_mult: 0
  144. decay_mult: 0
  145. }
  146. param {
  147. lr_mult: 0
  148. decay_mult: 0
  149. }
  150. param {
  151. lr_mult: 0
  152. decay_mult: 0
  153. }
  154. }
  155. layer {
  156. name: "conv2_scale"
  157. bottom: "conv2"
  158. top: "conv2"
  159. type: "Scale"
  160. scale_param {
  161. filler {
  162. value: 1
  163. }
  164. bias_term: true
  165. bias_filler {
  166. value: 0
  167. }
  168. }
  169. }
  170. layer {
  171. name: "conv2_relu"
  172. type: "ReLU"
  173. bottom: "conv2"
  174. top: "conv2"
  175. }
  176. layer {
  177. name: "branch1_1_conv1"
  178. type: "ConvolutionDepthwise"
  179. bottom: "conv2"
  180. top: "branch1_1_conv1"
  181. convolution_param {
  182. num_output: 48
  183. kernel_size: 3
  184. stride: 2
  185. pad: 1
  186. bias_term: false
  187. weight_filler {
  188. type: "msra"
  189. }
  190. }
  191. }
  192. layer {
  193. name: "branch1_1_conv1_bn"
  194. type: "BatchNorm"
  195. bottom: "branch1_1_conv1"
  196. top: "branch1_1_conv1"
  197. param {
  198. lr_mult: 0
  199. decay_mult: 0
  200. }
  201. param {
  202. lr_mult: 0
  203. decay_mult: 0
  204. }
  205. param {
  206. lr_mult: 0
  207. decay_mult: 0
  208. }
  209. }
  210. layer {
  211. name: "branch1_1_conv1_scale"
  212. bottom: "branch1_1_conv1"
  213. top: "branch1_1_conv1"
  214. type: "Scale"
  215. scale_param {
  216. filler {
  217. value: 1
  218. }
  219. bias_term: true
  220. bias_filler {
  221. value: 0
  222. }
  223. }
  224. }
  225. layer {
  226. name: "branch1_1_conv2"
  227. type: "Convolution"
  228. bottom: "branch1_1_conv1"
  229. top: "branch1_1_conv2"
  230. convolution_param {
  231. num_output: 64
  232. kernel_size: 1
  233. stride: 1
  234. pad: 0
  235. bias_term: false
  236. weight_filler {
  237. type: "msra"
  238. }
  239. }
  240. }
  241. layer {
  242. name: "branch1_1_conv2_bn"
  243. type: "BatchNorm"
  244. bottom: "branch1_1_conv2"
  245. top: "branch1_1_conv2"
  246. param {
  247. lr_mult: 0
  248. decay_mult: 0
  249. }
  250. param {
  251. lr_mult: 0
  252. decay_mult: 0
  253. }
  254. param {
  255. lr_mult: 0
  256. decay_mult: 0
  257. }
  258. }
  259. layer {
  260. name: "branch1_1_conv2_scale"
  261. bottom: "branch1_1_conv2"
  262. top: "branch1_1_conv2"
  263. type: "Scale"
  264. scale_param {
  265. filler {
  266. value: 1
  267. }
  268. bias_term: true
  269. bias_filler {
  270. value: 0
  271. }
  272. }
  273. }
  274. layer {
  275. name: "branch1_1_conv2_relu"
  276. type: "ReLU"
  277. bottom: "branch1_1_conv2"
  278. top: "branch1_1_conv2"
  279. }
  280. layer {
  281. name: "branch1_2_conv1"
  282. type: "Convolution"
  283. bottom: "conv2"
  284. top: "branch1_2_conv1"
  285. convolution_param {
  286. num_output: 64
  287. kernel_size: 1
  288. stride: 1
  289. pad: 0
  290. bias_term: false
  291. weight_filler {
  292. type: "msra"
  293. }
  294. }
  295. }
  296. layer {
  297. name: "branch1_2_conv1_bn"
  298. type: "BatchNorm"
  299. bottom: "branch1_2_conv1"
  300. top: "branch1_2_conv1"
  301. param {
  302. lr_mult: 0
  303. decay_mult: 0
  304. }
  305. param {
  306. lr_mult: 0
  307. decay_mult: 0
  308. }
  309. param {
  310. lr_mult: 0
  311. decay_mult: 0
  312. }
  313. }
  314. layer {
  315. name: "branch1_2_conv1_scale"
  316. bottom: "branch1_2_conv1"
  317. top: "branch1_2_conv1"
  318. type: "Scale"
  319. scale_param {
  320. filler {
  321. value: 1
  322. }
  323. bias_term: true
  324. bias_filler {
  325. value: 0
  326. }
  327. }
  328. }
  329. layer {
  330. name: "branch1_2_conv1_relu"
  331. type: "ReLU"
  332. bottom: "branch1_2_conv1"
  333. top: "branch1_2_conv1"
  334. }
  335. layer {
  336. name: "branch1_2_conv2"
  337. type: "ConvolutionDepthwise"
  338. bottom: "branch1_2_conv1"
  339. top: "branch1_2_conv2"
  340. convolution_param {
  341. num_output: 64
  342. kernel_size: 3
  343. stride: 2
  344. pad: 1
  345. bias_term: false
  346. weight_filler {
  347. type: "msra"
  348. }
  349. }
  350. }
  351. layer {
  352. name: "branch1_2_conv2_bn"
  353. type: "BatchNorm"
  354. bottom: "branch1_2_conv2"
  355. top: "branch1_2_conv2"
  356. param {
  357. lr_mult: 0
  358. decay_mult: 0
  359. }
  360. param {
  361. lr_mult: 0
  362. decay_mult: 0
  363. }
  364. param {
  365. lr_mult: 0
  366. decay_mult: 0
  367. }
  368. }
  369. layer {
  370. name: "branch1_2_conv2_scale"
  371. bottom: "branch1_2_conv2"
  372. top: "branch1_2_conv2"
  373. type: "Scale"
  374. scale_param {
  375. filler {
  376. value: 1
  377. }
  378. bias_term: true
  379. bias_filler {
  380. value: 0
  381. }
  382. }
  383. }
  384. layer {
  385. name: "branch1_2_conv3"
  386. type: "Convolution"
  387. bottom: "branch1_2_conv2"
  388. top: "branch1_2_conv3"
  389. convolution_param {
  390. num_output: 64
  391. kernel_size: 1
  392. stride: 1
  393. pad: 0
  394. bias_term: false
  395. weight_filler {
  396. type: "msra"
  397. }
  398. }
  399. }
  400. layer {
  401. name: "branch1_2_conv3_bn"
  402. type: "BatchNorm"
  403. bottom: "branch1_2_conv3"
  404. top: "branch1_2_conv3"
  405. param {
  406. lr_mult: 0
  407. decay_mult: 0
  408. }
  409. param {
  410. lr_mult: 0
  411. decay_mult: 0
  412. }
  413. param {
  414. lr_mult: 0
  415. decay_mult: 0
  416. }
  417. }
  418. layer {
  419. name: "branch1_2_conv3_scale"
  420. bottom: "branch1_2_conv3"
  421. top: "branch1_2_conv3"
  422. type: "Scale"
  423. scale_param {
  424. filler {
  425. value: 1
  426. }
  427. bias_term: true
  428. bias_filler {
  429. value: 0
  430. }
  431. }
  432. }
  433. layer {
  434. name: "branch1_2_conv3_relu"
  435. type: "ReLU"
  436. bottom: "branch1_2_conv3"
  437. top: "branch1_2_conv3"
  438. }
  439. layer {
  440. name: "concat1"
  441. type: "Concat"
  442. bottom: "branch1_1_conv2"
  443. bottom: "branch1_2_conv3"
  444. top: "concat1"
  445. }
  446. layer {
  447. name: "shuffle1"
  448. type: "ShuffleChannel"
  449. bottom: "concat1"
  450. top: "shuffle1"
  451. shuffle_channel_param {
  452. group: 2
  453. }
  454. }
  455. layer {
  456. name: "slice2"
  457. type: "Slice"
  458. bottom: "shuffle1"
  459. top: "branch2_1"
  460. top: "branch2_2"
  461. slice_param {
  462. slice_point: 64
  463. axis: 1
  464. }
  465. }
  466. layer {
  467. name: "branch2_2_conv1"
  468. type: "Convolution"
  469. bottom: "branch2_2"
  470. top: "branch2_2_conv1"
  471. convolution_param {
  472. num_output: 64
  473. kernel_size: 1
  474. stride: 1
  475. pad: 0
  476. bias_term: false
  477. weight_filler {
  478. type: "msra"
  479. }
  480. }
  481. }
  482. layer {
  483. name: "branch2_2_conv1_bn"
  484. type: "BatchNorm"
  485. bottom: "branch2_2_conv1"
  486. top: "branch2_2_conv1"
  487. param {
  488. lr_mult: 0
  489. decay_mult: 0
  490. }
  491. param {
  492. lr_mult: 0
  493. decay_mult: 0
  494. }
  495. param {
  496. lr_mult: 0
  497. decay_mult: 0
  498. }
  499. }
  500. layer {
  501. name: "branch2_2_conv1_scale"
  502. bottom: "branch2_2_conv1"
  503. top: "branch2_2_conv1"
  504. type: "Scale"
  505. scale_param {
  506. filler {
  507. value: 1
  508. }
  509. bias_term: true
  510. bias_filler {
  511. value: 0
  512. }
  513. }
  514. }
  515. layer {
  516. name: "branch2_2_conv1_relu"
  517. type: "ReLU"
  518. bottom: "branch2_2_conv1"
  519. top: "branch2_2_conv1"
  520. }
  521. layer {
  522. name: "branch2_2_conv2"
  523. type: "ConvolutionDepthwise"
  524. bottom: "branch2_2_conv1"
  525. top: "branch2_2_conv2"
  526. convolution_param {
  527. num_output: 64
  528. kernel_size: 3
  529. stride: 1
  530. pad: 1
  531. bias_term: false
  532. weight_filler {
  533. type: "msra"
  534. }
  535. }
  536. }
  537. layer {
  538. name: "branch2_2_conv2_bn"
  539. type: "BatchNorm"
  540. bottom: "branch2_2_conv2"
  541. top: "branch2_2_conv2"
  542. param {
  543. lr_mult: 0
  544. decay_mult: 0
  545. }
  546. param {
  547. lr_mult: 0
  548. decay_mult: 0
  549. }
  550. param {
  551. lr_mult: 0
  552. decay_mult: 0
  553. }
  554. }
  555. layer {
  556. name: "branch2_2_conv2_scale"
  557. bottom: "branch2_2_conv2"
  558. top: "branch2_2_conv2"
  559. type: "Scale"
  560. scale_param {
  561. filler {
  562. value: 1
  563. }
  564. bias_term: true
  565. bias_filler {
  566. value: 0
  567. }
  568. }
  569. }
  570. layer {
  571. name: "branch2_2_conv3"
  572. type: "Convolution"
  573. bottom: "branch2_2_conv2"
  574. top: "branch2_2_conv3"
  575. convolution_param {
  576. num_output: 64
  577. kernel_size: 1
  578. stride: 1
  579. pad: 0
  580. bias_term: false
  581. weight_filler {
  582. type: "msra"
  583. }
  584. }
  585. }
  586. layer {
  587. name: "branch2_2_conv3_bn"
  588. type: "BatchNorm"
  589. bottom: "branch2_2_conv3"
  590. top: "branch2_2_conv3"
  591. param {
  592. lr_mult: 0
  593. decay_mult: 0
  594. }
  595. param {
  596. lr_mult: 0
  597. decay_mult: 0
  598. }
  599. param {
  600. lr_mult: 0
  601. decay_mult: 0
  602. }
  603. }
  604. layer {
  605. name: "branch2_2_conv3_scale"
  606. bottom: "branch2_2_conv3"
  607. top: "branch2_2_conv3"
  608. type: "Scale"
  609. scale_param {
  610. filler {
  611. value: 1
  612. }
  613. bias_term: true
  614. bias_filler {
  615. value: 0
  616. }
  617. }
  618. }
  619. layer {
  620. name: "branch2_2_conv3_relu"
  621. type: "ReLU"
  622. bottom: "branch2_2_conv3"
  623. top: "branch2_2_conv3"
  624. }
  625. layer {
  626. name: "concat2"
  627. type: "Concat"
  628. bottom: "branch2_1"
  629. bottom: "branch2_2_conv3"
  630. top: "concat2"
  631. }
  632. layer {
  633. name: "shuffle2"
  634. type: "ShuffleChannel"
  635. bottom: "concat2"
  636. top: "shuffle2"
  637. shuffle_channel_param {
  638. group: 2
  639. }
  640. }
  641. layer {
  642. name: "slice3"
  643. type: "Slice"
  644. bottom: "shuffle2"
  645. top: "branch3_1"
  646. top: "branch3_2"
  647. slice_param {
  648. slice_point: 64
  649. axis: 1
  650. }
  651. }
  652. layer {
  653. name: "branch3_2_conv1"
  654. type: "Convolution"
  655. bottom: "branch3_2"
  656. top: "branch3_2_conv1"
  657. convolution_param {
  658. num_output: 64
  659. kernel_size: 1
  660. stride: 1
  661. pad: 0
  662. bias_term: false
  663. weight_filler {
  664. type: "msra"
  665. }
  666. }
  667. }
  668. layer {
  669. name: "branch3_2_conv1_bn"
  670. type: "BatchNorm"
  671. bottom: "branch3_2_conv1"
  672. top: "branch3_2_conv1"
  673. param {
  674. lr_mult: 0
  675. decay_mult: 0
  676. }
  677. param {
  678. lr_mult: 0
  679. decay_mult: 0
  680. }
  681. param {
  682. lr_mult: 0
  683. decay_mult: 0
  684. }
  685. }
  686. layer {
  687. name: "branch3_2_conv1_scale"
  688. bottom: "branch3_2_conv1"
  689. top: "branch3_2_conv1"
  690. type: "Scale"
  691. scale_param {
  692. filler {
  693. value: 1
  694. }
  695. bias_term: true
  696. bias_filler {
  697. value: 0
  698. }
  699. }
  700. }
  701. layer {
  702. name: "branch3_2_conv1_relu"
  703. type: "ReLU"
  704. bottom: "branch3_2_conv1"
  705. top: "branch3_2_conv1"
  706. }
  707. layer {
  708. name: "branch3_2_conv2"
  709. type: "ConvolutionDepthwise"
  710. bottom: "branch3_2_conv1"
  711. top: "branch3_2_conv2"
  712. convolution_param {
  713. num_output: 64
  714. kernel_size: 3
  715. stride: 1
  716. pad: 1
  717. bias_term: false
  718. weight_filler {
  719. type: "msra"
  720. }
  721. }
  722. }
  723. layer {
  724. name: "branch3_2_conv2_bn"
  725. type: "BatchNorm"
  726. bottom: "branch3_2_conv2"
  727. top: "branch3_2_conv2"
  728. param {
  729. lr_mult: 0
  730. decay_mult: 0
  731. }
  732. param {
  733. lr_mult: 0
  734. decay_mult: 0
  735. }
  736. param {
  737. lr_mult: 0
  738. decay_mult: 0
  739. }
  740. }
  741. layer {
  742. name: "branch3_2_conv2_scale"
  743. bottom: "branch3_2_conv2"
  744. top: "branch3_2_conv2"
  745. type: "Scale"
  746. scale_param {
  747. filler {
  748. value: 1
  749. }
  750. bias_term: true
  751. bias_filler {
  752. value: 0
  753. }
  754. }
  755. }
  756. layer {
  757. name: "branch3_2_conv3"
  758. type: "Convolution"
  759. bottom: "branch3_2_conv2"
  760. top: "branch3_2_conv3"
  761. convolution_param {
  762. num_output: 64
  763. kernel_size: 1
  764. stride: 1
  765. pad: 0
  766. bias_term: false
  767. weight_filler {
  768. type: "msra"
  769. }
  770. }
  771. }
  772. layer {
  773. name: "branch3_2_conv3_bn"
  774. type: "BatchNorm"
  775. bottom: "branch3_2_conv3"
  776. top: "branch3_2_conv3"
  777. param {
  778. lr_mult: 0
  779. decay_mult: 0
  780. }
  781. param {
  782. lr_mult: 0
  783. decay_mult: 0
  784. }
  785. param {
  786. lr_mult: 0
  787. decay_mult: 0
  788. }
  789. }
  790. layer {
  791. name: "branch3_2_conv3_scale"
  792. bottom: "branch3_2_conv3"
  793. top: "branch3_2_conv3"
  794. type: "Scale"
  795. scale_param {
  796. filler {
  797. value: 1
  798. }
  799. bias_term: true
  800. bias_filler {
  801. value: 0
  802. }
  803. }
  804. }
  805. layer {
  806. name: "branch3_2_conv3_relu"
  807. type: "ReLU"
  808. bottom: "branch3_2_conv3"
  809. top: "branch3_2_conv3"
  810. }
  811. layer {
  812. name: "concat3"
  813. type: "Concat"
  814. bottom: "branch3_1"
  815. bottom: "branch3_2_conv3"
  816. top: "concat3"
  817. }
  818. layer {
  819. name: "shuffle3"
  820. type: "ShuffleChannel"
  821. bottom: "concat3"
  822. top: "shuffle3"
  823. shuffle_channel_param {
  824. group: 2
  825. }
  826. }
  827. layer {
  828. name: "slice4"
  829. type: "Slice"
  830. bottom: "shuffle3"
  831. top: "branch4_1"
  832. top: "branch4_2"
  833. slice_param {
  834. slice_point: 64
  835. axis: 1
  836. }
  837. }
  838. layer {
  839. name: "branch4_2_conv1"
  840. type: "Convolution"
  841. bottom: "branch4_2"
  842. top: "branch4_2_conv1"
  843. convolution_param {
  844. num_output: 64
  845. kernel_size: 1
  846. stride: 1
  847. pad: 0
  848. bias_term: false
  849. weight_filler {
  850. type: "msra"
  851. }
  852. }
  853. }
  854. layer {
  855. name: "branch4_2_conv1_bn"
  856. type: "BatchNorm"
  857. bottom: "branch4_2_conv1"
  858. top: "branch4_2_conv1"
  859. param {
  860. lr_mult: 0
  861. decay_mult: 0
  862. }
  863. param {
  864. lr_mult: 0
  865. decay_mult: 0
  866. }
  867. param {
  868. lr_mult: 0
  869. decay_mult: 0
  870. }
  871. }
  872. layer {
  873. name: "branch4_2_conv1_scale"
  874. bottom: "branch4_2_conv1"
  875. top: "branch4_2_conv1"
  876. type: "Scale"
  877. scale_param {
  878. filler {
  879. value: 1
  880. }
  881. bias_term: true
  882. bias_filler {
  883. value: 0
  884. }
  885. }
  886. }
  887. layer {
  888. name: "branch4_2_conv1_relu"
  889. type: "ReLU"
  890. bottom: "branch4_2_conv1"
  891. top: "branch4_2_conv1"
  892. }
  893. layer {
  894. name: "branch4_2_conv2"
  895. type: "ConvolutionDepthwise"
  896. bottom: "branch4_2_conv1"
  897. top: "branch4_2_conv2"
  898. convolution_param {
  899. num_output: 64
  900. kernel_size: 3
  901. stride: 1
  902. pad: 1
  903. bias_term: false
  904. weight_filler {
  905. type: "msra"
  906. }
  907. }
  908. }
  909. layer {
  910. name: "branch4_2_conv2_bn"
  911. type: "BatchNorm"
  912. bottom: "branch4_2_conv2"
  913. top: "branch4_2_conv2"
  914. param {
  915. lr_mult: 0
  916. decay_mult: 0
  917. }
  918. param {
  919. lr_mult: 0
  920. decay_mult: 0
  921. }
  922. param {
  923. lr_mult: 0
  924. decay_mult: 0
  925. }
  926. }
  927. layer {
  928. name: "branch4_2_conv2_scale"
  929. bottom: "branch4_2_conv2"
  930. top: "branch4_2_conv2"
  931. type: "Scale"
  932. scale_param {
  933. filler {
  934. value: 1
  935. }
  936. bias_term: true
  937. bias_filler {
  938. value: 0
  939. }
  940. }
  941. }
  942. layer {
  943. name: "branch4_2_conv3"
  944. type: "Convolution"
  945. bottom: "branch4_2_conv2"
  946. top: "branch4_2_conv3"
  947. convolution_param {
  948. num_output: 64
  949. kernel_size: 1
  950. stride: 1
  951. pad: 0
  952. bias_term: false
  953. weight_filler {
  954. type: "msra"
  955. }
  956. }
  957. }
  958. layer {
  959. name: "branch4_2_conv3_bn"
  960. type: "BatchNorm"
  961. bottom: "branch4_2_conv3"
  962. top: "branch4_2_conv3"
  963. param {
  964. lr_mult: 0
  965. decay_mult: 0
  966. }
  967. param {
  968. lr_mult: 0
  969. decay_mult: 0
  970. }
  971. param {
  972. lr_mult: 0
  973. decay_mult: 0
  974. }
  975. }
  976. layer {
  977. name: "branch4_2_conv3_scale"
  978. bottom: "branch4_2_conv3"
  979. top: "branch4_2_conv3"
  980. type: "Scale"
  981. scale_param {
  982. filler {
  983. value: 1
  984. }
  985. bias_term: true
  986. bias_filler {
  987. value: 0
  988. }
  989. }
  990. }
  991. layer {
  992. name: "branch4_2_conv3_relu"
  993. type: "ReLU"
  994. bottom: "branch4_2_conv3"
  995. top: "branch4_2_conv3"
  996. }
  997. layer {
  998. name: "concat4"
  999. type: "Concat"
  1000. bottom: "branch4_1"
  1001. bottom: "branch4_2_conv3"
  1002. top: "concat4"
  1003. }
  1004. layer {
  1005. name: "shuffle4"
  1006. type: "ShuffleChannel"
  1007. bottom: "concat4"
  1008. top: "shuffle4"
  1009. shuffle_channel_param {
  1010. group: 2
  1011. }
  1012. }
  1013. layer {
  1014. name: "age/conv_4_1_pw"
  1015. type: "Convolution"
  1016. bottom: "shuffle4"
  1017. top: "age/conv_4_1_pw"
  1018. param {
  1019. lr_mult: 1.0
  1020. decay_mult: 1.0
  1021. }
  1022. convolution_param {
  1023. num_output: 192
  1024. bias_term: false
  1025. pad: 0
  1026. kernel_size: 1
  1027. stride: 1
  1028. weight_filler {
  1029. type: "msra"
  1030. }
  1031. bias_filler {
  1032. type: "constant"
  1033. value: 0.0
  1034. }
  1035. }
  1036. }
  1037. layer {
  1038. name: "age/bn_4_1_pw"
  1039. type: "BatchNorm"
  1040. bottom: "age/conv_4_1_pw"
  1041. top: "age/conv_4_1_pw"
  1042. param {
  1043. lr_mult: 0.0
  1044. decay_mult: 0.0
  1045. }
  1046. param {
  1047. lr_mult: 0.0
  1048. decay_mult: 0.0
  1049. }
  1050. param {
  1051. lr_mult: 0.0
  1052. decay_mult: 0.0
  1053. }
  1054. }
  1055. layer {
  1056. name: "age/scale_4_1_pw"
  1057. type: "Scale"
  1058. bottom: "age/conv_4_1_pw"
  1059. top: "age/conv_4_1_pw"
  1060. scale_param {
  1061. bias_term: true
  1062. }
  1063. }
  1064. layer {
  1065. name: "age/relu_4_1_pw"
  1066. type: "ReLU"
  1067. bottom: "age/conv_4_1_pw"
  1068. top: "age/conv_4_1_pw"
  1069. }
  1070. layer {
  1071. name: "age/conv_4_1_dw"
  1072. type: "ConvolutionDepthwise"
  1073. bottom: "age/conv_4_1_pw"
  1074. top: "age/conv_4_1_dw"
  1075. param {
  1076. lr_mult: 1.0
  1077. decay_mult: 1.0
  1078. }
  1079. convolution_param {
  1080. num_output: 192
  1081. bias_term: false
  1082. pad: 1
  1083. kernel_size: 3
  1084. stride: 2
  1085. weight_filler {
  1086. type: "msra"
  1087. }
  1088. bias_filler {
  1089. type: "constant"
  1090. value: 0.0
  1091. }
  1092. }
  1093. }
  1094. layer {
  1095. name: "age/bn_4_1_dw"
  1096. type: "BatchNorm"
  1097. bottom: "age/conv_4_1_dw"
  1098. top: "age/conv_4_1_dw"
  1099. param {
  1100. lr_mult: 0.0
  1101. decay_mult: 0.0
  1102. }
  1103. param {
  1104. lr_mult: 0.0
  1105. decay_mult: 0.0
  1106. }
  1107. param {
  1108. lr_mult: 0.0
  1109. decay_mult: 0.0
  1110. }
  1111. }
  1112. layer {
  1113. name: "age/scale_4_1_dw"
  1114. type: "Scale"
  1115. bottom: "age/conv_4_1_dw"
  1116. top: "age/conv_4_1_dw"
  1117. scale_param {
  1118. bias_term: true
  1119. }
  1120. }
  1121. layer {
  1122. name: "age/relu_4_1_dw"
  1123. type: "ReLU"
  1124. bottom: "age/conv_4_1_dw"
  1125. top: "age/conv_4_1_dw"
  1126. }
  1127. layer {
  1128. name: "age/conv_4_1_linear"
  1129. type: "Convolution"
  1130. bottom: "age/conv_4_1_dw"
  1131. top: "age/conv_4_1_linear"
  1132. param {
  1133. lr_mult: 1.0
  1134. decay_mult: 1.0
  1135. }
  1136. convolution_param {
  1137. num_output: 96
  1138. bias_term: false
  1139. pad: 0
  1140. kernel_size: 1
  1141. stride: 1
  1142. weight_filler {
  1143. type: "msra"
  1144. }
  1145. bias_filler {
  1146. type: "constant"
  1147. value: 0.0
  1148. }
  1149. }
  1150. }
  1151. layer {
  1152. name: "age/bn_4_1_linear"
  1153. type: "BatchNorm"
  1154. bottom: "age/conv_4_1_linear"
  1155. top: "age/conv_4_1_linear"
  1156. param {
  1157. lr_mult: 0.0
  1158. decay_mult: 0.0
  1159. }
  1160. param {
  1161. lr_mult: 0.0
  1162. decay_mult: 0.0
  1163. }
  1164. param {
  1165. lr_mult: 0.0
  1166. decay_mult: 0.0
  1167. }
  1168. }
  1169. layer {
  1170. name: "age/scale_4_1_linear"
  1171. type: "Scale"
  1172. bottom: "age/conv_4_1_linear"
  1173. top: "age/conv_4_1_linear"
  1174. scale_param {
  1175. bias_term: true
  1176. }
  1177. }
  1178. layer {
  1179. name: "age/conv_4_2_pw"
  1180. type: "Convolution"
  1181. bottom: "age/conv_4_1_linear"
  1182. top: "age/conv_4_2_pw"
  1183. param {
  1184. lr_mult: 1.0
  1185. decay_mult: 1.0
  1186. }
  1187. convolution_param {
  1188. num_output: 192
  1189. bias_term: false
  1190. pad: 0
  1191. kernel_size: 1
  1192. stride: 1
  1193. weight_filler {
  1194. type: "msra"
  1195. }
  1196. bias_filler {
  1197. type: "constant"
  1198. value: 0.0
  1199. }
  1200. }
  1201. }
  1202. layer {
  1203. name: "age/bn_4_2_pw"
  1204. type: "BatchNorm"
  1205. bottom: "age/conv_4_2_pw"
  1206. top: "age/conv_4_2_pw"
  1207. param {
  1208. lr_mult: 0.0
  1209. decay_mult: 0.0
  1210. }
  1211. param {
  1212. lr_mult: 0.0
  1213. decay_mult: 0.0
  1214. }
  1215. param {
  1216. lr_mult: 0.0
  1217. decay_mult: 0.0
  1218. }
  1219. }
  1220. layer {
  1221. name: "age/scale_4_2_pw"
  1222. type: "Scale"
  1223. bottom: "age/conv_4_2_pw"
  1224. top: "age/conv_4_2_pw"
  1225. scale_param {
  1226. bias_term: true
  1227. }
  1228. }
  1229. layer {
  1230. name: "age/relu_4_2_pw"
  1231. type: "ReLU"
  1232. bottom: "age/conv_4_2_pw"
  1233. top: "age/conv_4_2_pw"
  1234. }
  1235. layer {
  1236. name: "age/conv_4_2_dw"
  1237. type: "ConvolutionDepthwise"
  1238. bottom: "age/conv_4_2_pw"
  1239. top: "age/conv_4_2_dw"
  1240. param {
  1241. lr_mult: 1.0
  1242. decay_mult: 1.0
  1243. }
  1244. convolution_param {
  1245. num_output: 192
  1246. bias_term: false
  1247. pad: 1
  1248. kernel_size: 3
  1249. stride: 1
  1250. weight_filler {
  1251. type: "msra"
  1252. }
  1253. bias_filler {
  1254. type: "constant"
  1255. value: 0.0
  1256. }
  1257. }
  1258. }
  1259. layer {
  1260. name: "age/bn_4_2_dw"
  1261. type: "BatchNorm"
  1262. bottom: "age/conv_4_2_dw"
  1263. top: "age/conv_4_2_dw"
  1264. param {
  1265. lr_mult: 0.0
  1266. decay_mult: 0.0
  1267. }
  1268. param {
  1269. lr_mult: 0.0
  1270. decay_mult: 0.0
  1271. }
  1272. param {
  1273. lr_mult: 0.0
  1274. decay_mult: 0.0
  1275. }
  1276. }
  1277. layer {
  1278. name: "age/scale_4_2_dw"
  1279. type: "Scale"
  1280. bottom: "age/conv_4_2_dw"
  1281. top: "age/conv_4_2_dw"
  1282. scale_param {
  1283. bias_term: true
  1284. }
  1285. }
  1286. layer {
  1287. name: "age/relu_4_2_dw"
  1288. type: "ReLU"
  1289. bottom: "age/conv_4_2_dw"
  1290. top: "age/conv_4_2_dw"
  1291. }
  1292. layer {
  1293. name: "age/conv_4_2_linear"
  1294. type: "Convolution"
  1295. bottom: "age/conv_4_2_dw"
  1296. top: "age/conv_4_2_linear"
  1297. param {
  1298. lr_mult: 1.0
  1299. decay_mult: 1.0
  1300. }
  1301. convolution_param {
  1302. num_output: 96
  1303. bias_term: false
  1304. pad: 0
  1305. kernel_size: 1
  1306. stride: 1
  1307. weight_filler {
  1308. type: "msra"
  1309. }
  1310. bias_filler {
  1311. type: "constant"
  1312. value: 0.0
  1313. }
  1314. }
  1315. }
  1316. layer {
  1317. name: "age/bn_4_2_linear"
  1318. type: "BatchNorm"
  1319. bottom: "age/conv_4_2_linear"
  1320. top: "age/conv_4_2_linear"
  1321. param {
  1322. lr_mult: 0.0
  1323. decay_mult: 0.0
  1324. }
  1325. param {
  1326. lr_mult: 0.0
  1327. decay_mult: 0.0
  1328. }
  1329. param {
  1330. lr_mult: 0.0
  1331. decay_mult: 0.0
  1332. }
  1333. }
  1334. layer {
  1335. name: "age/scale_4_2_linear"
  1336. type: "Scale"
  1337. bottom: "age/conv_4_2_linear"
  1338. top: "age/conv_4_2_linear"
  1339. scale_param {
  1340. bias_term: true
  1341. }
  1342. }
  1343. layer {
  1344. name: "age/add_4_2"
  1345. type: "Eltwise"
  1346. bottom: "age/conv_4_1_linear"
  1347. bottom: "age/conv_4_2_linear"
  1348. top: "age/add_4_2"
  1349. }
  1350. layer {
  1351. name: "age/ip1"
  1352. type: "InnerProduct"
  1353. bottom: "age/add_4_2"
  1354. top: "age/ip1"
  1355. param {
  1356. lr_mult: 1
  1357. }
  1358. param {
  1359. lr_mult: 2
  1360. }
  1361. inner_product_param {
  1362. num_output: 96
  1363. weight_filler {
  1364. type: "xavier"
  1365. }
  1366. bias_filler {
  1367. type: "constant"
  1368. }
  1369. }
  1370. }
  1371. layer {
  1372. name: "age/ip2"
  1373. type: "InnerProduct"
  1374. bottom: "age/ip1"
  1375. top: "age/ip2"
  1376. param {
  1377. lr_mult: 1
  1378. }
  1379. param {
  1380. lr_mult: 2
  1381. }
  1382. inner_product_param {
  1383. num_output: 1
  1384. weight_filler {
  1385. type: "xavier"
  1386. }
  1387. bias_filler {
  1388. type: "constant"
  1389. }
  1390. }
  1391. }
  1392. layer {
  1393. name: "emotion/conv_4_1_pw"
  1394. type: "Convolution"
  1395. bottom: "shuffle4"
  1396. top: "emotion/conv_4_1_pw"
  1397. param {
  1398. lr_mult: 1.0
  1399. decay_mult: 1.0
  1400. }
  1401. convolution_param {
  1402. num_output: 192
  1403. bias_term: false
  1404. pad: 0
  1405. kernel_size: 1
  1406. stride: 1
  1407. weight_filler {
  1408. type: "msra"
  1409. }
  1410. bias_filler {
  1411. type: "constant"
  1412. value: 0.0
  1413. }
  1414. }
  1415. }
  1416. layer {
  1417. name: "emotion/bn_4_1_pw"
  1418. type: "BatchNorm"
  1419. bottom: "emotion/conv_4_1_pw"
  1420. top: "emotion/conv_4_1_pw"
  1421. param {
  1422. lr_mult: 0.0
  1423. decay_mult: 0.0
  1424. }
  1425. param {
  1426. lr_mult: 0.0
  1427. decay_mult: 0.0
  1428. }
  1429. param {
  1430. lr_mult: 0.0
  1431. decay_mult: 0.0
  1432. }
  1433. }
  1434. layer {
  1435. name: "emotion/scale_4_1_pw"
  1436. type: "Scale"
  1437. bottom: "emotion/conv_4_1_pw"
  1438. top: "emotion/conv_4_1_pw"
  1439. scale_param {
  1440. bias_term: true
  1441. }
  1442. }
  1443. layer {
  1444. name: "emotion/relu_4_1_pw"
  1445. type: "ReLU"
  1446. bottom: "emotion/conv_4_1_pw"
  1447. top: "emotion/conv_4_1_pw"
  1448. }
  1449. layer {
  1450. name: "emotion/conv_4_1_dw"
  1451. type: "ConvolutionDepthwise"
  1452. bottom: "emotion/conv_4_1_pw"
  1453. top: "emotion/conv_4_1_dw"
  1454. param {
  1455. lr_mult: 1.0
  1456. decay_mult: 1.0
  1457. }
  1458. convolution_param {
  1459. num_output: 192
  1460. bias_term: false
  1461. pad: 1
  1462. kernel_size: 3
  1463. stride: 2
  1464. weight_filler {
  1465. type: "msra"
  1466. }
  1467. bias_filler {
  1468. type: "constant"
  1469. value: 0.0
  1470. }
  1471. }
  1472. }
  1473. layer {
  1474. name: "emotion/bn_4_1_dw"
  1475. type: "BatchNorm"
  1476. bottom: "emotion/conv_4_1_dw"
  1477. top: "emotion/conv_4_1_dw"
  1478. param {
  1479. lr_mult: 0.0
  1480. decay_mult: 0.0
  1481. }
  1482. param {
  1483. lr_mult: 0.0
  1484. decay_mult: 0.0
  1485. }
  1486. param {
  1487. lr_mult: 0.0
  1488. decay_mult: 0.0
  1489. }
  1490. }
  1491. layer {
  1492. name: "emotion/scale_4_1_dw"
  1493. type: "Scale"
  1494. bottom: "emotion/conv_4_1_dw"
  1495. top: "emotion/conv_4_1_dw"
  1496. scale_param {
  1497. bias_term: true
  1498. }
  1499. }
  1500. layer {
  1501. name: "emotion/relu_4_1_dw"
  1502. type: "ReLU"
  1503. bottom: "emotion/conv_4_1_dw"
  1504. top: "emotion/conv_4_1_dw"
  1505. }
  1506. layer {
  1507. name: "emotion/conv_4_1_linear"
  1508. type: "Convolution"
  1509. bottom: "emotion/conv_4_1_dw"
  1510. top: "emotion/conv_4_1_linear"
  1511. param {
  1512. lr_mult: 1.0
  1513. decay_mult: 1.0
  1514. }
  1515. convolution_param {
  1516. num_output: 96
  1517. bias_term: false
  1518. pad: 0
  1519. kernel_size: 1
  1520. stride: 1
  1521. weight_filler {
  1522. type: "msra"
  1523. }
  1524. bias_filler {
  1525. type: "constant"
  1526. value: 0.0
  1527. }
  1528. }
  1529. }
  1530. layer {
  1531. name: "emotion/bn_4_1_linear"
  1532. type: "BatchNorm"
  1533. bottom: "emotion/conv_4_1_linear"
  1534. top: "emotion/conv_4_1_linear"
  1535. param {
  1536. lr_mult: 0.0
  1537. decay_mult: 0.0
  1538. }
  1539. param {
  1540. lr_mult: 0.0
  1541. decay_mult: 0.0
  1542. }
  1543. param {
  1544. lr_mult: 0.0
  1545. decay_mult: 0.0
  1546. }
  1547. }
  1548. layer {
  1549. name: "emotion/scale_4_1_linear"
  1550. type: "Scale"
  1551. bottom: "emotion/conv_4_1_linear"
  1552. top: "emotion/conv_4_1_linear"
  1553. scale_param {
  1554. bias_term: true
  1555. }
  1556. }
  1557. layer {
  1558. name: "emotion/conv_4_2_pw"
  1559. type: "Convolution"
  1560. bottom: "emotion/conv_4_1_linear"
  1561. top: "emotion/conv_4_2_pw"
  1562. param {
  1563. lr_mult: 1.0
  1564. decay_mult: 1.0
  1565. }
  1566. convolution_param {
  1567. num_output: 192
  1568. bias_term: false
  1569. pad: 0
  1570. kernel_size: 1
  1571. stride: 1
  1572. weight_filler {
  1573. type: "msra"
  1574. }
  1575. bias_filler {
  1576. type: "constant"
  1577. value: 0.0
  1578. }
  1579. }
  1580. }
  1581. layer {
  1582. name: "emotion/bn_4_2_pw"
  1583. type: "BatchNorm"
  1584. bottom: "emotion/conv_4_2_pw"
  1585. top: "emotion/conv_4_2_pw"
  1586. param {
  1587. lr_mult: 0.0
  1588. decay_mult: 0.0
  1589. }
  1590. param {
  1591. lr_mult: 0.0
  1592. decay_mult: 0.0
  1593. }
  1594. param {
  1595. lr_mult: 0.0
  1596. decay_mult: 0.0
  1597. }
  1598. }
  1599. layer {
  1600. name: "emotion/scale_4_2_pw"
  1601. type: "Scale"
  1602. bottom: "emotion/conv_4_2_pw"
  1603. top: "emotion/conv_4_2_pw"
  1604. scale_param {
  1605. bias_term: true
  1606. }
  1607. }
  1608. layer {
  1609. name: "emotion/relu_4_2_pw"
  1610. type: "ReLU"
  1611. bottom: "emotion/conv_4_2_pw"
  1612. top: "emotion/conv_4_2_pw"
  1613. }
  1614. layer {
  1615. name: "emotion/conv_4_2_dw"
  1616. type: "ConvolutionDepthwise"
  1617. bottom: "emotion/conv_4_2_pw"
  1618. top: "emotion/conv_4_2_dw"
  1619. param {
  1620. lr_mult: 1.0
  1621. decay_mult: 1.0
  1622. }
  1623. convolution_param {
  1624. num_output: 192
  1625. bias_term: false
  1626. pad: 1
  1627. kernel_size: 3
  1628. stride: 1
  1629. weight_filler {
  1630. type: "msra"
  1631. }
  1632. bias_filler {
  1633. type: "constant"
  1634. value: 0.0
  1635. }
  1636. }
  1637. }
  1638. layer {
  1639. name: "emotion/bn_4_2_dw"
  1640. type: "BatchNorm"
  1641. bottom: "emotion/conv_4_2_dw"
  1642. top: "emotion/conv_4_2_dw"
  1643. param {
  1644. lr_mult: 0.0
  1645. decay_mult: 0.0
  1646. }
  1647. param {
  1648. lr_mult: 0.0
  1649. decay_mult: 0.0
  1650. }
  1651. param {
  1652. lr_mult: 0.0
  1653. decay_mult: 0.0
  1654. }
  1655. }
  1656. layer {
  1657. name: "emotion/scale_4_2_dw"
  1658. type: "Scale"
  1659. bottom: "emotion/conv_4_2_dw"
  1660. top: "emotion/conv_4_2_dw"
  1661. scale_param {
  1662. bias_term: true
  1663. }
  1664. }
  1665. layer {
  1666. name: "emotion/relu_4_2_dw"
  1667. type: "ReLU"
  1668. bottom: "emotion/conv_4_2_dw"
  1669. top: "emotion/conv_4_2_dw"
  1670. }
  1671. layer {
  1672. name: "emotion/conv_4_2_linear"
  1673. type: "Convolution"
  1674. bottom: "emotion/conv_4_2_dw"
  1675. top: "emotion/conv_4_2_linear"
  1676. param {
  1677. lr_mult: 1.0
  1678. decay_mult: 1.0
  1679. }
  1680. convolution_param {
  1681. num_output: 96
  1682. bias_term: false
  1683. pad: 0
  1684. kernel_size: 1
  1685. stride: 1
  1686. weight_filler {
  1687. type: "msra"
  1688. }
  1689. bias_filler {
  1690. type: "constant"
  1691. value: 0.0
  1692. }
  1693. }
  1694. }
  1695. layer {
  1696. name: "emotion/bn_4_2_linear"
  1697. type: "BatchNorm"
  1698. bottom: "emotion/conv_4_2_linear"
  1699. top: "emotion/conv_4_2_linear"
  1700. param {
  1701. lr_mult: 0.0
  1702. decay_mult: 0.0
  1703. }
  1704. param {
  1705. lr_mult: 0.0
  1706. decay_mult: 0.0
  1707. }
  1708. param {
  1709. lr_mult: 0.0
  1710. decay_mult: 0.0
  1711. }
  1712. }
  1713. layer {
  1714. name: "emotion/scale_4_2_linear"
  1715. type: "Scale"
  1716. bottom: "emotion/conv_4_2_linear"
  1717. top: "emotion/conv_4_2_linear"
  1718. scale_param {
  1719. bias_term: true
  1720. }
  1721. }
  1722. layer {
  1723. name: "emotion/add_4_2"
  1724. type: "Eltwise"
  1725. bottom: "emotion/conv_4_1_linear"
  1726. bottom: "emotion/conv_4_2_linear"
  1727. top: "emotion/add_4_2"
  1728. }
  1729. layer {
  1730. name: "emotion/conv1_"
  1731. type: "Convolution"
  1732. bottom: "emotion/add_4_2"
  1733. top: "emotion/conv1_"
  1734. param {
  1735. lr_mult: 1
  1736. decay_mult: 1
  1737. }
  1738. param {
  1739. lr_mult: 2
  1740. decay_mult: 0
  1741. }
  1742. convolution_param {
  1743. num_output: 128
  1744. kernel_size: 3
  1745. stride: 1
  1746. weight_filler {
  1747. type: "xavier"
  1748. }
  1749. bias_filler {
  1750. type: "constant"
  1751. value: 0
  1752. }
  1753. }
  1754. }
  1755. layer {
  1756. name: "emotion/relu1_"
  1757. type: "ReLU"
  1758. bottom: "emotion/conv1_"
  1759. top: "emotion/conv1_"
  1760. }
  1761. layer {
  1762. name: "emotion/pool1_"
  1763. type: "Pooling"
  1764. bottom: "emotion/conv1_"
  1765. top: "emotion/pool1_"
  1766. pooling_param {
  1767. pool: AVE
  1768. kernel_size: 4
  1769. stride: 4
  1770. }
  1771. }
  1772. layer {
  1773. name: "emotion/ip1"
  1774. type: "InnerProduct"
  1775. bottom: "emotion/pool1_"
  1776. top: "emotion/ip1"
  1777. param {
  1778. lr_mult: 1
  1779. }
  1780. param {
  1781. lr_mult: 2
  1782. }
  1783. inner_product_param {
  1784. num_output: 3
  1785. weight_filler {
  1786. type: "xavier"
  1787. }
  1788. bias_filler {
  1789. type: "constant"
  1790. }
  1791. }
  1792. }
  1793. layer {
  1794. name: "sex/conv_4_1_pw"
  1795. type: "Convolution"
  1796. bottom: "shuffle4"
  1797. top: "sex/conv_4_1_pw"
  1798. param {
  1799. lr_mult: 1.0
  1800. decay_mult: 1.0
  1801. }
  1802. convolution_param {
  1803. num_output: 192
  1804. bias_term: false
  1805. pad: 0
  1806. kernel_size: 1
  1807. stride: 1
  1808. weight_filler {
  1809. type: "msra"
  1810. }
  1811. bias_filler {
  1812. type: "constant"
  1813. value: 0.0
  1814. }
  1815. }
  1816. }
  1817. layer {
  1818. name: "sex/bn_4_1_pw"
  1819. type: "BatchNorm"
  1820. bottom: "sex/conv_4_1_pw"
  1821. top: "sex/conv_4_1_pw"
  1822. param {
  1823. lr_mult: 0.0
  1824. decay_mult: 0.0
  1825. }
  1826. param {
  1827. lr_mult: 0.0
  1828. decay_mult: 0.0
  1829. }
  1830. param {
  1831. lr_mult: 0.0
  1832. decay_mult: 0.0
  1833. }
  1834. }
  1835. layer {
  1836. name: "sex/scale_4_1_pw"
  1837. type: "Scale"
  1838. bottom: "sex/conv_4_1_pw"
  1839. top: "sex/conv_4_1_pw"
  1840. scale_param {
  1841. bias_term: true
  1842. }
  1843. }
  1844. layer {
  1845. name: "sex/relu_4_1_pw"
  1846. type: "ReLU"
  1847. bottom: "sex/conv_4_1_pw"
  1848. top: "sex/conv_4_1_pw"
  1849. }
  1850. layer {
  1851. name: "sex/conv_4_1_dw"
  1852. type: "ConvolutionDepthwise"
  1853. bottom: "sex/conv_4_1_pw"
  1854. top: "sex/conv_4_1_dw"
  1855. param {
  1856. lr_mult: 1.0
  1857. decay_mult: 1.0
  1858. }
  1859. convolution_param {
  1860. num_output: 192
  1861. bias_term: false
  1862. pad: 1
  1863. kernel_size: 3
  1864. stride: 2
  1865. weight_filler {
  1866. type: "msra"
  1867. }
  1868. bias_filler {
  1869. type: "constant"
  1870. value: 0.0
  1871. }
  1872. }
  1873. }
  1874. layer {
  1875. name: "sex/bn_4_1_dw"
  1876. type: "BatchNorm"
  1877. bottom: "sex/conv_4_1_dw"
  1878. top: "sex/conv_4_1_dw"
  1879. param {
  1880. lr_mult: 0.0
  1881. decay_mult: 0.0
  1882. }
  1883. param {
  1884. lr_mult: 0.0
  1885. decay_mult: 0.0
  1886. }
  1887. param {
  1888. lr_mult: 0.0
  1889. decay_mult: 0.0
  1890. }
  1891. }
  1892. layer {
  1893. name: "sex/scale_4_1_dw"
  1894. type: "Scale"
  1895. bottom: "sex/conv_4_1_dw"
  1896. top: "sex/conv_4_1_dw"
  1897. scale_param {
  1898. bias_term: true
  1899. }
  1900. }
  1901. layer {
  1902. name: "sex/relu_4_1_dw"
  1903. type: "ReLU"
  1904. bottom: "sex/conv_4_1_dw"
  1905. top: "sex/conv_4_1_dw"
  1906. }
  1907. layer {
  1908. name: "sex/conv_4_1_linear"
  1909. type: "Convolution"
  1910. bottom: "sex/conv_4_1_dw"
  1911. top: "sex/conv_4_1_linear"
  1912. param {
  1913. lr_mult: 1.0
  1914. decay_mult: 1.0
  1915. }
  1916. convolution_param {
  1917. num_output: 96
  1918. bias_term: false
  1919. pad: 0
  1920. kernel_size: 1
  1921. stride: 1
  1922. weight_filler {
  1923. type: "msra"
  1924. }
  1925. bias_filler {
  1926. type: "constant"
  1927. value: 0.0
  1928. }
  1929. }
  1930. }
  1931. layer {
  1932. name: "sex/bn_4_1_linear"
  1933. type: "BatchNorm"
  1934. bottom: "sex/conv_4_1_linear"
  1935. top: "sex/conv_4_1_linear"
  1936. param {
  1937. lr_mult: 0.0
  1938. decay_mult: 0.0
  1939. }
  1940. param {
  1941. lr_mult: 0.0
  1942. decay_mult: 0.0
  1943. }
  1944. param {
  1945. lr_mult: 0.0
  1946. decay_mult: 0.0
  1947. }
  1948. }
  1949. layer {
  1950. name: "sex/scale_4_1_linear"
  1951. type: "Scale"
  1952. bottom: "sex/conv_4_1_linear"
  1953. top: "sex/conv_4_1_linear"
  1954. scale_param {
  1955. bias_term: true
  1956. }
  1957. }
  1958. layer {
  1959. name: "sex/conv_4_2_pw"
  1960. type: "Convolution"
  1961. bottom: "sex/conv_4_1_linear"
  1962. top: "sex/conv_4_2_pw"
  1963. param {
  1964. lr_mult: 1.0
  1965. decay_mult: 1.0
  1966. }
  1967. convolution_param {
  1968. num_output: 192
  1969. bias_term: false
  1970. pad: 0
  1971. kernel_size: 1
  1972. stride: 1
  1973. weight_filler {
  1974. type: "msra"
  1975. }
  1976. bias_filler {
  1977. type: "constant"
  1978. value: 0.0
  1979. }
  1980. }
  1981. }
  1982. layer {
  1983. name: "sex/bn_4_2_pw"
  1984. type: "BatchNorm"
  1985. bottom: "sex/conv_4_2_pw"
  1986. top: "sex/conv_4_2_pw"
  1987. param {
  1988. lr_mult: 0.0
  1989. decay_mult: 0.0
  1990. }
  1991. param {
  1992. lr_mult: 0.0
  1993. decay_mult: 0.0
  1994. }
  1995. param {
  1996. lr_mult: 0.0
  1997. decay_mult: 0.0
  1998. }
  1999. }
  2000. layer {
  2001. name: "sex/scale_4_2_pw"
  2002. type: "Scale"
  2003. bottom: "sex/conv_4_2_pw"
  2004. top: "sex/conv_4_2_pw"
  2005. scale_param {
  2006. bias_term: true
  2007. }
  2008. }
  2009. layer {
  2010. name: "sex/relu_4_2_pw"
  2011. type: "ReLU"
  2012. bottom: "sex/conv_4_2_pw"
  2013. top: "sex/conv_4_2_pw"
  2014. }
  2015. layer {
  2016. name: "sex/conv_4_2_dw"
  2017. type: "ConvolutionDepthwise"
  2018. bottom: "sex/conv_4_2_pw"
  2019. top: "sex/conv_4_2_dw"
  2020. param {
  2021. lr_mult: 1.0
  2022. decay_mult: 1.0
  2023. }
  2024. convolution_param {
  2025. num_output: 192
  2026. bias_term: false
  2027. pad: 1
  2028. kernel_size: 3
  2029. stride: 1
  2030. weight_filler {
  2031. type: "msra"
  2032. }
  2033. bias_filler {
  2034. type: "constant"
  2035. value: 0.0
  2036. }
  2037. }
  2038. }
  2039. layer {
  2040. name: "sex/bn_4_2_dw"
  2041. type: "BatchNorm"
  2042. bottom: "sex/conv_4_2_dw"
  2043. top: "sex/conv_4_2_dw"
  2044. param {
  2045. lr_mult: 0.0
  2046. decay_mult: 0.0
  2047. }
  2048. param {
  2049. lr_mult: 0.0
  2050. decay_mult: 0.0
  2051. }
  2052. param {
  2053. lr_mult: 0.0
  2054. decay_mult: 0.0
  2055. }
  2056. }
  2057. layer {
  2058. name: "sex/scale_4_2_dw"
  2059. type: "Scale"
  2060. bottom: "sex/conv_4_2_dw"
  2061. top: "sex/conv_4_2_dw"
  2062. scale_param {
  2063. bias_term: true
  2064. }
  2065. }
  2066. layer {
  2067. name: "sex/relu_4_2_dw"
  2068. type: "ReLU"
  2069. bottom: "sex/conv_4_2_dw"
  2070. top: "sex/conv_4_2_dw"
  2071. }
  2072. layer {
  2073. name: "sex/conv_4_2_linear"
  2074. type: "Convolution"
  2075. bottom: "sex/conv_4_2_dw"
  2076. top: "sex/conv_4_2_linear"
  2077. param {
  2078. lr_mult: 1.0
  2079. decay_mult: 1.0
  2080. }
  2081. convolution_param {
  2082. num_output: 96
  2083. bias_term: false
  2084. pad: 0
  2085. kernel_size: 1
  2086. stride: 1
  2087. weight_filler {
  2088. type: "msra"
  2089. }
  2090. bias_filler {
  2091. type: "constant"
  2092. value: 0.0
  2093. }
  2094. }
  2095. }
  2096. layer {
  2097. name: "sex/bn_4_2_linear"
  2098. type: "BatchNorm"
  2099. bottom: "sex/conv_4_2_linear"
  2100. top: "sex/conv_4_2_linear"
  2101. param {
  2102. lr_mult: 0.0
  2103. decay_mult: 0.0
  2104. }
  2105. param {
  2106. lr_mult: 0.0
  2107. decay_mult: 0.0
  2108. }
  2109. param {
  2110. lr_mult: 0.0
  2111. decay_mult: 0.0
  2112. }
  2113. }
  2114. layer {
  2115. name: "sex/scale_4_2_linear"
  2116. type: "Scale"
  2117. bottom: "sex/conv_4_2_linear"
  2118. top: "sex/conv_4_2_linear"
  2119. scale_param {
  2120. bias_term: true
  2121. }
  2122. }
  2123. layer {
  2124. name: "sex/add_4_2"
  2125. type: "Eltwise"
  2126. bottom: "sex/conv_4_1_linear"
  2127. bottom: "sex/conv_4_2_linear"
  2128. top: "sex/add_4_2"
  2129. }
  2130. layer {
  2131. name: "sex/conv1_"
  2132. type: "Convolution"
  2133. bottom: "sex/add_4_2"
  2134. top: "sex/conv1_"
  2135. param {
  2136. lr_mult: 1
  2137. decay_mult: 1
  2138. }
  2139. param {
  2140. lr_mult: 2
  2141. decay_mult: 0
  2142. }
  2143. convolution_param {
  2144. num_output: 128
  2145. kernel_size: 3
  2146. stride: 1
  2147. weight_filler {
  2148. type: "xavier"
  2149. }
  2150. bias_filler {
  2151. type: "constant"
  2152. value: 0
  2153. }
  2154. }
  2155. }
  2156. layer {
  2157. name: "sex/relu1_"
  2158. type: "ReLU"
  2159. bottom: "sex/conv1_"
  2160. top: "sex/conv1_"
  2161. }
  2162. layer {
  2163. name: "sex/pool1_"
  2164. type: "Pooling"
  2165. bottom: "sex/conv1_"
  2166. top: "sex/pool1_"
  2167. pooling_param {
  2168. pool: AVE
  2169. kernel_size: 4
  2170. stride: 4
  2171. }
  2172. }
  2173. layer {
  2174. name: "sex/ip1"
  2175. type: "InnerProduct"
  2176. bottom: "sex/pool1_"
  2177. top: "sex/ip1"
  2178. param {
  2179. lr_mult: 1
  2180. }
  2181. param {
  2182. lr_mult: 2
  2183. }
  2184. inner_product_param {
  2185. num_output: 2
  2186. weight_filler {
  2187. type: "xavier"
  2188. }
  2189. bias_filler {
  2190. type: "constant"
  2191. }
  2192. }
  2193. }
  2194. layer {
  2195. name: "glass/conv_4_1_pw"
  2196. type: "Convolution"
  2197. bottom: "shuffle4"
  2198. top: "glass/conv_4_1_pw"
  2199. param {
  2200. lr_mult: 1.0
  2201. decay_mult: 1.0
  2202. }
  2203. convolution_param {
  2204. num_output: 192
  2205. bias_term: false
  2206. pad: 0
  2207. kernel_size: 1
  2208. stride: 1
  2209. weight_filler {
  2210. type: "msra"
  2211. }
  2212. bias_filler {
  2213. type: "constant"
  2214. value: 0.0
  2215. }
  2216. }
  2217. }
  2218. layer {
  2219. name: "glass/bn_4_1_pw"
  2220. type: "BatchNorm"
  2221. bottom: "glass/conv_4_1_pw"
  2222. top: "glass/conv_4_1_pw"
  2223. param {
  2224. lr_mult: 0.0
  2225. decay_mult: 0.0
  2226. }
  2227. param {
  2228. lr_mult: 0.0
  2229. decay_mult: 0.0
  2230. }
  2231. param {
  2232. lr_mult: 0.0
  2233. decay_mult: 0.0
  2234. }
  2235. }
  2236. layer {
  2237. name: "glass/scale_4_1_pw"
  2238. type: "Scale"
  2239. bottom: "glass/conv_4_1_pw"
  2240. top: "glass/conv_4_1_pw"
  2241. scale_param {
  2242. bias_term: true
  2243. }
  2244. }
  2245. layer {
  2246. name: "glass/relu_4_1_pw"
  2247. type: "ReLU"
  2248. bottom: "glass/conv_4_1_pw"
  2249. top: "glass/conv_4_1_pw"
  2250. }
  2251. layer {
  2252. name: "glass/conv_4_1_dw"
  2253. type: "ConvolutionDepthwise"
  2254. bottom: "glass/conv_4_1_pw"
  2255. top: "glass/conv_4_1_dw"
  2256. param {
  2257. lr_mult: 1.0
  2258. decay_mult: 1.0
  2259. }
  2260. convolution_param {
  2261. num_output: 192
  2262. bias_term: false
  2263. pad: 1
  2264. kernel_size: 3
  2265. stride: 2
  2266. weight_filler {
  2267. type: "msra"
  2268. }
  2269. bias_filler {
  2270. type: "constant"
  2271. value: 0.0
  2272. }
  2273. }
  2274. }
  2275. layer {
  2276. name: "glass/bn_4_1_dw"
  2277. type: "BatchNorm"
  2278. bottom: "glass/conv_4_1_dw"
  2279. top: "glass/conv_4_1_dw"
  2280. param {
  2281. lr_mult: 0.0
  2282. decay_mult: 0.0
  2283. }
  2284. param {
  2285. lr_mult: 0.0
  2286. decay_mult: 0.0
  2287. }
  2288. param {
  2289. lr_mult: 0.0
  2290. decay_mult: 0.0
  2291. }
  2292. }
  2293. layer {
  2294. name: "glass/scale_4_1_dw"
  2295. type: "Scale"
  2296. bottom: "glass/conv_4_1_dw"
  2297. top: "glass/conv_4_1_dw"
  2298. scale_param {
  2299. bias_term: true
  2300. }
  2301. }
  2302. layer {
  2303. name: "glass/relu_4_1_dw"
  2304. type: "ReLU"
  2305. bottom: "glass/conv_4_1_dw"
  2306. top: "glass/conv_4_1_dw"
  2307. }
  2308. layer {
  2309. name: "glass/conv_4_1_linear"
  2310. type: "Convolution"
  2311. bottom: "glass/conv_4_1_dw"
  2312. top: "glass/conv_4_1_linear"
  2313. param {
  2314. lr_mult: 1.0
  2315. decay_mult: 1.0
  2316. }
  2317. convolution_param {
  2318. num_output: 96
  2319. bias_term: false
  2320. pad: 0
  2321. kernel_size: 1
  2322. stride: 1
  2323. weight_filler {
  2324. type: "msra"
  2325. }
  2326. bias_filler {
  2327. type: "constant"
  2328. value: 0.0
  2329. }
  2330. }
  2331. }
  2332. layer {
  2333. name: "glass/bn_4_1_linear"
  2334. type: "BatchNorm"
  2335. bottom: "glass/conv_4_1_linear"
  2336. top: "glass/conv_4_1_linear"
  2337. param {
  2338. lr_mult: 0.0
  2339. decay_mult: 0.0
  2340. }
  2341. param {
  2342. lr_mult: 0.0
  2343. decay_mult: 0.0
  2344. }
  2345. param {
  2346. lr_mult: 0.0
  2347. decay_mult: 0.0
  2348. }
  2349. }
  2350. layer {
  2351. name: "glass/scale_4_1_linear"
  2352. type: "Scale"
  2353. bottom: "glass/conv_4_1_linear"
  2354. top: "glass/conv_4_1_linear"
  2355. scale_param {
  2356. bias_term: true
  2357. }
  2358. }
  2359. layer {
  2360. name: "glass/conv_4_2_pw"
  2361. type: "Convolution"
  2362. bottom: "glass/conv_4_1_linear"
  2363. top: "glass/conv_4_2_pw"
  2364. param {
  2365. lr_mult: 1.0
  2366. decay_mult: 1.0
  2367. }
  2368. convolution_param {
  2369. num_output: 192
  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: "glass/bn_4_2_pw"
  2385. type: "BatchNorm"
  2386. bottom: "glass/conv_4_2_pw"
  2387. top: "glass/conv_4_2_pw"
  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. }
  2401. layer {
  2402. name: "glass/scale_4_2_pw"
  2403. type: "Scale"
  2404. bottom: "glass/conv_4_2_pw"
  2405. top: "glass/conv_4_2_pw"
  2406. scale_param {
  2407. bias_term: true
  2408. }
  2409. }
  2410. layer {
  2411. name: "glass/relu_4_2_pw"
  2412. type: "ReLU"
  2413. bottom: "glass/conv_4_2_pw"
  2414. top: "glass/conv_4_2_pw"
  2415. }
  2416. layer {
  2417. name: "glass/conv_4_2_dw"
  2418. type: "ConvolutionDepthwise"
  2419. bottom: "glass/conv_4_2_pw"
  2420. top: "glass/conv_4_2_dw"
  2421. param {
  2422. lr_mult: 1.0
  2423. decay_mult: 1.0
  2424. }
  2425. convolution_param {
  2426. num_output: 192
  2427. bias_term: false
  2428. pad: 1
  2429. kernel_size: 3
  2430. stride: 1
  2431. weight_filler {
  2432. type: "msra"
  2433. }
  2434. bias_filler {
  2435. type: "constant"
  2436. value: 0.0
  2437. }
  2438. }
  2439. }
  2440. layer {
  2441. name: "glass/bn_4_2_dw"
  2442. type: "BatchNorm"
  2443. bottom: "glass/conv_4_2_dw"
  2444. top: "glass/conv_4_2_dw"
  2445. param {
  2446. lr_mult: 0.0
  2447. decay_mult: 0.0
  2448. }
  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. }
  2458. layer {
  2459. name: "glass/scale_4_2_dw"
  2460. type: "Scale"
  2461. bottom: "glass/conv_4_2_dw"
  2462. top: "glass/conv_4_2_dw"
  2463. scale_param {
  2464. bias_term: true
  2465. }
  2466. }
  2467. layer {
  2468. name: "glass/relu_4_2_dw"
  2469. type: "ReLU"
  2470. bottom: "glass/conv_4_2_dw"
  2471. top: "glass/conv_4_2_dw"
  2472. }
  2473. layer {
  2474. name: "glass/conv_4_2_linear"
  2475. type: "Convolution"
  2476. bottom: "glass/conv_4_2_dw"
  2477. top: "glass/conv_4_2_linear"
  2478. param {
  2479. lr_mult: 1.0
  2480. decay_mult: 1.0
  2481. }
  2482. convolution_param {
  2483. num_output: 96
  2484. bias_term: false
  2485. pad: 0
  2486. kernel_size: 1
  2487. stride: 1
  2488. weight_filler {
  2489. type: "msra"
  2490. }
  2491. bias_filler {
  2492. type: "constant"
  2493. value: 0.0
  2494. }
  2495. }
  2496. }
  2497. layer {
  2498. name: "glass/bn_4_2_linear"
  2499. type: "BatchNorm"
  2500. bottom: "glass/conv_4_2_linear"
  2501. top: "glass/conv_4_2_linear"
  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. }
  2515. layer {
  2516. name: "glass/scale_4_2_linear"
  2517. type: "Scale"
  2518. bottom: "glass/conv_4_2_linear"
  2519. top: "glass/conv_4_2_linear"
  2520. scale_param {
  2521. bias_term: true
  2522. }
  2523. }
  2524. layer {
  2525. name: "glass/add_4_2"
  2526. type: "Eltwise"
  2527. bottom: "glass/conv_4_1_linear"
  2528. bottom: "glass/conv_4_2_linear"
  2529. top: "glass/add_4_2"
  2530. }
  2531. layer {
  2532. name: "glass/conv1_"
  2533. type: "Convolution"
  2534. bottom: "glass/add_4_2"
  2535. top: "glass/conv1_"
  2536. param {
  2537. lr_mult: 1
  2538. decay_mult: 1
  2539. }
  2540. param {
  2541. lr_mult: 2
  2542. decay_mult: 0
  2543. }
  2544. convolution_param {
  2545. num_output: 128
  2546. kernel_size: 3
  2547. stride: 1
  2548. weight_filler {
  2549. type: "xavier"
  2550. }
  2551. bias_filler {
  2552. type: "constant"
  2553. value: 0
  2554. }
  2555. }
  2556. }
  2557. layer {
  2558. name: "glass/relu1_"
  2559. type: "ReLU"
  2560. bottom: "glass/conv1_"
  2561. top: "glass/conv1_"
  2562. }
  2563. layer {
  2564. name: "glass/pool1_"
  2565. type: "Pooling"
  2566. bottom: "glass/conv1_"
  2567. top: "glass/pool1_"
  2568. pooling_param {
  2569. pool: AVE
  2570. kernel_size: 4
  2571. stride: 4
  2572. }
  2573. }
  2574. layer {
  2575. name: "glass/ip1"
  2576. type: "InnerProduct"
  2577. bottom: "glass/pool1_"
  2578. top: "glass/ip1"
  2579. param {
  2580. lr_mult: 1
  2581. }
  2582. param {
  2583. lr_mult: 2
  2584. }
  2585. inner_product_param {
  2586. num_output: 3
  2587. weight_filler {
  2588. type: "xavier"
  2589. }
  2590. bias_filler {
  2591. type: "constant"
  2592. }
  2593. }
  2594. }
  2595. layer {
  2596. name: "race/conv_4_1_pw"
  2597. type: "Convolution"
  2598. bottom: "shuffle4"
  2599. top: "race/conv_4_1_pw"
  2600. param {
  2601. lr_mult: 1.0
  2602. decay_mult: 1.0
  2603. }
  2604. convolution_param {
  2605. num_output: 192
  2606. bias_term: false
  2607. pad: 0
  2608. kernel_size: 1
  2609. stride: 1
  2610. weight_filler {
  2611. type: "msra"
  2612. }
  2613. bias_filler {
  2614. type: "constant"
  2615. value: 0.0
  2616. }
  2617. }
  2618. }
  2619. layer {
  2620. name: "race/bn_4_1_pw"
  2621. type: "BatchNorm"
  2622. bottom: "race/conv_4_1_pw"
  2623. top: "race/conv_4_1_pw"
  2624. param {
  2625. lr_mult: 0.0
  2626. decay_mult: 0.0
  2627. }
  2628. param {
  2629. lr_mult: 0.0
  2630. decay_mult: 0.0
  2631. }
  2632. param {
  2633. lr_mult: 0.0
  2634. decay_mult: 0.0
  2635. }
  2636. }
  2637. layer {
  2638. name: "race/scale_4_1_pw"
  2639. type: "Scale"
  2640. bottom: "race/conv_4_1_pw"
  2641. top: "race/conv_4_1_pw"
  2642. scale_param {
  2643. bias_term: true
  2644. }
  2645. }
  2646. layer {
  2647. name: "race/relu_4_1_pw"
  2648. type: "ReLU"
  2649. bottom: "race/conv_4_1_pw"
  2650. top: "race/conv_4_1_pw"
  2651. }
  2652. layer {
  2653. name: "race/conv_4_1_dw"
  2654. type: "ConvolutionDepthwise"
  2655. bottom: "race/conv_4_1_pw"
  2656. top: "race/conv_4_1_dw"
  2657. param {
  2658. lr_mult: 1.0
  2659. decay_mult: 1.0
  2660. }
  2661. convolution_param {
  2662. num_output: 192
  2663. bias_term: false
  2664. pad: 1
  2665. kernel_size: 3
  2666. stride: 2
  2667. weight_filler {
  2668. type: "msra"
  2669. }
  2670. bias_filler {
  2671. type: "constant"
  2672. value: 0.0
  2673. }
  2674. }
  2675. }
  2676. layer {
  2677. name: "race/bn_4_1_dw"
  2678. type: "BatchNorm"
  2679. bottom: "race/conv_4_1_dw"
  2680. top: "race/conv_4_1_dw"
  2681. param {
  2682. lr_mult: 0.0
  2683. decay_mult: 0.0
  2684. }
  2685. param {
  2686. lr_mult: 0.0
  2687. decay_mult: 0.0
  2688. }
  2689. param {
  2690. lr_mult: 0.0
  2691. decay_mult: 0.0
  2692. }
  2693. }
  2694. layer {
  2695. name: "race/scale_4_1_dw"
  2696. type: "Scale"
  2697. bottom: "race/conv_4_1_dw"
  2698. top: "race/conv_4_1_dw"
  2699. scale_param {
  2700. bias_term: true
  2701. }
  2702. }
  2703. layer {
  2704. name: "race/relu_4_1_dw"
  2705. type: "ReLU"
  2706. bottom: "race/conv_4_1_dw"
  2707. top: "race/conv_4_1_dw"
  2708. }
  2709. layer {
  2710. name: "race/conv_4_1_linear"
  2711. type: "Convolution"
  2712. bottom: "race/conv_4_1_dw"
  2713. top: "race/conv_4_1_linear"
  2714. param {
  2715. lr_mult: 1.0
  2716. decay_mult: 1.0
  2717. }
  2718. convolution_param {
  2719. num_output: 96
  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: "race/bn_4_1_linear"
  2735. type: "BatchNorm"
  2736. bottom: "race/conv_4_1_linear"
  2737. top: "race/conv_4_1_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. }
  2751. layer {
  2752. name: "race/scale_4_1_linear"
  2753. type: "Scale"
  2754. bottom: "race/conv_4_1_linear"
  2755. top: "race/conv_4_1_linear"
  2756. scale_param {
  2757. bias_term: true
  2758. }
  2759. }
  2760. layer {
  2761. name: "race/conv_4_2_pw"
  2762. type: "Convolution"
  2763. bottom: "race/conv_4_1_linear"
  2764. top: "race/conv_4_2_pw"
  2765. param {
  2766. lr_mult: 1.0
  2767. decay_mult: 1.0
  2768. }
  2769. convolution_param {
  2770. num_output: 192
  2771. bias_term: false
  2772. pad: 0
  2773. kernel_size: 1
  2774. stride: 1
  2775. weight_filler {
  2776. type: "msra"
  2777. }
  2778. bias_filler {
  2779. type: "constant"
  2780. value: 0.0
  2781. }
  2782. }
  2783. }
  2784. layer {
  2785. name: "race/bn_4_2_pw"
  2786. type: "BatchNorm"
  2787. bottom: "race/conv_4_2_pw"
  2788. top: "race/conv_4_2_pw"
  2789. param {
  2790. lr_mult: 0.0
  2791. decay_mult: 0.0
  2792. }
  2793. param {
  2794. lr_mult: 0.0
  2795. decay_mult: 0.0
  2796. }
  2797. param {
  2798. lr_mult: 0.0
  2799. decay_mult: 0.0
  2800. }
  2801. }
  2802. layer {
  2803. name: "race/scale_4_2_pw"
  2804. type: "Scale"
  2805. bottom: "race/conv_4_2_pw"
  2806. top: "race/conv_4_2_pw"
  2807. scale_param {
  2808. bias_term: true
  2809. }
  2810. }
  2811. layer {
  2812. name: "race/relu_4_2_pw"
  2813. type: "ReLU"
  2814. bottom: "race/conv_4_2_pw"
  2815. top: "race/conv_4_2_pw"
  2816. }
  2817. layer {
  2818. name: "race/conv_4_2_dw"
  2819. type: "ConvolutionDepthwise"
  2820. bottom: "race/conv_4_2_pw"
  2821. top: "race/conv_4_2_dw"
  2822. param {
  2823. lr_mult: 1.0
  2824. decay_mult: 1.0
  2825. }
  2826. convolution_param {
  2827. num_output: 192
  2828. bias_term: false
  2829. pad: 1
  2830. kernel_size: 3
  2831. stride: 1
  2832. weight_filler {
  2833. type: "msra"
  2834. }
  2835. bias_filler {
  2836. type: "constant"
  2837. value: 0.0
  2838. }
  2839. }
  2840. }
  2841. layer {
  2842. name: "race/bn_4_2_dw"
  2843. type: "BatchNorm"
  2844. bottom: "race/conv_4_2_dw"
  2845. top: "race/conv_4_2_dw"
  2846. param {
  2847. lr_mult: 0.0
  2848. decay_mult: 0.0
  2849. }
  2850. param {
  2851. lr_mult: 0.0
  2852. decay_mult: 0.0
  2853. }
  2854. param {
  2855. lr_mult: 0.0
  2856. decay_mult: 0.0
  2857. }
  2858. }
  2859. layer {
  2860. name: "race/scale_4_2_dw"
  2861. type: "Scale"
  2862. bottom: "race/conv_4_2_dw"
  2863. top: "race/conv_4_2_dw"
  2864. scale_param {
  2865. bias_term: true
  2866. }
  2867. }
  2868. layer {
  2869. name: "race/relu_4_2_dw"
  2870. type: "ReLU"
  2871. bottom: "race/conv_4_2_dw"
  2872. top: "race/conv_4_2_dw"
  2873. }
  2874. layer {
  2875. name: "race/conv_4_2_linear"
  2876. type: "Convolution"
  2877. bottom: "race/conv_4_2_dw"
  2878. top: "race/conv_4_2_linear"
  2879. param {
  2880. lr_mult: 1.0
  2881. decay_mult: 1.0
  2882. }
  2883. convolution_param {
  2884. num_output: 96
  2885. bias_term: false
  2886. pad: 0
  2887. kernel_size: 1
  2888. stride: 1
  2889. weight_filler {
  2890. type: "msra"
  2891. }
  2892. bias_filler {
  2893. type: "constant"
  2894. value: 0.0
  2895. }
  2896. }
  2897. }
  2898. layer {
  2899. name: "race/bn_4_2_linear"
  2900. type: "BatchNorm"
  2901. bottom: "race/conv_4_2_linear"
  2902. top: "race/conv_4_2_linear"
  2903. param {
  2904. lr_mult: 0.0
  2905. decay_mult: 0.0
  2906. }
  2907. param {
  2908. lr_mult: 0.0
  2909. decay_mult: 0.0
  2910. }
  2911. param {
  2912. lr_mult: 0.0
  2913. decay_mult: 0.0
  2914. }
  2915. }
  2916. layer {
  2917. name: "race/scale_4_2_linear"
  2918. type: "Scale"
  2919. bottom: "race/conv_4_2_linear"
  2920. top: "race/conv_4_2_linear"
  2921. scale_param {
  2922. bias_term: true
  2923. }
  2924. }
  2925. layer {
  2926. name: "race/add_4_2"
  2927. type: "Eltwise"
  2928. bottom: "race/conv_4_1_linear"
  2929. bottom: "race/conv_4_2_linear"
  2930. top: "race/add_4_2"
  2931. }
  2932. layer {
  2933. name: "race/conv1_"
  2934. type: "Convolution"
  2935. bottom: "race/add_4_2"
  2936. top: "race/conv1_"
  2937. param {
  2938. lr_mult: 1
  2939. decay_mult: 1
  2940. }
  2941. param {
  2942. lr_mult: 2
  2943. decay_mult: 0
  2944. }
  2945. convolution_param {
  2946. num_output: 128
  2947. kernel_size: 3
  2948. stride: 1
  2949. weight_filler {
  2950. type: "xavier"
  2951. }
  2952. bias_filler {
  2953. type: "constant"
  2954. value: 0
  2955. }
  2956. }
  2957. }
  2958. layer {
  2959. name: "race/relu1_"
  2960. type: "ReLU"
  2961. bottom: "race/conv1_"
  2962. top: "race/conv1_"
  2963. }
  2964. layer {
  2965. name: "race/pool1_"
  2966. type: "Pooling"
  2967. bottom: "race/conv1_"
  2968. top: "race/pool1_"
  2969. pooling_param {
  2970. pool: AVE
  2971. kernel_size: 4
  2972. stride: 4
  2973. }
  2974. }
  2975. layer {
  2976. name: "race/ip1"
  2977. type: "InnerProduct"
  2978. bottom: "race/pool1_"
  2979. top: "race/ip1"
  2980. param {
  2981. lr_mult: 1
  2982. }
  2983. param {
  2984. lr_mult: 2
  2985. }
  2986. inner_product_param {
  2987. num_output: 4
  2988. weight_filler {
  2989. type: "xavier"
  2990. }
  2991. bias_filler {
  2992. type: "constant"
  2993. }
  2994. }
  2995. }
  2996. layer {
  2997. name: "slice"
  2998. type: "Slice"
  2999. bottom: "label"
  3000. top: "label_age"
  3001. top: "label_emotion"
  3002. top: "label_sex"
  3003. top: "label_glass"
  3004. top: "label_race"
  3005. slice_param {
  3006. axis: 1
  3007. }
  3008. }
  3009. layer {
  3010. name: "loss_age"
  3011. type: "AbsoluteLoss"
  3012. bottom: "age/ip2"
  3013. bottom: "label_age"
  3014. top: "loss_age"
  3015. }
  3016. #layer {
  3017. # name: "loss_age"
  3018. # type: "EuclideanLoss"
  3019. # bottom: "age/ip2"
  3020. # bottom: "label_age"
  3021. # top: "loss_age"
  3022. #}
  3023. layer {
  3024. name: "accuracy_age"
  3025. type: "AbsoluteLoss"
  3026. bottom: "age/ip2"
  3027. bottom: "label_age"
  3028. top: "accuracy_age"
  3029. include {
  3030. phase: TEST
  3031. }
  3032. }
  3033. layer {
  3034. name: "loss_emotion"
  3035. type: "SoftmaxWithLoss"
  3036. bottom: "emotion/ip1"
  3037. bottom: "label_emotion"
  3038. top: "loss_emotion"
  3039. }
  3040. layer {
  3041. name: "accuracy_emotion"
  3042. type: "Accuracy"
  3043. bottom: "emotion/ip1"
  3044. bottom: "label_emotion"
  3045. top: "accuracy_emotion"
  3046. include {
  3047. phase: TEST
  3048. }
  3049. }
  3050. layer {
  3051. name: "loss_sex"
  3052. type: "SoftmaxWithLoss"
  3053. bottom: "sex/ip1"
  3054. bottom: "label_sex"
  3055. top: "loss_sex"
  3056. }
  3057. layer {
  3058. name: "accuracy_sex"
  3059. type: "Accuracy"
  3060. bottom: "sex/ip1"
  3061. bottom: "label_sex"
  3062. top: "accuracy_sex"
  3063. include {
  3064. phase: TEST
  3065. }
  3066. }
  3067. layer {
  3068. name: "loss_glass"
  3069. type: "SoftmaxWithLoss"
  3070. bottom: "glass/ip1"
  3071. bottom: "label_glass"
  3072. top: "loss_glass"
  3073. }
  3074. layer {
  3075. name: "accuracy_glass"
  3076. type: "Accuracy"
  3077. bottom: "glass/ip1"
  3078. bottom: "label_glass"
  3079. top: "accuracy_glass"
  3080. include {
  3081. phase: TEST
  3082. }
  3083. }
  3084. layer {
  3085. name: "loss_race"
  3086. type: "SoftmaxWithLoss"
  3087. bottom: "race/ip1"
  3088. bottom: "label_race"
  3089. top: "loss_race"
  3090. }
  3091. layer {
  3092. name: "accuracy_race"
  3093. type: "Accuracy"
  3094. bottom: "race/ip1"
  3095. bottom: "label_race"
  3096. top: "accuracy_race"
  3097. include {
  3098. phase: TEST
  3099. }
  3100. }

 

mobile_net.prototxt

  1. name: "FaceAttribution"
  2. layer {
  3. name: "data"
  4. type: "Data"
  5. top: "data"
  6. include {
  7. phase: TRAIN
  8. }
  9. transform_param {
  10. mean_value: 127.5
  11. mean_value: 127.5
  12. mean_value: 127.5
  13. scale: 0.0078125
  14. }
  15. data_param {
  16. source: "D:/face_attribute/lmdb/train_data_npd"
  17. batch_size: 64
  18. backend: LMDB
  19. }
  20. }
  21. layer {
  22. name: "data"
  23. type: "Data"
  24. top: "label"
  25. include {
  26. phase: TRAIN
  27. }
  28. data_param {
  29. source: "D:/face_attribute/lmdb/train_label_npd"
  30. batch_size: 64
  31. backend: LMDB
  32. }
  33. }
  34. layer {
  35. name: "data"
  36. type: "Data"
  37. top: "data"
  38. include {
  39. phase: TEST
  40. }
  41. transform_param {
  42. mean_value: 127.5
  43. mean_value: 127.5
  44. mean_value: 127.5
  45. scale: 0.0078125
  46. }
  47. data_param {
  48. source: "D:/face_attribute/lmdb/test_data_npd"
  49. batch_size: 64
  50. backend: LMDB
  51. }
  52. }
  53. layer {
  54. name: "data"
  55. type: "Data"
  56. top: "label"
  57. include {
  58. phase: TEST
  59. }
  60. data_param {
  61. source: "D:/face_attribute/lmdb/test_label_npd"
  62. batch_size: 64
  63. backend: LMDB
  64. }
  65. }
  66. layer {
  67. name: "conv1"
  68. type: "Convolution"
  69. bottom: "data"
  70. top: "conv1"
  71. convolution_param {
  72. num_output: 24
  73. pad: 1
  74. kernel_size: 3
  75. stride: 2
  76. bias_term: false
  77. weight_filler {
  78. type: "msra"
  79. }
  80. }
  81. }
  82. layer {
  83. name: "conv1_bn"
  84. type: "BatchNorm"
  85. bottom: "conv1"
  86. top: "conv1"
  87. param {
  88. lr_mult: 0
  89. decay_mult: 0
  90. }
  91. param {
  92. lr_mult: 0
  93. decay_mult: 0
  94. }
  95. param {
  96. lr_mult: 0
  97. decay_mult: 0
  98. }
  99. }
  100. layer {
  101. name: "conv1_scale"
  102. bottom: "conv1"
  103. top: "conv1"
  104. type: "Scale"
  105. scale_param {
  106. filler {
  107. value: 1
  108. }
  109. bias_term: true
  110. bias_filler {
  111. value: 0
  112. }
  113. }
  114. }
  115. layer {
  116. name: "conv1_relu"
  117. type: "PReLU"
  118. bottom: "conv1"
  119. top: "conv1"
  120. }
  121. layer {
  122. name: "conv2"
  123. type: "Convolution"
  124. bottom: "conv1"
  125. top: "conv2"
  126. convolution_param {
  127. num_output: 48
  128. pad: 1
  129. kernel_size: 3
  130. stride: 2
  131. bias_term: false
  132. weight_filler {
  133. type: "msra"
  134. }
  135. }
  136. }
  137. layer {
  138. name: "conv2_bn"
  139. type: "BatchNorm"
  140. bottom: "conv2"
  141. top: "conv2"
  142. param {
  143. lr_mult: 0
  144. decay_mult: 0
  145. }
  146. param {
  147. lr_mult: 0
  148. decay_mult: 0
  149. }
  150. param {
  151. lr_mult: 0
  152. decay_mult: 0
  153. }
  154. }
  155. layer {
  156. name: "conv2_scale"
  157. bottom: "conv2"
  158. top: "conv2"
  159. type: "Scale"
  160. scale_param {
  161. filler {
  162. value: 1
  163. }
  164. bias_term: true
  165. bias_filler {
  166. value: 0
  167. }
  168. }
  169. }
  170. layer {
  171. name: "conv2_relu"
  172. type: "PReLU"
  173. bottom: "conv2"
  174. top: "conv2"
  175. }
  176. layer {
  177. name: "conv_3_1_pw"
  178. type: "Convolution"
  179. bottom: "conv2"
  180. top: "conv_3_1_pw"
  181. param {
  182. lr_mult: 1.0
  183. decay_mult: 1.0
  184. }
  185. convolution_param {
  186. num_output: 96
  187. bias_term: false
  188. pad: 0
  189. kernel_size: 1
  190. stride: 1
  191. weight_filler {
  192. type: "msra"
  193. }
  194. bias_filler {
  195. type: "constant"
  196. value: 0.0
  197. }
  198. }
  199. }
  200. layer {
  201. name: "bn_3_1_pw"
  202. type: "BatchNorm"
  203. bottom: "conv_3_1_pw"
  204. top: "conv_3_1_pw"
  205. param {
  206. lr_mult: 0.0
  207. decay_mult: 0.0
  208. }
  209. param {
  210. lr_mult: 0.0
  211. decay_mult: 0.0
  212. }
  213. param {
  214. lr_mult: 0.0
  215. decay_mult: 0.0
  216. }
  217. }
  218. layer {
  219. name: "scale_3_1_pw"
  220. type: "Scale"
  221. bottom: "conv_3_1_pw"
  222. top: "conv_3_1_pw"
  223. scale_param {
  224. bias_term: true
  225. }
  226. }
  227. layer {
  228. name: "relu_3_1_pw"
  229. type: "PReLU"
  230. bottom: "conv_3_1_pw"
  231. top: "conv_3_1_pw"
  232. }
  233. layer {
  234. name: "conv_3_1_dw"
  235. type: "ConvolutionDepthwise"
  236. bottom: "conv_3_1_pw"
  237. top: "conv_3_1_dw"
  238. param {
  239. lr_mult: 1.0
  240. decay_mult: 1.0
  241. }
  242. convolution_param {
  243. num_output: 96
  244. bias_term: false
  245. pad: 1
  246. kernel_size: 3
  247. stride: 2
  248. weight_filler {
  249. type: "msra"
  250. }
  251. bias_filler {
  252. type: "constant"
  253. value: 0.0
  254. }
  255. }
  256. }
  257. layer {
  258. name: "bn_3_1_dw"
  259. type: "BatchNorm"
  260. bottom: "conv_3_1_dw"
  261. top: "conv_3_1_dw"
  262. param {
  263. lr_mult: 0.0
  264. decay_mult: 0.0
  265. }
  266. param {
  267. lr_mult: 0.0
  268. decay_mult: 0.0
  269. }
  270. param {
  271. lr_mult: 0.0
  272. decay_mult: 0.0
  273. }
  274. }
  275. layer {
  276. name: "scale_3_1_dw"
  277. type: "Scale"
  278. bottom: "conv_3_1_dw"
  279. top: "conv_3_1_dw"
  280. scale_param {
  281. bias_term: true
  282. }
  283. }
  284. layer {
  285. name: "relu_3_1_dw"
  286. type: "PReLU"
  287. bottom: "conv_3_1_dw"
  288. top: "conv_3_1_dw"
  289. }
  290. layer {
  291. name: "conv_3_1_linear"
  292. type: "Convolution"
  293. bottom: "conv_3_1_dw"
  294. top: "conv_3_1_linear"
  295. param {
  296. lr_mult: 1.0
  297. decay_mult: 1.0
  298. }
  299. convolution_param {
  300. num_output: 64
  301. bias_term: false
  302. pad: 0
  303. kernel_size: 1
  304. stride: 1
  305. weight_filler {
  306. type: "msra"
  307. }
  308. bias_filler {
  309. type: "constant"
  310. value: 0.0
  311. }
  312. }
  313. }
  314. layer {
  315. name: "bn_3_1_linear"
  316. type: "BatchNorm"
  317. bottom: "conv_3_1_linear"
  318. top: "conv_3_1_linear"
  319. param {
  320. lr_mult: 0.0
  321. decay_mult: 0.0
  322. }
  323. param {
  324. lr_mult: 0.0
  325. decay_mult: 0.0
  326. }
  327. param {
  328. lr_mult: 0.0
  329. decay_mult: 0.0
  330. }
  331. }
  332. layer {
  333. name: "scale_3_1_linear"
  334. type: "Scale"
  335. bottom: "conv_3_1_linear"
  336. top: "conv_3_1_linear"
  337. scale_param {
  338. bias_term: true
  339. }
  340. }
  341. layer {
  342. name: "conv_4_1_pw"
  343. type: "Convolution"
  344. bottom: "conv_3_1_linear"
  345. top: "conv_4_1_pw"
  346. param {
  347. lr_mult: 1.0
  348. decay_mult: 1.0
  349. }
  350. convolution_param {
  351. num_output: 96
  352. bias_term: false
  353. pad: 0
  354. kernel_size: 1
  355. stride: 1
  356. weight_filler {
  357. type: "msra"
  358. }
  359. bias_filler {
  360. type: "constant"
  361. value: 0.0
  362. }
  363. }
  364. }
  365. layer {
  366. name: "bn_4_1_pw"
  367. type: "BatchNorm"
  368. bottom: "conv_4_1_pw"
  369. top: "conv_4_1_pw"
  370. param {
  371. lr_mult: 0.0
  372. decay_mult: 0.0
  373. }
  374. param {
  375. lr_mult: 0.0
  376. decay_mult: 0.0
  377. }
  378. param {
  379. lr_mult: 0.0
  380. decay_mult: 0.0
  381. }
  382. }
  383. layer {
  384. name: "scale_4_1_pw"
  385. type: "Scale"
  386. bottom: "conv_4_1_pw"
  387. top: "conv_4_1_pw"
  388. scale_param {
  389. bias_term: true
  390. }
  391. }
  392. layer {
  393. name: "relu_4_1_pw"
  394. type: "PReLU"
  395. bottom: "conv_4_1_pw"
  396. top: "conv_4_1_pw"
  397. }
  398. layer {
  399. name: "conv_4_1_dw"
  400. type: "ConvolutionDepthwise"
  401. bottom: "conv_4_1_pw"
  402. top: "conv_4_1_dw"
  403. param {
  404. lr_mult: 1.0
  405. decay_mult: 1.0
  406. }
  407. convolution_param {
  408. num_output: 96
  409. bias_term: false
  410. pad: 1
  411. kernel_size: 3
  412. stride: 1
  413. weight_filler {
  414. type: "msra"
  415. }
  416. bias_filler {
  417. type: "constant"
  418. value: 0.0
  419. }
  420. }
  421. }
  422. layer {
  423. name: "bn_4_1_dw"
  424. type: "BatchNorm"
  425. bottom: "conv_4_1_dw"
  426. top: "conv_4_1_dw"
  427. param {
  428. lr_mult: 0.0
  429. decay_mult: 0.0
  430. }
  431. param {
  432. lr_mult: 0.0
  433. decay_mult: 0.0
  434. }
  435. param {
  436. lr_mult: 0.0
  437. decay_mult: 0.0
  438. }
  439. }
  440. layer {
  441. name: "scale_4_1_dw"
  442. type: "Scale"
  443. bottom: "conv_4_1_dw"
  444. top: "conv_4_1_dw"
  445. scale_param {
  446. bias_term: true
  447. }
  448. }
  449. layer {
  450. name: "relu_4_1_dw"
  451. type: "PReLU"
  452. bottom: "conv_4_1_dw"
  453. top: "conv_4_1_dw"
  454. }
  455. layer {
  456. name: "conv_4_1_linear"
  457. type: "Convolution"
  458. bottom: "conv_4_1_dw"
  459. top: "conv_4_1_linear"
  460. param {
  461. lr_mult: 1.0
  462. decay_mult: 1.0
  463. }
  464. convolution_param {
  465. num_output: 64
  466. bias_term: false
  467. pad: 0
  468. kernel_size: 1
  469. stride: 1
  470. weight_filler {
  471. type: "msra"
  472. }
  473. bias_filler {
  474. type: "constant"
  475. value: 0.0
  476. }
  477. }
  478. }
  479. layer {
  480. name: "bn_4_1_linear"
  481. type: "BatchNorm"
  482. bottom: "conv_4_1_linear"
  483. top: "conv_4_1_linear"
  484. param {
  485. lr_mult: 0.0
  486. decay_mult: 0.0
  487. }
  488. param {
  489. lr_mult: 0.0
  490. decay_mult: 0.0
  491. }
  492. param {
  493. lr_mult: 0.0
  494. decay_mult: 0.0
  495. }
  496. }
  497. layer {
  498. name: "scale_4_1_linear"
  499. type: "Scale"
  500. bottom: "conv_4_1_linear"
  501. top: "conv_4_1_linear"
  502. scale_param {
  503. bias_term: true
  504. }
  505. }
  506. layer {
  507. name: "add_4_1"
  508. type: "Eltwise"
  509. bottom: "conv_3_1_linear"
  510. bottom: "conv_4_1_linear"
  511. top: "add_4_2"
  512. }
  513. layer {
  514. name: "conv_5_1_pw"
  515. type: "Convolution"
  516. bottom: "add_4_2"
  517. top: "conv_5_1_pw"
  518. param {
  519. lr_mult: 1.0
  520. decay_mult: 1.0
  521. }
  522. convolution_param {
  523. num_output: 96
  524. bias_term: false
  525. pad: 0
  526. kernel_size: 1
  527. stride: 1
  528. weight_filler {
  529. type: "msra"
  530. }
  531. bias_filler {
  532. type: "constant"
  533. value: 0.0
  534. }
  535. }
  536. }
  537. layer {
  538. name: "bn_5_1_pw"
  539. type: "BatchNorm"
  540. bottom: "conv_5_1_pw"
  541. top: "conv_5_1_pw"
  542. param {
  543. lr_mult: 0.0
  544. decay_mult: 0.0
  545. }
  546. param {
  547. lr_mult: 0.0
  548. decay_mult: 0.0
  549. }
  550. param {
  551. lr_mult: 0.0
  552. decay_mult: 0.0
  553. }
  554. }
  555. layer {
  556. name: "scale_5_1_pw"
  557. type: "Scale"
  558. bottom: "conv_5_1_pw"
  559. top: "conv_5_1_pw"
  560. scale_param {
  561. bias_term: true
  562. }
  563. }
  564. layer {
  565. name: "relu_5_1_pw"
  566. type: "PReLU"
  567. bottom: "conv_5_1_pw"
  568. top: "conv_5_1_pw"
  569. }
  570. layer {
  571. name: "conv_5_1_dw"
  572. type: "ConvolutionDepthwise"
  573. bottom: "conv_5_1_pw"
  574. top: "conv_5_1_dw"
  575. param {
  576. lr_mult: 1.0
  577. decay_mult: 1.0
  578. }
  579. convolution_param {
  580. num_output: 96
  581. bias_term: false
  582. pad: 1
  583. kernel_size: 3
  584. stride: 1
  585. weight_filler {
  586. type: "msra"
  587. }
  588. bias_filler {
  589. type: "constant"
  590. value: 0.0
  591. }
  592. }
  593. }
  594. layer {
  595. name: "bn_5_1_dw"
  596. type: "BatchNorm"
  597. bottom: "conv_5_1_dw"
  598. top: "conv_5_1_dw"
  599. param {
  600. lr_mult: 0.0
  601. decay_mult: 0.0
  602. }
  603. param {
  604. lr_mult: 0.0
  605. decay_mult: 0.0
  606. }
  607. param {
  608. lr_mult: 0.0
  609. decay_mult: 0.0
  610. }
  611. }
  612. layer {
  613. name: "scale_5_1_dw"
  614. type: "Scale"
  615. bottom: "conv_5_1_dw"
  616. top: "conv_5_1_dw"
  617. scale_param {
  618. bias_term: true
  619. }
  620. }
  621. layer {
  622. name: "relu_5_1_dw"
  623. type: "PReLU"
  624. bottom: "conv_5_1_dw"
  625. top: "conv_5_1_dw"
  626. }
  627. layer {
  628. name: "conv_5_1_linear"
  629. type: "Convolution"
  630. bottom: "conv_5_1_dw"
  631. top: "conv_5_1_linear"
  632. param {
  633. lr_mult: 1.0
  634. decay_mult: 1.0
  635. }
  636. convolution_param {
  637. num_output: 64
  638. bias_term: false
  639. pad: 0
  640. kernel_size: 1
  641. stride: 1
  642. weight_filler {
  643. type: "msra"
  644. }
  645. bias_filler {
  646. type: "constant"
  647. value: 0.0
  648. }
  649. }
  650. }
  651. layer {
  652. name: "bn_5_1_linear"
  653. type: "BatchNorm"
  654. bottom: "conv_5_1_linear"
  655. top: "conv_5_1_linear"
  656. param {
  657. lr_mult: 0.0
  658. decay_mult: 0.0
  659. }
  660. param {
  661. lr_mult: 0.0
  662. decay_mult: 0.0
  663. }
  664. param {
  665. lr_mult: 0.0
  666. decay_mult: 0.0
  667. }
  668. }
  669. layer {
  670. name: "scale_5_1_linear"
  671. type: "Scale"
  672. bottom: "conv_5_1_linear"
  673. top: "conv_5_1_linear"
  674. scale_param {
  675. bias_term: true
  676. }
  677. }
  678. layer {
  679. name: "add_5_1"
  680. type: "Eltwise"
  681. bottom: "add_4_2"
  682. bottom: "conv_5_1_linear"
  683. top: "add_5_1"
  684. }
  685. layer {
  686. name: "conv_6_1_pw"
  687. type: "Convolution"
  688. bottom: "add_5_1"
  689. top: "conv_6_1_pw"
  690. param {
  691. lr_mult: 1.0
  692. decay_mult: 1.0
  693. }
  694. convolution_param {
  695. num_output: 96
  696. bias_term: false
  697. pad: 0
  698. kernel_size: 1
  699. stride: 1
  700. weight_filler {
  701. type: "msra"
  702. }
  703. bias_filler {
  704. type: "constant"
  705. value: 0.0
  706. }
  707. }
  708. }
  709. layer {
  710. name: "bn_6_1_pw"
  711. type: "BatchNorm"
  712. bottom: "conv_6_1_pw"
  713. top: "conv_6_1_pw"
  714. param {
  715. lr_mult: 0.0
  716. decay_mult: 0.0
  717. }
  718. param {
  719. lr_mult: 0.0
  720. decay_mult: 0.0
  721. }
  722. param {
  723. lr_mult: 0.0
  724. decay_mult: 0.0
  725. }
  726. }
  727. layer {
  728. name: "scale_6_1_pw"
  729. type: "Scale"
  730. bottom: "conv_6_1_pw"
  731. top: "conv_6_1_pw"
  732. scale_param {
  733. bias_term: true
  734. }
  735. }
  736. layer {
  737. name: "relu_6_1_pw"
  738. type: "PReLU"
  739. bottom: "conv_6_1_pw"
  740. top: "conv_6_1_pw"
  741. }
  742. layer {
  743. name: "conv_6_1_dw"
  744. type: "ConvolutionDepthwise"
  745. bottom: "conv_6_1_pw"
  746. top: "conv_6_1_dw"
  747. param {
  748. lr_mult: 1.0
  749. decay_mult: 1.0
  750. }
  751. convolution_param {
  752. num_output: 96
  753. bias_term: false
  754. pad: 1
  755. kernel_size: 3
  756. stride: 1
  757. weight_filler {
  758. type: "msra"
  759. }
  760. bias_filler {
  761. type: "constant"
  762. value: 0.0
  763. }
  764. }
  765. }
  766. layer {
  767. name: "bn_6_1_dw"
  768. type: "BatchNorm"
  769. bottom: "conv_6_1_dw"
  770. top: "conv_6_1_dw"
  771. param {
  772. lr_mult: 0.0
  773. decay_mult: 0.0
  774. }
  775. param {
  776. lr_mult: 0.0
  777. decay_mult: 0.0
  778. }
  779. param {
  780. lr_mult: 0.0
  781. decay_mult: 0.0
  782. }
  783. }
  784. layer {
  785. name: "scale_6_1_dw"
  786. type: "Scale"
  787. bottom: "conv_6_1_dw"
  788. top: "conv_6_1_dw"
  789. scale_param {
  790. bias_term: true
  791. }
  792. }
  793. layer {
  794. name: "relu_6_1_dw"
  795. type: "PReLU"
  796. bottom: "conv_6_1_dw"
  797. top: "conv_6_1_dw"
  798. }
  799. layer {
  800. name: "conv_6_1_linear"
  801. type: "Convolution"
  802. bottom: "conv_6_1_dw"
  803. top: "conv_6_1_linear"
  804. param {
  805. lr_mult: 1.0
  806. decay_mult: 1.0
  807. }
  808. convolution_param {
  809. num_output: 64
  810. bias_term: false
  811. pad: 0
  812. kernel_size: 1
  813. stride: 1
  814. weight_filler {
  815. type: "msra"
  816. }
  817. bias_filler {
  818. type: "constant"
  819. value: 0.0
  820. }
  821. }
  822. }
  823. layer {
  824. name: "bn_6_1_linear"
  825. type: "BatchNorm"
  826. bottom: "conv_6_1_linear"
  827. top: "conv_6_1_linear"
  828. param {
  829. lr_mult: 0.0
  830. decay_mult: 0.0
  831. }
  832. param {
  833. lr_mult: 0.0
  834. decay_mult: 0.0
  835. }
  836. param {
  837. lr_mult: 0.0
  838. decay_mult: 0.0
  839. }
  840. }
  841. layer {
  842. name: "scale_6_1_linear"
  843. type: "Scale"
  844. bottom: "conv_6_1_linear"
  845. top: "conv_6_1_linear"
  846. scale_param {
  847. bias_term: true
  848. }
  849. }
  850. layer {
  851. name: "add_6_1"
  852. type: "Eltwise"
  853. bottom: "add_5_1"
  854. bottom: "conv_6_1_linear"
  855. top: "add_6_1"
  856. }
  857. layer {
  858. name: "age/conv_4_1_pw"
  859. type: "Convolution"
  860. bottom: "add_6_1"
  861. top: "age/conv_4_1_pw"
  862. param {
  863. lr_mult: 1.0
  864. decay_mult: 1.0
  865. }
  866. convolution_param {
  867. num_output: 192
  868. bias_term: false
  869. pad: 0
  870. kernel_size: 1
  871. stride: 1
  872. weight_filler {
  873. type: "msra"
  874. }
  875. bias_filler {
  876. type: "constant"
  877. value: 0.0
  878. }
  879. }
  880. }
  881. layer {
  882. name: "age/bn_4_1_pw"
  883. type: "BatchNorm"
  884. bottom: "age/conv_4_1_pw"
  885. top: "age/conv_4_1_pw"
  886. param {
  887. lr_mult: 0.0
  888. decay_mult: 0.0
  889. }
  890. param {
  891. lr_mult: 0.0
  892. decay_mult: 0.0
  893. }
  894. param {
  895. lr_mult: 0.0
  896. decay_mult: 0.0
  897. }
  898. }
  899. layer {
  900. name: "age/scale_4_1_pw"
  901. type: "Scale"
  902. bottom: "age/conv_4_1_pw"
  903. top: "age/conv_4_1_pw"
  904. scale_param {
  905. bias_term: true
  906. }
  907. }
  908. layer {
  909. name: "age/relu_4_1_pw"
  910. type: "PReLU"
  911. bottom: "age/conv_4_1_pw"
  912. top: "age/conv_4_1_pw"
  913. }
  914. layer {
  915. name: "age/conv_4_1_dw"
  916. type: "ConvolutionDepthwise"
  917. bottom: "age/conv_4_1_pw"
  918. top: "age/conv_4_1_dw"
  919. param {
  920. lr_mult: 1.0
  921. decay_mult: 1.0
  922. }
  923. convolution_param {
  924. num_output: 192
  925. bias_term: false
  926. pad: 1
  927. kernel_size: 3
  928. stride: 2
  929. weight_filler {
  930. type: "msra"
  931. }
  932. bias_filler {
  933. type: "constant"
  934. value: 0.0
  935. }
  936. }
  937. }
  938. layer {
  939. name: "age/bn_4_1_dw"
  940. type: "BatchNorm"
  941. bottom: "age/conv_4_1_dw"
  942. top: "age/conv_4_1_dw"
  943. param {
  944. lr_mult: 0.0
  945. decay_mult: 0.0
  946. }
  947. param {
  948. lr_mult: 0.0
  949. decay_mult: 0.0
  950. }
  951. param {
  952. lr_mult: 0.0
  953. decay_mult: 0.0
  954. }
  955. }
  956. layer {
  957. name: "age/scale_4_1_dw"
  958. type: "Scale"
  959. bottom: "age/conv_4_1_dw"
  960. top: "age/conv_4_1_dw"
  961. scale_param {
  962. bias_term: true
  963. }
  964. }
  965. layer {
  966. name: "age/relu_4_1_dw"
  967. type: "PReLU"
  968. bottom: "age/conv_4_1_dw"
  969. top: "age/conv_4_1_dw"
  970. }
  971. layer {
  972. name: "age/conv_4_1_linear"
  973. type: "Convolution"
  974. bottom: "age/conv_4_1_dw"
  975. top: "age/conv_4_1_linear"
  976. param {
  977. lr_mult: 1.0
  978. decay_mult: 1.0
  979. }
  980. convolution_param {
  981. num_output: 96
  982. bias_term: false
  983. pad: 0
  984. kernel_size: 1
  985. stride: 1
  986. weight_filler {
  987. type: "msra"
  988. }
  989. bias_filler {
  990. type: "constant"
  991. value: 0.0
  992. }
  993. }
  994. }
  995. layer {
  996. name: "age/bn_4_1_linear"
  997. type: "BatchNorm"
  998. bottom: "age/conv_4_1_linear"
  999. top: "age/conv_4_1_linear"
  1000. param {
  1001. lr_mult: 0.0
  1002. decay_mult: 0.0
  1003. }
  1004. param {
  1005. lr_mult: 0.0
  1006. decay_mult: 0.0
  1007. }
  1008. param {
  1009. lr_mult: 0.0
  1010. decay_mult: 0.0
  1011. }
  1012. }
  1013. layer {
  1014. name: "age/scale_4_1_linear"
  1015. type: "Scale"
  1016. bottom: "age/conv_4_1_linear"
  1017. top: "age/conv_4_1_linear"
  1018. scale_param {
  1019. bias_term: true
  1020. }
  1021. }
  1022. layer {
  1023. name: "age/conv_4_2_pw"
  1024. type: "Convolution"
  1025. bottom: "age/conv_4_1_linear"
  1026. top: "age/conv_4_2_pw"
  1027. param {
  1028. lr_mult: 1.0
  1029. decay_mult: 1.0
  1030. }
  1031. convolution_param {
  1032. num_output: 192
  1033. bias_term: false
  1034. pad: 0
  1035. kernel_size: 1
  1036. stride: 1
  1037. weight_filler {
  1038. type: "msra"
  1039. }
  1040. bias_filler {
  1041. type: "constant"
  1042. value: 0.0
  1043. }
  1044. }
  1045. }
  1046. layer {
  1047. name: "age/bn_4_2_pw"
  1048. type: "BatchNorm"
  1049. bottom: "age/conv_4_2_pw"
  1050. top: "age/conv_4_2_pw"
  1051. param {
  1052. lr_mult: 0.0
  1053. decay_mult: 0.0
  1054. }
  1055. param {
  1056. lr_mult: 0.0
  1057. decay_mult: 0.0
  1058. }
  1059. param {
  1060. lr_mult: 0.0
  1061. decay_mult: 0.0
  1062. }
  1063. }
  1064. layer {
  1065. name: "age/scale_4_2_pw"
  1066. type: "Scale"
  1067. bottom: "age/conv_4_2_pw"
  1068. top: "age/conv_4_2_pw"
  1069. scale_param {
  1070. bias_term: true
  1071. }
  1072. }
  1073. layer {
  1074. name: "age/relu_4_2_pw"
  1075. type: "PReLU"
  1076. bottom: "age/conv_4_2_pw"
  1077. top: "age/conv_4_2_pw"
  1078. }
  1079. layer {
  1080. name: "age/conv_4_2_dw"
  1081. type: "ConvolutionDepthwise"
  1082. bottom: "age/conv_4_2_pw"
  1083. top: "age/conv_4_2_dw"
  1084. param {
  1085. lr_mult: 1.0
  1086. decay_mult: 1.0
  1087. }
  1088. convolution_param {
  1089. num_output: 192
  1090. bias_term: false
  1091. pad: 1
  1092. kernel_size: 3
  1093. stride: 1
  1094. weight_filler {
  1095. type: "msra"
  1096. }
  1097. bias_filler {
  1098. type: "constant"
  1099. value: 0.0
  1100. }
  1101. }
  1102. }
  1103. layer {
  1104. name: "age/bn_4_2_dw"
  1105. type: "BatchNorm"
  1106. bottom: "age/conv_4_2_dw"
  1107. top: "age/conv_4_2_dw"
  1108. param {
  1109. lr_mult: 0.0
  1110. decay_mult: 0.0
  1111. }
  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. }
  1121. layer {
  1122. name: "age/scale_4_2_dw"
  1123. type: "Scale"
  1124. bottom: "age/conv_4_2_dw"
  1125. top: "age/conv_4_2_dw"
  1126. scale_param {
  1127. bias_term: true
  1128. }
  1129. }
  1130. layer {
  1131. name: "age/relu_4_2_dw"
  1132. type: "PReLU"
  1133. bottom: "age/conv_4_2_dw"
  1134. top: "age/conv_4_2_dw"
  1135. }
  1136. layer {
  1137. name: "age/conv_4_2_linear"
  1138. type: "Convolution"
  1139. bottom: "age/conv_4_2_dw"
  1140. top: "age/conv_4_2_linear"
  1141. param {
  1142. lr_mult: 1.0
  1143. decay_mult: 1.0
  1144. }
  1145. convolution_param {
  1146. num_output: 96
  1147. bias_term: false
  1148. pad: 0
  1149. kernel_size: 1
  1150. stride: 1
  1151. weight_filler {
  1152. type: "msra"
  1153. }
  1154. bias_filler {
  1155. type: "constant"
  1156. value: 0.0
  1157. }
  1158. }
  1159. }
  1160. layer {
  1161. name: "age/bn_4_2_linear"
  1162. type: "BatchNorm"
  1163. bottom: "age/conv_4_2_linear"
  1164. top: "age/conv_4_2_linear"
  1165. param {
  1166. lr_mult: 0.0
  1167. decay_mult: 0.0
  1168. }
  1169. param {
  1170. lr_mult: 0.0
  1171. decay_mult: 0.0
  1172. }
  1173. param {
  1174. lr_mult: 0.0
  1175. decay_mult: 0.0
  1176. }
  1177. }
  1178. layer {
  1179. name: "age/scale_4_2_linear"
  1180. type: "Scale"
  1181. bottom: "age/conv_4_2_linear"
  1182. top: "age/conv_4_2_linear"
  1183. scale_param {
  1184. bias_term: true
  1185. }
  1186. }
  1187. layer {
  1188. name: "age/add_4_2"
  1189. type: "Eltwise"
  1190. bottom: "age/conv_4_1_linear"
  1191. bottom: "age/conv_4_2_linear"
  1192. top: "age/add_4_2"
  1193. }
  1194. layer {
  1195. name: "age/ip1"
  1196. type: "InnerProduct"
  1197. bottom: "age/add_4_2"
  1198. top: "age/ip1"
  1199. param {
  1200. lr_mult: 1
  1201. }
  1202. param {
  1203. lr_mult: 2
  1204. }
  1205. inner_product_param {
  1206. num_output: 96
  1207. weight_filler {
  1208. type: "xavier"
  1209. }
  1210. bias_filler {
  1211. type: "constant"
  1212. }
  1213. }
  1214. }
  1215. layer {
  1216. name: "age/ip2"
  1217. type: "InnerProduct"
  1218. bottom: "age/ip1"
  1219. top: "age/ip2"
  1220. param {
  1221. lr_mult: 1
  1222. }
  1223. param {
  1224. lr_mult: 2
  1225. }
  1226. inner_product_param {
  1227. num_output: 1
  1228. weight_filler {
  1229. type: "xavier"
  1230. }
  1231. bias_filler {
  1232. type: "constant"
  1233. }
  1234. }
  1235. }
  1236. layer {
  1237. name: "emotion/conv_4_1_pw"
  1238. type: "Convolution"
  1239. bottom: "add_6_1"
  1240. top: "emotion/conv_4_1_pw"
  1241. param {
  1242. lr_mult: 1.0
  1243. decay_mult: 1.0
  1244. }
  1245. convolution_param {
  1246. num_output: 192
  1247. bias_term: false
  1248. pad: 0
  1249. kernel_size: 1
  1250. stride: 1
  1251. weight_filler {
  1252. type: "msra"
  1253. }
  1254. bias_filler {
  1255. type: "constant"
  1256. value: 0.0
  1257. }
  1258. }
  1259. }
  1260. layer {
  1261. name: "emotion/bn_4_1_pw"
  1262. type: "BatchNorm"
  1263. bottom: "emotion/conv_4_1_pw"
  1264. top: "emotion/conv_4_1_pw"
  1265. param {
  1266. lr_mult: 0.0
  1267. decay_mult: 0.0
  1268. }
  1269. param {
  1270. lr_mult: 0.0
  1271. decay_mult: 0.0
  1272. }
  1273. param {
  1274. lr_mult: 0.0
  1275. decay_mult: 0.0
  1276. }
  1277. }
  1278. layer {
  1279. name: "emotion/scale_4_1_pw"
  1280. type: "Scale"
  1281. bottom: "emotion/conv_4_1_pw"
  1282. top: "emotion/conv_4_1_pw"
  1283. scale_param {
  1284. bias_term: true
  1285. }
  1286. }
  1287. layer {
  1288. name: "emotion/relu_4_1_pw"
  1289. type: "PReLU"
  1290. bottom: "emotion/conv_4_1_pw"
  1291. top: "emotion/conv_4_1_pw"
  1292. }
  1293. layer {
  1294. name: "emotion/conv_4_1_dw"
  1295. type: "ConvolutionDepthwise"
  1296. bottom: "emotion/conv_4_1_pw"
  1297. top: "emotion/conv_4_1_dw"
  1298. param {
  1299. lr_mult: 1.0
  1300. decay_mult: 1.0
  1301. }
  1302. convolution_param {
  1303. num_output: 192
  1304. bias_term: false
  1305. pad: 1
  1306. kernel_size: 3
  1307. stride: 2
  1308. weight_filler {
  1309. type: "msra"
  1310. }
  1311. bias_filler {
  1312. type: "constant"
  1313. value: 0.0
  1314. }
  1315. }
  1316. }
  1317. layer {
  1318. name: "emotion/bn_4_1_dw"
  1319. type: "BatchNorm"
  1320. bottom: "emotion/conv_4_1_dw"
  1321. top: "emotion/conv_4_1_dw"
  1322. param {
  1323. lr_mult: 0.0
  1324. decay_mult: 0.0
  1325. }
  1326. param {
  1327. lr_mult: 0.0
  1328. decay_mult: 0.0
  1329. }
  1330. param {
  1331. lr_mult: 0.0
  1332. decay_mult: 0.0
  1333. }
  1334. }
  1335. layer {
  1336. name: "emotion/scale_4_1_dw"
  1337. type: "Scale"
  1338. bottom: "emotion/conv_4_1_dw"
  1339. top: "emotion/conv_4_1_dw"
  1340. scale_param {
  1341. bias_term: true
  1342. }
  1343. }
  1344. layer {
  1345. name: "emotion/relu_4_1_dw"
  1346. type: "PReLU"
  1347. bottom: "emotion/conv_4_1_dw"
  1348. top: "emotion/conv_4_1_dw"
  1349. }
  1350. layer {
  1351. name: "emotion/conv_4_1_linear"
  1352. type: "Convolution"
  1353. bottom: "emotion/conv_4_1_dw"
  1354. top: "emotion/conv_4_1_linear"
  1355. param {
  1356. lr_mult: 1.0
  1357. decay_mult: 1.0
  1358. }
  1359. convolution_param {
  1360. num_output: 96
  1361. bias_term: false
  1362. pad: 0
  1363. kernel_size: 1
  1364. stride: 1
  1365. weight_filler {
  1366. type: "msra"
  1367. }
  1368. bias_filler {
  1369. type: "constant"
  1370. value: 0.0
  1371. }
  1372. }
  1373. }
  1374. layer {
  1375. name: "emotion/bn_4_1_linear"
  1376. type: "BatchNorm"
  1377. bottom: "emotion/conv_4_1_linear"
  1378. top: "emotion/conv_4_1_linear"
  1379. param {
  1380. lr_mult: 0.0
  1381. decay_mult: 0.0
  1382. }
  1383. param {
  1384. lr_mult: 0.0
  1385. decay_mult: 0.0
  1386. }
  1387. param {
  1388. lr_mult: 0.0
  1389. decay_mult: 0.0
  1390. }
  1391. }
  1392. layer {
  1393. name: "emotion/scale_4_1_linear"
  1394. type: "Scale"
  1395. bottom: "emotion/conv_4_1_linear"
  1396. top: "emotion/conv_4_1_linear"
  1397. scale_param {
  1398. bias_term: true
  1399. }
  1400. }
  1401. layer {
  1402. name: "emotion/conv_4_2_pw"
  1403. type: "Convolution"
  1404. bottom: "emotion/conv_4_1_linear"
  1405. top: "emotion/conv_4_2_pw"
  1406. param {
  1407. lr_mult: 1.0
  1408. decay_mult: 1.0
  1409. }
  1410. convolution_param {
  1411. num_output: 192
  1412. bias_term: false
  1413. pad: 0
  1414. kernel_size: 1
  1415. stride: 1
  1416. weight_filler {
  1417. type: "msra"
  1418. }
  1419. bias_filler {
  1420. type: "constant"
  1421. value: 0.0
  1422. }
  1423. }
  1424. }
  1425. layer {
  1426. name: "emotion/bn_4_2_pw"
  1427. type: "BatchNorm"
  1428. bottom: "emotion/conv_4_2_pw"
  1429. top: "emotion/conv_4_2_pw"
  1430. param {
  1431. lr_mult: 0.0
  1432. decay_mult: 0.0
  1433. }
  1434. param {
  1435. lr_mult: 0.0
  1436. decay_mult: 0.0
  1437. }
  1438. param {
  1439. lr_mult: 0.0
  1440. decay_mult: 0.0
  1441. }
  1442. }
  1443. layer {
  1444. name: "emotion/scale_4_2_pw"
  1445. type: "Scale"
  1446. bottom: "emotion/conv_4_2_pw"
  1447. top: "emotion/conv_4_2_pw"
  1448. scale_param {
  1449. bias_term: true
  1450. }
  1451. }
  1452. layer {
  1453. name: "emotion/relu_4_2_pw"
  1454. type: "PReLU"
  1455. bottom: "emotion/conv_4_2_pw"
  1456. top: "emotion/conv_4_2_pw"
  1457. }
  1458. layer {
  1459. name: "emotion/conv_4_2_dw"
  1460. type: "ConvolutionDepthwise"
  1461. bottom: "emotion/conv_4_2_pw"
  1462. top: "emotion/conv_4_2_dw"
  1463. param {
  1464. lr_mult: 1.0
  1465. decay_mult: 1.0
  1466. }
  1467. convolution_param {
  1468. num_output: 192
  1469. bias_term: false
  1470. pad: 1
  1471. kernel_size: 3
  1472. stride: 1
  1473. weight_filler {
  1474. type: "msra"
  1475. }
  1476. bias_filler {
  1477. type: "constant"
  1478. value: 0.0
  1479. }
  1480. }
  1481. }
  1482. layer {
  1483. name: "emotion/bn_4_2_dw"
  1484. type: "BatchNorm"
  1485. bottom: "emotion/conv_4_2_dw"
  1486. top: "emotion/conv_4_2_dw"
  1487. param {
  1488. lr_mult: 0.0
  1489. decay_mult: 0.0
  1490. }
  1491. param {
  1492. lr_mult: 0.0
  1493. decay_mult: 0.0
  1494. }
  1495. param {
  1496. lr_mult: 0.0
  1497. decay_mult: 0.0
  1498. }
  1499. }
  1500. layer {
  1501. name: "emotion/scale_4_2_dw"
  1502. type: "Scale"
  1503. bottom: "emotion/conv_4_2_dw"
  1504. top: "emotion/conv_4_2_dw"
  1505. scale_param {
  1506. bias_term: true
  1507. }
  1508. }
  1509. layer {
  1510. name: "emotion/relu_4_2_dw"
  1511. type: "PReLU"
  1512. bottom: "emotion/conv_4_2_dw"
  1513. top: "emotion/conv_4_2_dw"
  1514. }
  1515. layer {
  1516. name: "emotion/conv_4_2_linear"
  1517. type: "Convolution"
  1518. bottom: "emotion/conv_4_2_dw"
  1519. top: "emotion/conv_4_2_linear"
  1520. param {
  1521. lr_mult: 1.0
  1522. decay_mult: 1.0
  1523. }
  1524. convolution_param {
  1525. num_output: 96
  1526. bias_term: false
  1527. pad: 0
  1528. kernel_size: 1
  1529. stride: 1
  1530. weight_filler {
  1531. type: "msra"
  1532. }
  1533. bias_filler {
  1534. type: "constant"
  1535. value: 0.0
  1536. }
  1537. }
  1538. }
  1539. layer {
  1540. name: "emotion/bn_4_2_linear"
  1541. type: "BatchNorm"
  1542. bottom: "emotion/conv_4_2_linear"
  1543. top: "emotion/conv_4_2_linear"
  1544. param {
  1545. lr_mult: 0.0
  1546. decay_mult: 0.0
  1547. }
  1548. param {
  1549. lr_mult: 0.0
  1550. decay_mult: 0.0
  1551. }
  1552. param {
  1553. lr_mult: 0.0
  1554. decay_mult: 0.0
  1555. }
  1556. }
  1557. layer {
  1558. name: "emotion/scale_4_2_linear"
  1559. type: "Scale"
  1560. bottom: "emotion/conv_4_2_linear"
  1561. top: "emotion/conv_4_2_linear"
  1562. scale_param {
  1563. bias_term: true
  1564. }
  1565. }
  1566. layer {
  1567. name: "emotion/add_4_2"
  1568. type: "Eltwise"
  1569. bottom: "emotion/conv_4_1_linear"
  1570. bottom: "emotion/conv_4_2_linear"
  1571. top: "emotion/add_4_2"
  1572. }
  1573. layer {
  1574. name: "emotion/conv1_"
  1575. type: "Convolution"
  1576. bottom: "emotion/add_4_2"
  1577. top: "emotion/conv1_"
  1578. param {
  1579. lr_mult: 1
  1580. decay_mult: 1
  1581. }
  1582. param {
  1583. lr_mult: 2
  1584. decay_mult: 0
  1585. }
  1586. convolution_param {
  1587. num_output: 128
  1588. kernel_size: 3
  1589. stride: 1
  1590. weight_filler {
  1591. type: "xavier"
  1592. }
  1593. bias_filler {
  1594. type: "constant"
  1595. value: 0
  1596. }
  1597. }
  1598. }
  1599. layer {
  1600. name: "emotion/relu1_"
  1601. type: "PReLU"
  1602. bottom: "emotion/conv1_"
  1603. top: "emotion/conv1_"
  1604. }
  1605. layer {
  1606. name: "emotion/pool1_"
  1607. type: "Pooling"
  1608. bottom: "emotion/conv1_"
  1609. top: "emotion/pool1_"
  1610. pooling_param {
  1611. pool: AVE
  1612. kernel_size: 4
  1613. stride: 4
  1614. }
  1615. }
  1616. layer {
  1617. name: "emotion/ip1"
  1618. type: "InnerProduct"
  1619. bottom: "emotion/pool1_"
  1620. top: "emotion/ip1"
  1621. param {
  1622. lr_mult: 1
  1623. }
  1624. param {
  1625. lr_mult: 2
  1626. }
  1627. inner_product_param {
  1628. num_output: 3
  1629. weight_filler {
  1630. type: "xavier"
  1631. }
  1632. bias_filler {
  1633. type: "constant"
  1634. }
  1635. }
  1636. }
  1637. layer {
  1638. name: "sex/conv_4_1_pw"
  1639. type: "Convolution"
  1640. bottom: "add_6_1"
  1641. top: "sex/conv_4_1_pw"
  1642. param {
  1643. lr_mult: 1.0
  1644. decay_mult: 1.0
  1645. }
  1646. convolution_param {
  1647. num_output: 192
  1648. bias_term: false
  1649. pad: 0
  1650. kernel_size: 1
  1651. stride: 1
  1652. weight_filler {
  1653. type: "msra"
  1654. }
  1655. bias_filler {
  1656. type: "constant"
  1657. value: 0.0
  1658. }
  1659. }
  1660. }
  1661. layer {
  1662. name: "sex/bn_4_1_pw"
  1663. type: "BatchNorm"
  1664. bottom: "sex/conv_4_1_pw"
  1665. top: "sex/conv_4_1_pw"
  1666. param {
  1667. lr_mult: 0.0
  1668. decay_mult: 0.0
  1669. }
  1670. param {
  1671. lr_mult: 0.0
  1672. decay_mult: 0.0
  1673. }
  1674. param {
  1675. lr_mult: 0.0
  1676. decay_mult: 0.0
  1677. }
  1678. }
  1679. layer {
  1680. name: "sex/scale_4_1_pw"
  1681. type: "Scale"
  1682. bottom: "sex/conv_4_1_pw"
  1683. top: "sex/conv_4_1_pw"
  1684. scale_param {
  1685. bias_term: true
  1686. }
  1687. }
  1688. layer {
  1689. name: "sex/relu_4_1_pw"
  1690. type: "PReLU"
  1691. bottom: "sex/conv_4_1_pw"
  1692. top: "sex/conv_4_1_pw"
  1693. }
  1694. layer {
  1695. name: "sex/conv_4_1_dw"
  1696. type: "ConvolutionDepthwise"
  1697. bottom: "sex/conv_4_1_pw"
  1698. top: "sex/conv_4_1_dw"
  1699. param {
  1700. lr_mult: 1.0
  1701. decay_mult: 1.0
  1702. }
  1703. convolution_param {
  1704. num_output: 192
  1705. bias_term: false
  1706. pad: 1
  1707. kernel_size: 3
  1708. stride: 2
  1709. weight_filler {
  1710. type: "msra"
  1711. }
  1712. bias_filler {
  1713. type: "constant"
  1714. value: 0.0
  1715. }
  1716. }
  1717. }
  1718. layer {
  1719. name: "sex/bn_4_1_dw"
  1720. type: "BatchNorm"
  1721. bottom: "sex/conv_4_1_dw"
  1722. top: "sex/conv_4_1_dw"
  1723. param {
  1724. lr_mult: 0.0
  1725. decay_mult: 0.0
  1726. }
  1727. param {
  1728. lr_mult: 0.0
  1729. decay_mult: 0.0
  1730. }
  1731. param {
  1732. lr_mult: 0.0
  1733. decay_mult: 0.0
  1734. }
  1735. }
  1736. layer {
  1737. name: "sex/scale_4_1_dw"
  1738. type: "Scale"
  1739. bottom: "sex/conv_4_1_dw"
  1740. top: "sex/conv_4_1_dw"
  1741. scale_param {
  1742. bias_term: true
  1743. }
  1744. }
  1745. layer {
  1746. name: "sex/relu_4_1_dw"
  1747. type: "PReLU"
  1748. bottom: "sex/conv_4_1_dw"
  1749. top: "sex/conv_4_1_dw"
  1750. }
  1751. layer {
  1752. name: "sex/conv_4_1_linear"
  1753. type: "Convolution"
  1754. bottom: "sex/conv_4_1_dw"
  1755. top: "sex/conv_4_1_linear"
  1756. param {
  1757. lr_mult: 1.0
  1758. decay_mult: 1.0
  1759. }
  1760. convolution_param {
  1761. num_output: 96
  1762. bias_term: false
  1763. pad: 0
  1764. kernel_size: 1
  1765. stride: 1
  1766. weight_filler {
  1767. type: "msra"
  1768. }
  1769. bias_filler {
  1770. type: "constant"
  1771. value: 0.0
  1772. }
  1773. }
  1774. }
  1775. layer {
  1776. name: "sex/bn_4_1_linear"
  1777. type: "BatchNorm"
  1778. bottom: "sex/conv_4_1_linear"
  1779. top: "sex/conv_4_1_linear"
  1780. param {
  1781. lr_mult: 0.0
  1782. decay_mult: 0.0
  1783. }
  1784. param {
  1785. lr_mult: 0.0
  1786. decay_mult: 0.0
  1787. }
  1788. param {
  1789. lr_mult: 0.0
  1790. decay_mult: 0.0
  1791. }
  1792. }
  1793. layer {
  1794. name: "sex/scale_4_1_linear"
  1795. type: "Scale"
  1796. bottom: "sex/conv_4_1_linear"
  1797. top: "sex/conv_4_1_linear"
  1798. scale_param {
  1799. bias_term: true
  1800. }
  1801. }
  1802. layer {
  1803. name: "sex/conv_4_2_pw"
  1804. type: "Convolution"
  1805. bottom: "sex/conv_4_1_linear"
  1806. top: "sex/conv_4_2_pw"
  1807. param {
  1808. lr_mult: 1.0
  1809. decay_mult: 1.0
  1810. }
  1811. convolution_param {
  1812. num_output: 192
  1813. bias_term: false
  1814. pad: 0
  1815. kernel_size: 1
  1816. stride: 1
  1817. weight_filler {
  1818. type: "msra"
  1819. }
  1820. bias_filler {
  1821. type: "constant"
  1822. value: 0.0
  1823. }
  1824. }
  1825. }
  1826. layer {
  1827. name: "sex/bn_4_2_pw"
  1828. type: "BatchNorm"
  1829. bottom: "sex/conv_4_2_pw"
  1830. top: "sex/conv_4_2_pw"
  1831. param {
  1832. lr_mult: 0.0
  1833. decay_mult: 0.0
  1834. }
  1835. param {
  1836. lr_mult: 0.0
  1837. decay_mult: 0.0
  1838. }
  1839. param {
  1840. lr_mult: 0.0
  1841. decay_mult: 0.0
  1842. }
  1843. }
  1844. layer {
  1845. name: "sex/scale_4_2_pw"
  1846. type: "Scale"
  1847. bottom: "sex/conv_4_2_pw"
  1848. top: "sex/conv_4_2_pw"
  1849. scale_param {
  1850. bias_term: true
  1851. }
  1852. }
  1853. layer {
  1854. name: "sex/relu_4_2_pw"
  1855. type: "PReLU"
  1856. bottom: "sex/conv_4_2_pw"
  1857. top: "sex/conv_4_2_pw"
  1858. }
  1859. layer {
  1860. name: "sex/conv_4_2_dw"
  1861. type: "ConvolutionDepthwise"
  1862. bottom: "sex/conv_4_2_pw"
  1863. top: "sex/conv_4_2_dw"
  1864. param {
  1865. lr_mult: 1.0
  1866. decay_mult: 1.0
  1867. }
  1868. convolution_param {
  1869. num_output: 192
  1870. bias_term: false
  1871. pad: 1
  1872. kernel_size: 3
  1873. stride: 1
  1874. weight_filler {
  1875. type: "msra"
  1876. }
  1877. bias_filler {
  1878. type: "constant"
  1879. value: 0.0
  1880. }
  1881. }
  1882. }
  1883. layer {
  1884. name: "sex/bn_4_2_dw"
  1885. type: "BatchNorm"
  1886. bottom: "sex/conv_4_2_dw"
  1887. top: "sex/conv_4_2_dw"
  1888. param {
  1889. lr_mult: 0.0
  1890. decay_mult: 0.0
  1891. }
  1892. param {
  1893. lr_mult: 0.0
  1894. decay_mult: 0.0
  1895. }
  1896. param {
  1897. lr_mult: 0.0
  1898. decay_mult: 0.0
  1899. }
  1900. }
  1901. layer {
  1902. name: "sex/scale_4_2_dw"
  1903. type: "Scale"
  1904. bottom: "sex/conv_4_2_dw"
  1905. top: "sex/conv_4_2_dw"
  1906. scale_param {
  1907. bias_term: true
  1908. }
  1909. }
  1910. layer {
  1911. name: "sex/relu_4_2_dw"
  1912. type: "PReLU"
  1913. bottom: "sex/conv_4_2_dw"
  1914. top: "sex/conv_4_2_dw"
  1915. }
  1916. layer {
  1917. name: "sex/conv_4_2_linear"
  1918. type: "Convolution"
  1919. bottom: "sex/conv_4_2_dw"
  1920. top: "sex/conv_4_2_linear"
  1921. param {
  1922. lr_mult: 1.0
  1923. decay_mult: 1.0
  1924. }
  1925. convolution_param {
  1926. num_output: 96
  1927. bias_term: false
  1928. pad: 0
  1929. kernel_size: 1
  1930. stride: 1
  1931. weight_filler {
  1932. type: "msra"
  1933. }
  1934. bias_filler {
  1935. type: "constant"
  1936. value: 0.0
  1937. }
  1938. }
  1939. }
  1940. layer {
  1941. name: "sex/bn_4_2_linear"
  1942. type: "BatchNorm"
  1943. bottom: "sex/conv_4_2_linear"
  1944. top: "sex/conv_4_2_linear"
  1945. param {
  1946. lr_mult: 0.0
  1947. decay_mult: 0.0
  1948. }
  1949. param {
  1950. lr_mult: 0.0
  1951. decay_mult: 0.0
  1952. }
  1953. param {
  1954. lr_mult: 0.0
  1955. decay_mult: 0.0
  1956. }
  1957. }
  1958. layer {
  1959. name: "sex/scale_4_2_linear"
  1960. type: "Scale"
  1961. bottom: "sex/conv_4_2_linear"
  1962. top: "sex/conv_4_2_linear"
  1963. scale_param {
  1964. bias_term: true
  1965. }
  1966. }
  1967. layer {
  1968. name: "sex/add_4_2"
  1969. type: "Eltwise"
  1970. bottom: "sex/conv_4_1_linear"
  1971. bottom: "sex/conv_4_2_linear"
  1972. top: "sex/add_4_2"
  1973. }
  1974. layer {
  1975. name: "sex/conv1_"
  1976. type: "Convolution"
  1977. bottom: "sex/add_4_2"
  1978. top: "sex/conv1_"
  1979. param {
  1980. lr_mult: 1
  1981. decay_mult: 1
  1982. }
  1983. param {
  1984. lr_mult: 2
  1985. decay_mult: 0
  1986. }
  1987. convolution_param {
  1988. num_output: 128
  1989. kernel_size: 3
  1990. stride: 1
  1991. weight_filler {
  1992. type: "xavier"
  1993. }
  1994. bias_filler {
  1995. type: "constant"
  1996. value: 0
  1997. }
  1998. }
  1999. }
  2000. layer {
  2001. name: "sex/relu1_"
  2002. type: "PReLU"
  2003. bottom: "sex/conv1_"
  2004. top: "sex/conv1_"
  2005. }
  2006. layer {
  2007. name: "sex/pool1_"
  2008. type: "Pooling"
  2009. bottom: "sex/conv1_"
  2010. top: "sex/pool1_"
  2011. pooling_param {
  2012. pool: AVE
  2013. kernel_size: 4
  2014. stride: 4
  2015. }
  2016. }
  2017. layer {
  2018. name: "sex/ip1"
  2019. type: "InnerProduct"
  2020. bottom: "sex/pool1_"
  2021. top: "sex/ip1"
  2022. param {
  2023. lr_mult: 1
  2024. }
  2025. param {
  2026. lr_mult: 2
  2027. }
  2028. inner_product_param {
  2029. num_output: 2
  2030. weight_filler {
  2031. type: "xavier"
  2032. }
  2033. bias_filler {
  2034. type: "constant"
  2035. }
  2036. }
  2037. }
  2038. layer {
  2039. name: "glass/conv_4_1_pw"
  2040. type: "Convolution"
  2041. bottom: "add_6_1"
  2042. top: "glass/conv_4_1_pw"
  2043. param {
  2044. lr_mult: 1.0
  2045. decay_mult: 1.0
  2046. }
  2047. convolution_param {
  2048. num_output: 192
  2049. bias_term: false
  2050. pad: 0
  2051. kernel_size: 1
  2052. stride: 1
  2053. weight_filler {
  2054. type: "msra"
  2055. }
  2056. bias_filler {
  2057. type: "constant"
  2058. value: 0.0
  2059. }
  2060. }
  2061. }
  2062. layer {
  2063. name: "glass/bn_4_1_pw"
  2064. type: "BatchNorm"
  2065. bottom: "glass/conv_4_1_pw"
  2066. top: "glass/conv_4_1_pw"
  2067. param {
  2068. lr_mult: 0.0
  2069. decay_mult: 0.0
  2070. }
  2071. param {
  2072. lr_mult: 0.0
  2073. decay_mult: 0.0
  2074. }
  2075. param {
  2076. lr_mult: 0.0
  2077. decay_mult: 0.0
  2078. }
  2079. }
  2080. layer {
  2081. name: "glass/scale_4_1_pw"
  2082. type: "Scale"
  2083. bottom: "glass/conv_4_1_pw"
  2084. top: "glass/conv_4_1_pw"
  2085. scale_param {
  2086. bias_term: true
  2087. }
  2088. }
  2089. layer {
  2090. name: "glass/relu_4_1_pw"
  2091. type: "PReLU"
  2092. bottom: "glass/conv_4_1_pw"
  2093. top: "glass/conv_4_1_pw"
  2094. }
  2095. layer {
  2096. name: "glass/conv_4_1_dw"
  2097. type: "ConvolutionDepthwise"
  2098. bottom: "glass/conv_4_1_pw"
  2099. top: "glass/conv_4_1_dw"
  2100. param {
  2101. lr_mult: 1.0
  2102. decay_mult: 1.0
  2103. }
  2104. convolution_param {
  2105. num_output: 192
  2106. bias_term: false
  2107. pad: 1
  2108. kernel_size: 3
  2109. stride: 2
  2110. weight_filler {
  2111. type: "msra"
  2112. }
  2113. bias_filler {
  2114. type: "constant"
  2115. value: 0.0
  2116. }
  2117. }
  2118. }
  2119. layer {
  2120. name: "glass/bn_4_1_dw"
  2121. type: "BatchNorm"
  2122. bottom: "glass/conv_4_1_dw"
  2123. top: "glass/conv_4_1_dw"
  2124. param {
  2125. lr_mult: 0.0
  2126. decay_mult: 0.0
  2127. }
  2128. param {
  2129. lr_mult: 0.0
  2130. decay_mult: 0.0
  2131. }
  2132. param {
  2133. lr_mult: 0.0
  2134. decay_mult: 0.0
  2135. }
  2136. }
  2137. layer {
  2138. name: "glass/scale_4_1_dw"
  2139. type: "Scale"
  2140. bottom: "glass/conv_4_1_dw"
  2141. top: "glass/conv_4_1_dw"
  2142. scale_param {
  2143. bias_term: true
  2144. }
  2145. }
  2146. layer {
  2147. name: "glass/relu_4_1_dw"
  2148. type: "PReLU"
  2149. bottom: "glass/conv_4_1_dw"
  2150. top: "glass/conv_4_1_dw"
  2151. }
  2152. layer {
  2153. name: "glass/conv_4_1_linear"
  2154. type: "Convolution"
  2155. bottom: "glass/conv_4_1_dw"
  2156. top: "glass/conv_4_1_linear"
  2157. param {
  2158. lr_mult: 1.0
  2159. decay_mult: 1.0
  2160. }
  2161. convolution_param {
  2162. num_output: 96
  2163. bias_term: false
  2164. pad: 0
  2165. kernel_size: 1
  2166. stride: 1
  2167. weight_filler {
  2168. type: "msra"
  2169. }
  2170. bias_filler {
  2171. type: "constant"
  2172. value: 0.0
  2173. }
  2174. }
  2175. }
  2176. layer {
  2177. name: "glass/bn_4_1_linear"
  2178. type: "BatchNorm"
  2179. bottom: "glass/conv_4_1_linear"
  2180. top: "glass/conv_4_1_linear"
  2181. param {
  2182. lr_mult: 0.0
  2183. decay_mult: 0.0
  2184. }
  2185. param {
  2186. lr_mult: 0.0
  2187. decay_mult: 0.0
  2188. }
  2189. param {
  2190. lr_mult: 0.0
  2191. decay_mult: 0.0
  2192. }
  2193. }
  2194. layer {
  2195. name: "glass/scale_4_1_linear"
  2196. type: "Scale"
  2197. bottom: "glass/conv_4_1_linear"
  2198. top: "glass/conv_4_1_linear"
  2199. scale_param {
  2200. bias_term: true
  2201. }
  2202. }
  2203. layer {
  2204. name: "glass/conv_4_2_pw"
  2205. type: "Convolution"
  2206. bottom: "glass/conv_4_1_linear"
  2207. top: "glass/conv_4_2_pw"
  2208. param {
  2209. lr_mult: 1.0
  2210. decay_mult: 1.0
  2211. }
  2212. convolution_param {
  2213. num_output: 192
  2214. bias_term: false
  2215. pad: 0
  2216. kernel_size: 1
  2217. stride: 1
  2218. weight_filler {
  2219. type: "msra"
  2220. }
  2221. bias_filler {
  2222. type: "constant"
  2223. value: 0.0
  2224. }
  2225. }
  2226. }
  2227. layer {
  2228. name: "glass/bn_4_2_pw"
  2229. type: "BatchNorm"
  2230. bottom: "glass/conv_4_2_pw"
  2231. top: "glass/conv_4_2_pw"
  2232. param {
  2233. lr_mult: 0.0
  2234. decay_mult: 0.0
  2235. }
  2236. param {
  2237. lr_mult: 0.0
  2238. decay_mult: 0.0
  2239. }
  2240. param {
  2241. lr_mult: 0.0
  2242. decay_mult: 0.0
  2243. }
  2244. }
  2245. layer {
  2246. name: "glass/scale_4_2_pw"
  2247. type: "Scale"
  2248. bottom: "glass/conv_4_2_pw"
  2249. top: "glass/conv_4_2_pw"
  2250. scale_param {
  2251. bias_term: true
  2252. }
  2253. }
  2254. layer {
  2255. name: "glass/relu_4_2_pw"
  2256. type: "PReLU"
  2257. bottom: "glass/conv_4_2_pw"
  2258. top: "glass/conv_4_2_pw"
  2259. }
  2260. layer {
  2261. name: "glass/conv_4_2_dw"
  2262. type: "ConvolutionDepthwise"
  2263. bottom: "glass/conv_4_2_pw"
  2264. top: "glass/conv_4_2_dw"
  2265. param {
  2266. lr_mult: 1.0
  2267. decay_mult: 1.0
  2268. }
  2269. convolution_param {
  2270. num_output: 192
  2271. bias_term: false
  2272. pad: 1
  2273. kernel_size: 3
  2274. stride: 1
  2275. weight_filler {
  2276. type: "msra"
  2277. }
  2278. bias_filler {
  2279. type: "constant"
  2280. value: 0.0
  2281. }
  2282. }
  2283. }
  2284. layer {
  2285. name: "glass/bn_4_2_dw"
  2286. type: "BatchNorm"
  2287. bottom: "glass/conv_4_2_dw"
  2288. top: "glass/conv_4_2_dw"
  2289. param {
  2290. lr_mult: 0.0
  2291. decay_mult: 0.0
  2292. }
  2293. param {
  2294. lr_mult: 0.0
  2295. decay_mult: 0.0
  2296. }
  2297. param {
  2298. lr_mult: 0.0
  2299. decay_mult: 0.0
  2300. }
  2301. }
  2302. layer {
  2303. name: "glass/scale_4_2_dw"
  2304. type: "Scale"
  2305. bottom: "glass/conv_4_2_dw"
  2306. top: "glass/conv_4_2_dw"
  2307. scale_param {
  2308. bias_term: true
  2309. }
  2310. }
  2311. layer {
  2312. name: "glass/relu_4_2_dw"
  2313. type: "PReLU"
  2314. bottom: "glass/conv_4_2_dw"
  2315. top: "glass/conv_4_2_dw"
  2316. }
  2317. layer {
  2318. name: "glass/conv_4_2_linear"
  2319. type: "Convolution"
  2320. bottom: "glass/conv_4_2_dw"
  2321. top: "glass/conv_4_2_linear"
  2322. param {
  2323. lr_mult: 1.0
  2324. decay_mult: 1.0
  2325. }
  2326. convolution_param {
  2327. num_output: 96
  2328. bias_term: false
  2329. pad: 0
  2330. kernel_size: 1
  2331. stride: 1
  2332. weight_filler {
  2333. type: "msra"
  2334. }
  2335. bias_filler {
  2336. type: "constant"
  2337. value: 0.0
  2338. }
  2339. }
  2340. }
  2341. layer {
  2342. name: "glass/bn_4_2_linear"
  2343. type: "BatchNorm"
  2344. bottom: "glass/conv_4_2_linear"
  2345. top: "glass/conv_4_2_linear"
  2346. param {
  2347. lr_mult: 0.0
  2348. decay_mult: 0.0
  2349. }
  2350. param {
  2351. lr_mult: 0.0
  2352. decay_mult: 0.0
  2353. }
  2354. param {
  2355. lr_mult: 0.0
  2356. decay_mult: 0.0
  2357. }
  2358. }
  2359. layer {
  2360. name: "glass/scale_4_2_linear"
  2361. type: "Scale"
  2362. bottom: "glass/conv_4_2_linear"
  2363. top: "glass/conv_4_2_linear"
  2364. scale_param {
  2365. bias_term: true
  2366. }
  2367. }
  2368. layer {
  2369. name: "glass/add_4_2"
  2370. type: "Eltwise"
  2371. bottom: "glass/conv_4_1_linear"
  2372. bottom: "glass/conv_4_2_linear"
  2373. top: "glass/add_4_2"
  2374. }
  2375. layer {
  2376. name: "glass/conv1_"
  2377. type: "Convolution"
  2378. bottom: "glass/add_4_2"
  2379. top: "glass/conv1_"
  2380. param {
  2381. lr_mult: 1
  2382. decay_mult: 1
  2383. }
  2384. param {
  2385. lr_mult: 2
  2386. decay_mult: 0
  2387. }
  2388. convolution_param {
  2389. num_output: 128
  2390. kernel_size: 3
  2391. stride: 1
  2392. weight_filler {
  2393. type: "xavier"
  2394. }
  2395. bias_filler {
  2396. type: "constant"
  2397. value: 0
  2398. }
  2399. }
  2400. }
  2401. layer {
  2402. name: "glass/relu1_"
  2403. type: "PReLU"
  2404. bottom: "glass/conv1_"
  2405. top: "glass/conv1_"
  2406. }
  2407. layer {
  2408. name: "glass/pool1_"
  2409. type: "Pooling"
  2410. bottom: "glass/conv1_"
  2411. top: "glass/pool1_"
  2412. pooling_param {
  2413. pool: AVE
  2414. kernel_size: 4
  2415. stride: 4
  2416. }
  2417. }
  2418. layer {
  2419. name: "glass/ip1"
  2420. type: "InnerProduct"
  2421. bottom: "glass/pool1_"
  2422. top: "glass/ip1"
  2423. param {
  2424. lr_mult: 1
  2425. }
  2426. param {
  2427. lr_mult: 2
  2428. }
  2429. inner_product_param {
  2430. num_output: 3
  2431. weight_filler {
  2432. type: "xavier"
  2433. }
  2434. bias_filler {
  2435. type: "constant"
  2436. }
  2437. }
  2438. }
  2439. layer {
  2440. name: "race/conv_4_1_pw"
  2441. type: "Convolution"
  2442. bottom: "add_6_1"
  2443. top: "race/conv_4_1_pw"
  2444. param {
  2445. lr_mult: 1.0
  2446. decay_mult: 1.0
  2447. }
  2448. convolution_param {
  2449. num_output: 192
  2450. bias_term: false
  2451. pad: 0
  2452. kernel_size: 1
  2453. stride: 1
  2454. weight_filler {
  2455. type: "msra"
  2456. }
  2457. bias_filler {
  2458. type: "constant"
  2459. value: 0.0
  2460. }
  2461. }
  2462. }
  2463. layer {
  2464. name: "race/bn_4_1_pw"
  2465. type: "BatchNorm"
  2466. bottom: "race/conv_4_1_pw"
  2467. top: "race/conv_4_1_pw"
  2468. param {
  2469. lr_mult: 0.0
  2470. decay_mult: 0.0
  2471. }
  2472. param {
  2473. lr_mult: 0.0
  2474. decay_mult: 0.0
  2475. }
  2476. param {
  2477. lr_mult: 0.0
  2478. decay_mult: 0.0
  2479. }
  2480. }
  2481. layer {
  2482. name: "race/scale_4_1_pw"
  2483. type: "Scale"
  2484. bottom: "race/conv_4_1_pw"
  2485. top: "race/conv_4_1_pw"
  2486. scale_param {
  2487. bias_term: true
  2488. }
  2489. }
  2490. layer {
  2491. name: "race/relu_4_1_pw"
  2492. type: "PReLU"
  2493. bottom: "race/conv_4_1_pw"
  2494. top: "race/conv_4_1_pw"
  2495. }
  2496. layer {
  2497. name: "race/conv_4_1_dw"
  2498. type: "ConvolutionDepthwise"
  2499. bottom: "race/conv_4_1_pw"
  2500. top: "race/conv_4_1_dw"
  2501. param {
  2502. lr_mult: 1.0
  2503. decay_mult: 1.0
  2504. }
  2505. convolution_param {
  2506. num_output: 192
  2507. bias_term: false
  2508. pad: 1
  2509. kernel_size: 3
  2510. stride: 2
  2511. weight_filler {
  2512. type: "msra"
  2513. }
  2514. bias_filler {
  2515. type: "constant"
  2516. value: 0.0
  2517. }
  2518. }
  2519. }
  2520. layer {
  2521. name: "race/bn_4_1_dw"
  2522. type: "BatchNorm"
  2523. bottom: "race/conv_4_1_dw"
  2524. top: "race/conv_4_1_dw"
  2525. param {
  2526. lr_mult: 0.0
  2527. decay_mult: 0.0
  2528. }
  2529. param {
  2530. lr_mult: 0.0
  2531. decay_mult: 0.0
  2532. }
  2533. param {
  2534. lr_mult: 0.0
  2535. decay_mult: 0.0
  2536. }
  2537. }
  2538. layer {
  2539. name: "race/scale_4_1_dw"
  2540. type: "Scale"
  2541. bottom: "race/conv_4_1_dw"
  2542. top: "race/conv_4_1_dw"
  2543. scale_param {
  2544. bias_term: true
  2545. }
  2546. }
  2547. layer {
  2548. name: "race/relu_4_1_dw"
  2549. type: "PReLU"
  2550. bottom: "race/conv_4_1_dw"
  2551. top: "race/conv_4_1_dw"
  2552. }
  2553. layer {
  2554. name: "race/conv_4_1_linear"
  2555. type: "Convolution"
  2556. bottom: "race/conv_4_1_dw"
  2557. top: "race/conv_4_1_linear"
  2558. param {
  2559. lr_mult: 1.0
  2560. decay_mult: 1.0
  2561. }
  2562. convolution_param {
  2563. num_output: 96
  2564. bias_term: false
  2565. pad: 0
  2566. kernel_size: 1
  2567. stride: 1
  2568. weight_filler {
  2569. type: "msra"
  2570. }
  2571. bias_filler {
  2572. type: "constant"
  2573. value: 0.0
  2574. }
  2575. }
  2576. }
  2577. layer {
  2578. name: "race/bn_4_1_linear"
  2579. type: "BatchNorm"
  2580. bottom: "race/conv_4_1_linear"
  2581. top: "race/conv_4_1_linear"
  2582. param {
  2583. lr_mult: 0.0
  2584. decay_mult: 0.0
  2585. }
  2586. param {
  2587. lr_mult: 0.0
  2588. decay_mult: 0.0
  2589. }
  2590. param {
  2591. lr_mult: 0.0
  2592. decay_mult: 0.0
  2593. }
  2594. }
  2595. layer {
  2596. name: "race/scale_4_1_linear"
  2597. type: "Scale"
  2598. bottom: "race/conv_4_1_linear"
  2599. top: "race/conv_4_1_linear"
  2600. scale_param {
  2601. bias_term: true
  2602. }
  2603. }
  2604. layer {
  2605. name: "race/conv_4_2_pw"
  2606. type: "Convolution"
  2607. bottom: "race/conv_4_1_linear"
  2608. top: "race/conv_4_2_pw"
  2609. param {
  2610. lr_mult: 1.0
  2611. decay_mult: 1.0
  2612. }
  2613. convolution_param {
  2614. num_output: 192
  2615. bias_term: false
  2616. pad: 0
  2617. kernel_size: 1
  2618. stride: 1
  2619. weight_filler {
  2620. type: "msra"
  2621. }
  2622. bias_filler {
  2623. type: "constant"
  2624. value: 0.0
  2625. }
  2626. }
  2627. }
  2628. layer {
  2629. name: "race/bn_4_2_pw"
  2630. type: "BatchNorm"
  2631. bottom: "race/conv_4_2_pw"
  2632. top: "race/conv_4_2_pw"
  2633. param {
  2634. lr_mult: 0.0
  2635. decay_mult: 0.0
  2636. }
  2637. param {
  2638. lr_mult: 0.0
  2639. decay_mult: 0.0
  2640. }
  2641. param {
  2642. lr_mult: 0.0
  2643. decay_mult: 0.0
  2644. }
  2645. }
  2646. layer {
  2647. name: "race/scale_4_2_pw"
  2648. type: "Scale"
  2649. bottom: "race/conv_4_2_pw"
  2650. top: "race/conv_4_2_pw"
  2651. scale_param {
  2652. bias_term: true
  2653. }
  2654. }
  2655. layer {
  2656. name: "race/relu_4_2_pw"
  2657. type: "PReLU"
  2658. bottom: "race/conv_4_2_pw"
  2659. top: "race/conv_4_2_pw"
  2660. }
  2661. layer {
  2662. name: "race/conv_4_2_dw"
  2663. type: "ConvolutionDepthwise"
  2664. bottom: "race/conv_4_2_pw"
  2665. top: "race/conv_4_2_dw"
  2666. param {
  2667. lr_mult: 1.0
  2668. decay_mult: 1.0
  2669. }
  2670. convolution_param {
  2671. num_output: 192
  2672. bias_term: false
  2673. pad: 1
  2674. kernel_size: 3
  2675. stride: 1
  2676. weight_filler {
  2677. type: "msra"
  2678. }
  2679. bias_filler {
  2680. type: "constant"
  2681. value: 0.0
  2682. }
  2683. }
  2684. }
  2685. layer {
  2686. name: "race/bn_4_2_dw"
  2687. type: "BatchNorm"
  2688. bottom: "race/conv_4_2_dw"
  2689. top: "race/conv_4_2_dw"
  2690. param {
  2691. lr_mult: 0.0
  2692. decay_mult: 0.0
  2693. }
  2694. param {
  2695. lr_mult: 0.0
  2696. decay_mult: 0.0
  2697. }
  2698. param {
  2699. lr_mult: 0.0
  2700. decay_mult: 0.0
  2701. }
  2702. }
  2703. layer {
  2704. name: "race/scale_4_2_dw"
  2705. type: "Scale"
  2706. bottom: "race/conv_4_2_dw"
  2707. top: "race/conv_4_2_dw"
  2708. scale_param {
  2709. bias_term: true
  2710. }
  2711. }
  2712. layer {
  2713. name: "race/relu_4_2_dw"
  2714. type: "PReLU"
  2715. bottom: "race/conv_4_2_dw"
  2716. top: "race/conv_4_2_dw"
  2717. }
  2718. layer {
  2719. name: "race/conv_4_2_linear"
  2720. type: "Convolution"
  2721. bottom: "race/conv_4_2_dw"
  2722. top: "race/conv_4_2_linear"
  2723. param {
  2724. lr_mult: 1.0
  2725. decay_mult: 1.0
  2726. }
  2727. convolution_param {
  2728. num_output: 96
  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: "race/bn_4_2_linear"
  2744. type: "BatchNorm"
  2745. bottom: "race/conv_4_2_linear"
  2746. top: "race/conv_4_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. }
  2760. layer {
  2761. name: "race/scale_4_2_linear"
  2762. type: "Scale"
  2763. bottom: "race/conv_4_2_linear"
  2764. top: "race/conv_4_2_linear"
  2765. scale_param {
  2766. bias_term: true
  2767. }
  2768. }
  2769. layer {
  2770. name: "race/add_4_2"
  2771. type: "Eltwise"
  2772. bottom: "race/conv_4_1_linear"
  2773. bottom: "race/conv_4_2_linear"
  2774. top: "race/add_4_2"
  2775. }
  2776. layer {
  2777. name: "race/conv1_"
  2778. type: "Convolution"
  2779. bottom: "race/add_4_2"
  2780. top: "race/conv1_"
  2781. param {
  2782. lr_mult: 1
  2783. decay_mult: 1
  2784. }
  2785. param {
  2786. lr_mult: 2
  2787. decay_mult: 0
  2788. }
  2789. convolution_param {
  2790. num_output: 128
  2791. kernel_size: 3
  2792. stride: 1
  2793. weight_filler {
  2794. type: "xavier"
  2795. }
  2796. bias_filler {
  2797. type: "constant"
  2798. value: 0
  2799. }
  2800. }
  2801. }
  2802. layer {
  2803. name: "race/relu1_"
  2804. type: "PReLU"
  2805. bottom: "race/conv1_"
  2806. top: "race/conv1_"
  2807. }
  2808. layer {
  2809. name: "race/pool1_"
  2810. type: "Pooling"
  2811. bottom: "race/conv1_"
  2812. top: "race/pool1_"
  2813. pooling_param {
  2814. pool: AVE
  2815. kernel_size: 4
  2816. stride: 4
  2817. }
  2818. }
  2819. layer {
  2820. name: "race/ip1"
  2821. type: "InnerProduct"
  2822. bottom: "race/pool1_"
  2823. top: "race/ip1"
  2824. param {
  2825. lr_mult: 1
  2826. }
  2827. param {
  2828. lr_mult: 2
  2829. }
  2830. inner_product_param {
  2831. num_output: 4
  2832. weight_filler {
  2833. type: "xavier"
  2834. }
  2835. bias_filler {
  2836. type: "constant"
  2837. }
  2838. }
  2839. }
  2840. layer {
  2841. name: "slice"
  2842. type: "Slice"
  2843. bottom: "label"
  2844. top: "label_age"
  2845. top: "label_emotion"
  2846. top: "label_sex"
  2847. top: "label_glass"
  2848. top: "label_race"
  2849. slice_param {
  2850. axis: 1
  2851. }
  2852. }
  2853. layer {
  2854. name: "loss_age"
  2855. type: "AbsoluteLoss"
  2856. bottom: "age/ip2"
  2857. bottom: "label_age"
  2858. top: "loss_age"
  2859. loss_weight: 0.1
  2860. }
  2861. #layer {
  2862. # name: "loss_age"
  2863. # type: "EuclideanLoss"
  2864. # bottom: "age/ip2"
  2865. # bottom: "label_age"
  2866. # top: "loss_age"
  2867. #}
  2868. layer {
  2869. name: "accuracy_age_abs"
  2870. type: "AbsoluteLoss"
  2871. bottom: "age/ip2"
  2872. bottom: "label_age"
  2873. top: "accuracy_age"
  2874. include {
  2875. phase: TEST
  2876. }
  2877. }
  2878. #layer {
  2879. # name: "accuracy_age_euc"
  2880. # type: "EuclideanLoss"
  2881. # bottom: "age/ip2"
  2882. # bottom: "label_age"
  2883. # top: "accuracy_age2"
  2884. # include {
  2885. # phase: TEST
  2886. # }
  2887. #}
  2888. layer {
  2889. name: "loss_emotion"
  2890. type: "FocalLoss"
  2891. bottom: "emotion/ip1"
  2892. bottom: "label_emotion"
  2893. top: "loss_emotion"
  2894. }
  2895. layer {
  2896. name: "accuracy_emotion"
  2897. type: "Accuracy"
  2898. bottom: "emotion/ip1"
  2899. bottom: "label_emotion"
  2900. top: "accuracy_emotion"
  2901. include {
  2902. phase: TEST
  2903. }
  2904. }
  2905. layer {
  2906. name: "loss_sex"
  2907. type: "FocalLoss"
  2908. bottom: "sex/ip1"
  2909. bottom: "label_sex"
  2910. top: "loss_sex"
  2911. }
  2912. layer {
  2913. name: "accuracy_sex"
  2914. type: "Accuracy"
  2915. bottom: "sex/ip1"
  2916. bottom: "label_sex"
  2917. top: "accuracy_sex"
  2918. include {
  2919. phase: TEST
  2920. }
  2921. }
  2922. layer {
  2923. name: "loss_glass"
  2924. type: "FocalLoss"
  2925. bottom: "glass/ip1"
  2926. bottom: "label_glass"
  2927. top: "loss_glass"
  2928. }
  2929. layer {
  2930. name: "accuracy_glass"
  2931. type: "Accuracy"
  2932. bottom: "glass/ip1"
  2933. bottom: "label_glass"
  2934. top: "accuracy_glass"
  2935. include {
  2936. phase: TEST
  2937. }
  2938. }
  2939. layer {
  2940. name: "loss_race"
  2941. type: "FocalLoss"
  2942. bottom: "race/ip1"
  2943. bottom: "label_race"
  2944. top: "loss_race"
  2945. }
  2946. layer {
  2947. name: "accuracy_race"
  2948. type: "Accuracy"
  2949. bottom: "race/ip1"
  2950. bottom: "label_race"
  2951. top: "accuracy_race"
  2952. include {
  2953. phase: TEST
  2954. }
  2955. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/655841
推荐阅读
相关标签
  

闽ICP备14008679号