SqueezeDet_train_test.prototxt 20 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187
  1. # SqueezeDet architecture for object detection on PASCAL VOC dataset
  2. name: "SqueezeDet"
  3. layer {
  4. name: "data"
  5. type: "BboxData"
  6. top: "data"
  7. top: "bbox"
  8. bbox_data_param {
  9. source: "source.txt"
  10. batch_size: 2
  11. is_color: true
  12. shuffle: true
  13. root_folder: "VOC2012_Resize"
  14. }
  15. transform_param {
  16. mean_value: 104
  17. mean_value: 117
  18. mean_value: 123
  19. }
  20. include {
  21. phase: TRAIN
  22. }
  23. }
  24. layer {
  25. name: "data"
  26. type: "BboxData"
  27. top: "data"
  28. top: "bbox"
  29. bbox_data_param {
  30. source: "source.txt"
  31. batch_size: 2
  32. is_color: true
  33. shuffle: true
  34. root_folder: "VOC2012_Resize"
  35. }
  36. transform_param {
  37. mean_value: 104
  38. mean_value: 117
  39. mean_value: 123
  40. }
  41. include {
  42. phase: TEST
  43. }
  44. }
  45. layer {
  46. name: "conv1"
  47. type: "Convolution"
  48. bottom: "data"
  49. top: "conv1"
  50. convolution_param {
  51. num_output: 96
  52. kernel_size: 7
  53. stride: 2
  54. weight_filler {
  55. type: "xavier"
  56. }
  57. bias_filler {
  58. type: "constant"
  59. value: 0.01
  60. }
  61. }
  62. }
  63. layer {
  64. name: "rect_conv1"
  65. type: "ReLU"
  66. bottom: "conv1"
  67. top: "conv1"
  68. relu_param {
  69. negative_slope: 0.01
  70. }
  71. }
  72. layer {
  73. name: "pool1"
  74. type: "Pooling"
  75. bottom: "conv1"
  76. top: "pool1"
  77. pooling_param {
  78. pool: MAX
  79. kernel_size: 3
  80. stride: 2
  81. }
  82. }
  83. layer {
  84. name: "fire2_squeeze"
  85. type: "Convolution"
  86. bottom: "pool1"
  87. top: "fire2_squeeze"
  88. convolution_param {
  89. num_output: 16
  90. kernel_size: 1
  91. stride: 1
  92. pad: 0
  93. weight_filler {
  94. type: "xavier"
  95. }
  96. bias_filler {
  97. type: "constant"
  98. value: 0.01
  99. }
  100. }
  101. }
  102. layer {
  103. name: "rect_fire2_squeeze"
  104. type: "ReLU"
  105. bottom: "fire2_squeeze"
  106. top: "fire2_squeeze"
  107. relu_param {
  108. negative_slope: 0.01
  109. }
  110. }
  111. layer {
  112. name: "fire2_expand_1x1"
  113. type: "Convolution"
  114. bottom: "fire2_squeeze"
  115. top: "fire2_expand_1x1"
  116. convolution_param {
  117. num_output: 64
  118. kernel_size: 1
  119. stride: 1
  120. pad: 0
  121. weight_filler {
  122. type: "xavier"
  123. }
  124. bias_filler {
  125. type: "constant"
  126. value: 0.01
  127. }
  128. }
  129. }
  130. layer {
  131. name: "rect_fire2_expand_1x1"
  132. type: "ReLU"
  133. bottom: "fire2_expand_1x1"
  134. top: "fire2_expand_1x1"
  135. relu_param {
  136. negative_slope: 0.01
  137. }
  138. }
  139. layer {
  140. name: "fire2_expand_3x3"
  141. type: "Convolution"
  142. bottom: "fire2_squeeze"
  143. top: "fire2_expand_3x3"
  144. convolution_param {
  145. num_output: 64
  146. kernel_size: 3
  147. stride: 1
  148. pad: 1
  149. weight_filler {
  150. type: "xavier"
  151. }
  152. bias_filler {
  153. type: "constant"
  154. value: 0.01
  155. }
  156. }
  157. }
  158. layer {
  159. name: "rect_fire2_expand_3x3"
  160. type: "ReLU"
  161. bottom: "fire2_expand_3x3"
  162. top: "fire2_expand_3x3"
  163. relu_param {
  164. negative_slope: 0.01
  165. }
  166. }
  167. layer {
  168. name: "fire2"
  169. type: "Concat"
  170. bottom: "fire2_expand_1x1"
  171. bottom: "fire2_expand_3x3"
  172. top: "fire2"
  173. concat_param {
  174. axis: 1
  175. }
  176. }
  177. layer {
  178. name: "fire3_squeeze"
  179. type: "Convolution"
  180. bottom: "fire2"
  181. top: "fire3_squeeze"
  182. convolution_param {
  183. num_output: 16
  184. kernel_size: 1
  185. stride: 1
  186. pad: 0
  187. weight_filler {
  188. type: "xavier"
  189. }
  190. bias_filler {
  191. type: "constant"
  192. value: 0.01
  193. }
  194. }
  195. }
  196. layer {
  197. name: "rect_fire3_squeeze"
  198. type: "ReLU"
  199. bottom: "fire3_squeeze"
  200. top: "fire3_squeeze"
  201. relu_param {
  202. negative_slope: 0.01
  203. }
  204. }
  205. layer {
  206. name: "fire3_expand_1x1"
  207. type: "Convolution"
  208. bottom: "fire3_squeeze"
  209. top: "fire3_expand_1x1"
  210. convolution_param {
  211. num_output: 64
  212. kernel_size: 1
  213. stride: 1
  214. pad: 0
  215. weight_filler {
  216. type: "xavier"
  217. }
  218. bias_filler {
  219. type: "constant"
  220. value: 0.01
  221. }
  222. }
  223. }
  224. layer {
  225. name: "rect_fire3_expand_1x1"
  226. type: "ReLU"
  227. bottom: "fire3_expand_1x1"
  228. top: "fire3_expand_1x1"
  229. relu_param {
  230. negative_slope: 0.01
  231. }
  232. }
  233. layer {
  234. name: "fire3_expand_3x3"
  235. type: "Convolution"
  236. bottom: "fire3_squeeze"
  237. top: "fire3_expand_3x3"
  238. convolution_param {
  239. num_output: 64
  240. kernel_size: 3
  241. stride: 1
  242. pad: 1
  243. weight_filler {
  244. type: "xavier"
  245. }
  246. bias_filler {
  247. type: "constant"
  248. value: 0.01
  249. }
  250. }
  251. }
  252. layer {
  253. name: "rect_fire3_expand_3x3"
  254. type: "ReLU"
  255. bottom: "fire3_expand_3x3"
  256. top: "fire3_expand_3x3"
  257. relu_param {
  258. negative_slope: 0.01
  259. }
  260. }
  261. layer {
  262. name: "fire3"
  263. type: "Concat"
  264. bottom: "fire3_expand_1x1"
  265. bottom: "fire3_expand_3x3"
  266. top: "fire3"
  267. concat_param {
  268. axis: 1
  269. }
  270. }
  271. layer {
  272. name: "fire4_squeeze"
  273. type: "Convolution"
  274. bottom: "fire3"
  275. top: "fire4_squeeze"
  276. convolution_param {
  277. num_output: 32
  278. kernel_size: 1
  279. stride: 1
  280. pad: 0
  281. weight_filler {
  282. type: "xavier"
  283. }
  284. bias_filler {
  285. type: "constant"
  286. value: 0.01
  287. }
  288. }
  289. }
  290. layer {
  291. name: "rect_fire4_squeeze"
  292. type: "ReLU"
  293. bottom: "fire4_squeeze"
  294. top: "fire4_squeeze"
  295. relu_param {
  296. negative_slope: 0.01
  297. }
  298. }
  299. layer {
  300. name: "fire4_expand_1x1"
  301. type: "Convolution"
  302. bottom: "fire4_squeeze"
  303. top: "fire4_expand_1x1"
  304. convolution_param {
  305. num_output: 128
  306. kernel_size: 1
  307. stride: 1
  308. pad: 0
  309. weight_filler {
  310. type: "xavier"
  311. }
  312. bias_filler {
  313. type: "constant"
  314. value: 0.01
  315. }
  316. }
  317. }
  318. layer {
  319. name: "rect_fire4_expand_1x1"
  320. type: "ReLU"
  321. bottom: "fire4_expand_1x1"
  322. top: "fire4_expand_1x1"
  323. relu_param {
  324. negative_slope: 0.01
  325. }
  326. }
  327. layer {
  328. name: "fire4_expand_3x3"
  329. type: "Convolution"
  330. bottom: "fire4_squeeze"
  331. top: "fire4_expand_3x3"
  332. convolution_param {
  333. num_output: 128
  334. kernel_size: 3
  335. stride: 1
  336. pad: 1
  337. weight_filler {
  338. type: "xavier"
  339. }
  340. bias_filler {
  341. type: "constant"
  342. value: 0.01
  343. }
  344. }
  345. }
  346. layer {
  347. name: "rect_fire4_expand_3x3"
  348. type: "ReLU"
  349. bottom: "fire4_expand_3x3"
  350. top: "fire4_expand_3x3"
  351. relu_param {
  352. negative_slope: 0.01
  353. }
  354. }
  355. layer {
  356. name: "fire4"
  357. type: "Concat"
  358. bottom: "fire4_expand_1x1"
  359. bottom: "fire4_expand_3x3"
  360. top: "fire4"
  361. concat_param {
  362. axis: 1
  363. }
  364. }
  365. layer {
  366. name: "pool4"
  367. type: "Pooling"
  368. bottom: "fire4"
  369. top: "pool4"
  370. pooling_param {
  371. pool: MAX
  372. kernel_size: 3
  373. stride: 2
  374. }
  375. }
  376. layer {
  377. name: "fire5_squeeze"
  378. type: "Convolution"
  379. bottom: "pool4"
  380. top: "fire5_squeeze"
  381. convolution_param {
  382. num_output: 32
  383. kernel_size: 1
  384. stride: 1
  385. pad: 0
  386. weight_filler {
  387. type: "xavier"
  388. }
  389. bias_filler {
  390. type: "constant"
  391. value: 0.01
  392. }
  393. }
  394. }
  395. layer {
  396. name: "rect_fire5_squeeze"
  397. type: "ReLU"
  398. bottom: "fire5_squeeze"
  399. top: "fire5_squeeze"
  400. relu_param {
  401. negative_slope: 0.01
  402. }
  403. }
  404. layer {
  405. name: "fire5_expand_1x1"
  406. type: "Convolution"
  407. bottom: "fire5_squeeze"
  408. top: "fire5_expand_1x1"
  409. convolution_param {
  410. num_output: 128
  411. kernel_size: 1
  412. stride: 1
  413. pad: 0
  414. weight_filler {
  415. type: "xavier"
  416. }
  417. bias_filler {
  418. type: "constant"
  419. value: 0.01
  420. }
  421. }
  422. }
  423. layer {
  424. name: "rect_fire5_expand_1x1"
  425. type: "ReLU"
  426. bottom: "fire5_expand_1x1"
  427. top: "fire5_expand_1x1"
  428. relu_param {
  429. negative_slope: 0.01
  430. }
  431. }
  432. layer {
  433. name: "fire5_expand_3x3"
  434. type: "Convolution"
  435. bottom: "fire5_squeeze"
  436. top: "fire5_expand_3x3"
  437. convolution_param {
  438. num_output: 128
  439. kernel_size: 3
  440. stride: 1
  441. pad: 1
  442. weight_filler {
  443. type: "xavier"
  444. }
  445. bias_filler {
  446. type: "constant"
  447. value: 0.01
  448. }
  449. }
  450. }
  451. layer {
  452. name: "rect_fire5_expand_3x3"
  453. type: "ReLU"
  454. bottom: "fire5_expand_3x3"
  455. top: "fire5_expand_3x3"
  456. relu_param {
  457. negative_slope: 0.01
  458. }
  459. }
  460. layer {
  461. name: "fire5"
  462. type: "Concat"
  463. bottom: "fire5_expand_1x1"
  464. bottom: "fire5_expand_3x3"
  465. top: "fire5"
  466. concat_param {
  467. axis: 1
  468. }
  469. }
  470. layer {
  471. name: "fire6_squeeze"
  472. type: "Convolution"
  473. bottom: "fire5"
  474. top: "fire6_squeeze"
  475. convolution_param {
  476. num_output: 48
  477. kernel_size: 1
  478. stride: 1
  479. pad: 0
  480. weight_filler {
  481. type: "xavier"
  482. }
  483. bias_filler {
  484. type: "constant"
  485. value: 0.01
  486. }
  487. }
  488. }
  489. layer {
  490. name: "rect_fire6_squeeze"
  491. type: "ReLU"
  492. bottom: "fire6_squeeze"
  493. top: "fire6_squeeze"
  494. relu_param {
  495. negative_slope: 0.01
  496. }
  497. }
  498. layer {
  499. name: "fire6_expand_1x1"
  500. type: "Convolution"
  501. bottom: "fire6_squeeze"
  502. top: "fire6_expand_1x1"
  503. convolution_param {
  504. num_output: 192
  505. kernel_size: 1
  506. stride: 1
  507. pad: 0
  508. weight_filler {
  509. type: "xavier"
  510. }
  511. bias_filler {
  512. type: "constant"
  513. value: 0.01
  514. }
  515. }
  516. }
  517. layer {
  518. name: "rect_fire6_expand_1x1"
  519. type: "ReLU"
  520. bottom: "fire6_expand_1x1"
  521. top: "fire6_expand_1x1"
  522. relu_param {
  523. negative_slope: 0.01
  524. }
  525. }
  526. layer {
  527. name: "fire6_expand_3x3"
  528. type: "Convolution"
  529. bottom: "fire6_squeeze"
  530. top: "fire6_expand_3x3"
  531. convolution_param {
  532. num_output: 192
  533. kernel_size: 3
  534. stride: 1
  535. pad: 1
  536. weight_filler {
  537. type: "xavier"
  538. }
  539. bias_filler {
  540. type: "constant"
  541. value: 0.01
  542. }
  543. }
  544. }
  545. layer {
  546. name: "rect_fire6_expand_3x3"
  547. type: "ReLU"
  548. bottom: "fire6_expand_3x3"
  549. top: "fire6_expand_3x3"
  550. relu_param {
  551. negative_slope: 0.01
  552. }
  553. }
  554. layer {
  555. name: "fire6"
  556. type: "Concat"
  557. bottom: "fire6_expand_1x1"
  558. bottom: "fire6_expand_3x3"
  559. top: "fire6"
  560. concat_param {
  561. axis: 1
  562. }
  563. }
  564. layer {
  565. name: "fire7_squeeze"
  566. type: "Convolution"
  567. bottom: "fire6"
  568. top: "fire7_squeeze"
  569. convolution_param {
  570. num_output: 48
  571. kernel_size: 1
  572. stride: 1
  573. pad: 0
  574. weight_filler {
  575. type: "xavier"
  576. }
  577. bias_filler {
  578. type: "constant"
  579. value: 0.01
  580. }
  581. }
  582. }
  583. layer {
  584. name: "rect_fire7_squeeze"
  585. type: "ReLU"
  586. bottom: "fire7_squeeze"
  587. top: "fire7_squeeze"
  588. relu_param {
  589. negative_slope: 0.01
  590. }
  591. }
  592. layer {
  593. name: "fire7_expand_1x1"
  594. type: "Convolution"
  595. bottom: "fire7_squeeze"
  596. top: "fire7_expand_1x1"
  597. convolution_param {
  598. num_output: 192
  599. kernel_size: 1
  600. stride: 1
  601. pad: 0
  602. weight_filler {
  603. type: "xavier"
  604. }
  605. bias_filler {
  606. type: "constant"
  607. value: 0.01
  608. }
  609. }
  610. }
  611. layer {
  612. name: "rect_fire7_expand_1x1"
  613. type: "ReLU"
  614. bottom: "fire7_expand_1x1"
  615. top: "fire7_expand_1x1"
  616. relu_param {
  617. negative_slope: 0.01
  618. }
  619. }
  620. layer {
  621. name: "fire7_expand_3x3"
  622. type: "Convolution"
  623. bottom: "fire7_squeeze"
  624. top: "fire7_expand_3x3"
  625. convolution_param {
  626. num_output: 192
  627. kernel_size: 3
  628. stride: 1
  629. pad: 1
  630. weight_filler {
  631. type: "xavier"
  632. }
  633. bias_filler {
  634. type: "constant"
  635. value: 0.01
  636. }
  637. }
  638. }
  639. layer {
  640. name: "rect_fire7_expand_3x3"
  641. type: "ReLU"
  642. bottom: "fire7_expand_3x3"
  643. top: "fire7_expand_3x3"
  644. relu_param {
  645. negative_slope: 0.01
  646. }
  647. }
  648. layer {
  649. name: "fire7"
  650. type: "Concat"
  651. bottom: "fire7_expand_1x1"
  652. bottom: "fire7_expand_3x3"
  653. top: "fire7"
  654. concat_param {
  655. axis: 1
  656. }
  657. }
  658. layer {
  659. name: "fire8_squeeze"
  660. type: "Convolution"
  661. bottom: "fire7"
  662. top: "fire8_squeeze"
  663. convolution_param {
  664. num_output: 64
  665. kernel_size: 1
  666. stride: 1
  667. pad: 0
  668. weight_filler {
  669. type: "xavier"
  670. }
  671. bias_filler {
  672. type: "constant"
  673. value: 0.01
  674. }
  675. }
  676. }
  677. layer {
  678. name: "rect_fire8_squeeze"
  679. type: "ReLU"
  680. bottom: "fire8_squeeze"
  681. top: "fire8_squeeze"
  682. relu_param {
  683. negative_slope: 0.01
  684. }
  685. }
  686. layer {
  687. name: "fire8_expand_1x1"
  688. type: "Convolution"
  689. bottom: "fire8_squeeze"
  690. top: "fire8_expand_1x1"
  691. convolution_param {
  692. num_output: 256
  693. kernel_size: 1
  694. stride: 1
  695. pad: 0
  696. weight_filler {
  697. type: "xavier"
  698. }
  699. bias_filler {
  700. type: "constant"
  701. value: 0.01
  702. }
  703. }
  704. }
  705. layer {
  706. name: "rect_fire8_expand_1x1"
  707. type: "ReLU"
  708. bottom: "fire8_expand_1x1"
  709. top: "fire8_expand_1x1"
  710. relu_param {
  711. negative_slope: 0.01
  712. }
  713. }
  714. layer {
  715. name: "fire8_expand_3x3"
  716. type: "Convolution"
  717. bottom: "fire8_squeeze"
  718. top: "fire8_expand_3x3"
  719. convolution_param {
  720. num_output: 256
  721. kernel_size: 3
  722. stride: 1
  723. pad: 1
  724. weight_filler {
  725. type: "xavier"
  726. }
  727. bias_filler {
  728. type: "constant"
  729. value: 0.01
  730. }
  731. }
  732. }
  733. layer {
  734. name: "rect_fire8_expand_3x3"
  735. type: "ReLU"
  736. bottom: "fire8_expand_3x3"
  737. top: "fire8_expand_3x3"
  738. relu_param {
  739. negative_slope: 0.01
  740. }
  741. }
  742. layer {
  743. name: "fire8"
  744. type: "Concat"
  745. bottom: "fire8_expand_1x1"
  746. bottom: "fire8_expand_3x3"
  747. top: "fire8"
  748. concat_param {
  749. axis: 1
  750. }
  751. }
  752. layer {
  753. name: "pool8"
  754. type: "Pooling"
  755. bottom: "fire8"
  756. top: "pool8"
  757. pooling_param {
  758. pool: MAX
  759. kernel_size: 3
  760. stride: 2
  761. }
  762. }
  763. layer {
  764. name: "fire9_squeeze"
  765. type: "Convolution"
  766. bottom: "pool8"
  767. top: "fire9_squeeze"
  768. convolution_param {
  769. num_output: 64
  770. kernel_size: 1
  771. stride: 1
  772. pad: 0
  773. weight_filler {
  774. type: "xavier"
  775. }
  776. bias_filler {
  777. type: "constant"
  778. value: 0.01
  779. }
  780. }
  781. }
  782. layer {
  783. name: "rect_fire9_squeeze"
  784. type: "ReLU"
  785. bottom: "fire9_squeeze"
  786. top: "fire9_squeeze"
  787. relu_param {
  788. negative_slope: 0.01
  789. }
  790. }
  791. layer {
  792. name: "fire9_expand_1x1"
  793. type: "Convolution"
  794. bottom: "fire9_squeeze"
  795. top: "fire9_expand_1x1"
  796. convolution_param {
  797. num_output: 256
  798. kernel_size: 1
  799. stride: 1
  800. pad: 0
  801. weight_filler {
  802. type: "xavier"
  803. }
  804. bias_filler {
  805. type: "constant"
  806. value: 0.01
  807. }
  808. }
  809. }
  810. layer {
  811. name: "rect_fire9_expand_1x1"
  812. type: "ReLU"
  813. bottom: "fire9_expand_1x1"
  814. top: "fire9_expand_1x1"
  815. relu_param {
  816. negative_slope: 0.01
  817. }
  818. }
  819. layer {
  820. name: "fire9_expand_3x3"
  821. type: "Convolution"
  822. bottom: "fire9_squeeze"
  823. top: "fire9_expand_3x3"
  824. convolution_param {
  825. num_output: 256
  826. kernel_size: 3
  827. stride: 1
  828. pad: 1
  829. weight_filler {
  830. type: "xavier"
  831. }
  832. bias_filler {
  833. type: "constant"
  834. value: 0.01
  835. }
  836. }
  837. }
  838. layer {
  839. name: "rect_fire9_expand_3x3"
  840. type: "ReLU"
  841. bottom: "fire9_expand_3x3"
  842. top: "fire9_expand_3x3"
  843. relu_param {
  844. negative_slope: 0.01
  845. }
  846. }
  847. layer {
  848. name: "fire9"
  849. type: "Concat"
  850. bottom: "fire9_expand_1x1"
  851. bottom: "fire9_expand_3x3"
  852. top: "fire9"
  853. concat_param {
  854. axis: 1
  855. }
  856. }
  857. layer {
  858. name: "conv10"
  859. type: "Convolution"
  860. bottom: "fire9"
  861. top: "conv10"
  862. convolution_param {
  863. num_output: 1000
  864. kernel_size: 1
  865. stride: 1
  866. weight_filler {
  867. type: "gaussian"
  868. mean: 0.0
  869. std: 0.01
  870. }
  871. bias_filler {
  872. type: "constant"
  873. value: 0.01
  874. }
  875. }
  876. }
  877. layer {
  878. name: "rect_conv10"
  879. type: "ReLU"
  880. bottom: "conv10"
  881. top: "conv10"
  882. relu_param {
  883. negative_slope: 0.01
  884. }
  885. }
  886. layer {
  887. name: "fire10_squeeze"
  888. type: "Convolution"
  889. bottom: "conv10"
  890. top: "fire10_squeeze"
  891. convolution_param {
  892. num_output: 96
  893. kernel_size: 1
  894. stride: 1
  895. pad: 0
  896. weight_filler {
  897. type: "xavier"
  898. }
  899. bias_filler {
  900. type: "constant"
  901. value: 0.01
  902. }
  903. }
  904. }
  905. layer {
  906. name: "rect_fire10_squeeze"
  907. type: "ReLU"
  908. bottom: "fire10_squeeze"
  909. top: "fire10_squeeze"
  910. relu_param {
  911. negative_slope: 0.01
  912. }
  913. }
  914. layer {
  915. name: "fire10_expand_1x1"
  916. type: "Convolution"
  917. bottom: "fire10_squeeze"
  918. top: "fire10_expand_1x1"
  919. convolution_param {
  920. num_output: 384
  921. kernel_size: 1
  922. stride: 1
  923. pad: 0
  924. weight_filler {
  925. type: "xavier"
  926. }
  927. bias_filler {
  928. type: "constant"
  929. value: 0.01
  930. }
  931. }
  932. }
  933. layer {
  934. name: "rect_fire10_expand_1x1"
  935. type: "ReLU"
  936. bottom: "fire10_expand_1x1"
  937. top: "fire10_expand_1x1"
  938. relu_param {
  939. negative_slope: 0.01
  940. }
  941. }
  942. layer {
  943. name: "fire10_expand_3x3"
  944. type: "Convolution"
  945. bottom: "fire10_squeeze"
  946. top: "fire10_expand_3x3"
  947. convolution_param {
  948. num_output: 384
  949. kernel_size: 3
  950. stride: 1
  951. pad: 1
  952. weight_filler {
  953. type: "xavier"
  954. }
  955. bias_filler {
  956. type: "constant"
  957. value: 0.01
  958. }
  959. }
  960. }
  961. layer {
  962. name: "rect_fire10_expand_3x3"
  963. type: "ReLU"
  964. bottom: "fire10_expand_3x3"
  965. top: "fire10_expand_3x3"
  966. relu_param {
  967. negative_slope: 0.01
  968. }
  969. }
  970. layer {
  971. name: "fire10"
  972. type: "Concat"
  973. bottom: "fire10_expand_1x1"
  974. bottom: "fire10_expand_3x3"
  975. top: "fire10"
  976. concat_param {
  977. axis: 1
  978. }
  979. }
  980. layer {
  981. name: "fire11_squeeze"
  982. type: "Convolution"
  983. bottom: "fire10"
  984. top: "fire11_squeeze"
  985. convolution_param {
  986. num_output: 96
  987. kernel_size: 1
  988. stride: 1
  989. pad: 0
  990. weight_filler {
  991. type: "xavier"
  992. }
  993. bias_filler {
  994. type: "constant"
  995. value: 0.01
  996. }
  997. }
  998. }
  999. layer {
  1000. name: "rect_fire11_squeeze"
  1001. type: "ReLU"
  1002. bottom: "fire11_squeeze"
  1003. top: "fire11_squeeze"
  1004. relu_param {
  1005. negative_slope: 0.01
  1006. }
  1007. }
  1008. layer {
  1009. name: "fire11_expand_1x1"
  1010. type: "Convolution"
  1011. bottom: "fire11_squeeze"
  1012. top: "fire11_expand_1x1"
  1013. convolution_param {
  1014. num_output: 384
  1015. kernel_size: 1
  1016. stride: 1
  1017. pad: 0
  1018. weight_filler {
  1019. type: "xavier"
  1020. }
  1021. bias_filler {
  1022. type: "constant"
  1023. value: 0.01
  1024. }
  1025. }
  1026. }
  1027. layer {
  1028. name: "rect_fire11_expand_1x1"
  1029. type: "ReLU"
  1030. bottom: "fire11_expand_1x1"
  1031. top: "fire11_expand_1x1"
  1032. relu_param {
  1033. negative_slope: 0.01
  1034. }
  1035. }
  1036. layer {
  1037. name: "fire11_expand_3x3"
  1038. type: "Convolution"
  1039. bottom: "fire11_squeeze"
  1040. top: "fire11_expand_3x3"
  1041. convolution_param {
  1042. num_output: 384
  1043. kernel_size: 3
  1044. stride: 1
  1045. pad: 1
  1046. weight_filler {
  1047. type: "xavier"
  1048. }
  1049. bias_filler {
  1050. type: "constant"
  1051. value: 0.01
  1052. }
  1053. }
  1054. }
  1055. layer {
  1056. name: "rect_fire11_expand_3x3"
  1057. type: "ReLU"
  1058. bottom: "fire11_expand_3x3"
  1059. top: "fire11_expand_3x3"
  1060. relu_param {
  1061. negative_slope: 0.01
  1062. }
  1063. }
  1064. layer {
  1065. name: "fire11"
  1066. type: "Concat"
  1067. bottom: "fire11_expand_1x1"
  1068. bottom: "fire11_expand_3x3"
  1069. top: "fire11"
  1070. concat_param {
  1071. axis: 1
  1072. }
  1073. }
  1074. layer {
  1075. name: "conv11"
  1076. type: "Convolution"
  1077. bottom: "fire11"
  1078. top: "conv11"
  1079. convolution_param {
  1080. num_output: 225
  1081. kernel_size: 3
  1082. stride: 1
  1083. weight_filler {
  1084. type: "gaussian"
  1085. mean: 0.0
  1086. std: 0.0001
  1087. }
  1088. bias_filler {
  1089. type: "constant"
  1090. value: 0.01
  1091. }
  1092. }
  1093. }
  1094. layer {
  1095. name: "permute"
  1096. type: "Permute"
  1097. bottom: "conv11"
  1098. top: "permute_conv11"
  1099. permute_param {
  1100. order: 0 # N
  1101. order: 2 # H
  1102. order: 3 # W
  1103. order: 1 # C
  1104. }
  1105. }
  1106. layer {
  1107. name: "slice"
  1108. type: "Slice"
  1109. bottom: "permute_conv11"
  1110. top: "soft_class_reg"
  1111. top: "sig_conf_reg"
  1112. top: "delta_bbox"
  1113. slice_param {
  1114. axis: 3
  1115. slice_point: 180 # anchors_per_grid * classes_
  1116. slice_point: 189 # anchors_per_grid * (classes_ + 1)
  1117. }
  1118. }
  1119. layer {
  1120. name: "reshape"
  1121. type: "Reshape"
  1122. bottom: "soft_class_reg"
  1123. top: "reshape_soft_class_reg"
  1124. reshape_param {
  1125. shape {
  1126. dim: 0 # batch_size
  1127. dim: 4761 # H*W*anchors_per_grid
  1128. dim: 20 # No. of classes
  1129. }
  1130. }
  1131. }
  1132. layer {
  1133. name: "softmax"
  1134. type: "Softmax"
  1135. bottom: "reshape_soft_class_reg"
  1136. top: "class_scores"
  1137. softmax_param {
  1138. axis: 2
  1139. }
  1140. }
  1141. layer {
  1142. name: "sigmoid"
  1143. type: "Sigmoid"
  1144. bottom: "sig_conf_reg"
  1145. top: "conf_scores"
  1146. }
  1147. layer {
  1148. name: "loss"
  1149. type: "SqueezeDetLoss"
  1150. bottom: "class_scores"
  1151. bottom: "conf_scores"
  1152. bottom: "delta_bbox"
  1153. bottom: "bbox"
  1154. top: "loss"
  1155. squeezedet_param {
  1156. engine: CAFFE
  1157. classes: 20
  1158. anchors_per_grid: 9
  1159. anchor_shapes: 377
  1160. anchor_shapes: 371
  1161. anchor_shapes: 64
  1162. anchor_shapes: 118
  1163. anchor_shapes: 129
  1164. anchor_shapes: 326
  1165. anchor_shapes: 172
  1166. anchor_shapes: 126
  1167. anchor_shapes: 34
  1168. anchor_shapes: 46
  1169. anchor_shapes: 353
  1170. anchor_shapes: 204
  1171. anchor_shapes: 89
  1172. anchor_shapes: 214
  1173. anchor_shapes: 249
  1174. anchor_shapes: 361
  1175. anchor_shapes: 209
  1176. anchor_shapes: 239
  1177. pos_conf: 75
  1178. neg_conf: 100
  1179. lambda_bbox: 5
  1180. lambda_conf: 1
  1181. }
  1182. }