paddlex 2.0.0rc4__py3-none-any.whl → 3.0.0b2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1087) hide show
  1. paddlex/.version +1 -0
  2. paddlex/__init__.py +51 -18
  3. paddlex/__main__.py +40 -0
  4. paddlex/configs/anomaly_detection/STFPM.yaml +41 -0
  5. paddlex/configs/doc_text_orientation/PP-LCNet_x1_0_doc_ori.yaml +41 -0
  6. paddlex/configs/face_detection/BlazeFace-FPN-SSH.yaml +40 -0
  7. paddlex/configs/face_detection/BlazeFace.yaml +40 -0
  8. paddlex/configs/face_detection/PP-YOLOE_plus-S_face.yaml +40 -0
  9. paddlex/configs/face_detection/PicoDet_LCNet_x2_5_face.yaml +40 -0
  10. paddlex/configs/face_recognition/MobileFaceNet.yaml +44 -0
  11. paddlex/configs/face_recognition/ResNet50_face.yaml +44 -0
  12. paddlex/configs/formula_recognition/LaTeX_OCR_rec.yaml +40 -0
  13. paddlex/configs/general_recognition/PP-ShiTuV2_rec.yaml +42 -0
  14. paddlex/configs/general_recognition/PP-ShiTuV2_rec_CLIP_vit_base.yaml +42 -0
  15. paddlex/configs/general_recognition/PP-ShiTuV2_rec_CLIP_vit_large.yaml +41 -0
  16. paddlex/configs/human_detection/PP-YOLOE-L_human.yaml +42 -0
  17. paddlex/configs/human_detection/PP-YOLOE-S_human.yaml +42 -0
  18. paddlex/configs/image_classification/CLIP_vit_base_patch16_224.yaml +41 -0
  19. paddlex/configs/image_classification/CLIP_vit_large_patch14_224.yaml +41 -0
  20. paddlex/configs/image_classification/ConvNeXt_base_224.yaml +41 -0
  21. paddlex/configs/image_classification/ConvNeXt_base_384.yaml +41 -0
  22. paddlex/configs/image_classification/ConvNeXt_large_224.yaml +41 -0
  23. paddlex/configs/image_classification/ConvNeXt_large_384.yaml +41 -0
  24. paddlex/configs/image_classification/ConvNeXt_small.yaml +41 -0
  25. paddlex/configs/image_classification/ConvNeXt_tiny.yaml +41 -0
  26. paddlex/configs/image_classification/FasterNet-L.yaml +40 -0
  27. paddlex/configs/image_classification/FasterNet-M.yaml +40 -0
  28. paddlex/configs/image_classification/FasterNet-S.yaml +40 -0
  29. paddlex/configs/image_classification/FasterNet-T0.yaml +40 -0
  30. paddlex/configs/image_classification/FasterNet-T1.yaml +40 -0
  31. paddlex/configs/image_classification/FasterNet-T2.yaml +40 -0
  32. paddlex/configs/image_classification/MobileNetV1_x0_25.yaml +41 -0
  33. paddlex/configs/image_classification/MobileNetV1_x0_5.yaml +41 -0
  34. paddlex/configs/image_classification/MobileNetV1_x0_75.yaml +41 -0
  35. paddlex/configs/image_classification/MobileNetV1_x1_0.yaml +41 -0
  36. paddlex/configs/image_classification/MobileNetV2_x0_25.yaml +41 -0
  37. paddlex/configs/image_classification/MobileNetV2_x0_5.yaml +41 -0
  38. paddlex/configs/image_classification/MobileNetV2_x1_0.yaml +41 -0
  39. paddlex/configs/image_classification/MobileNetV2_x1_5.yaml +41 -0
  40. paddlex/configs/image_classification/MobileNetV2_x2_0.yaml +41 -0
  41. paddlex/configs/image_classification/MobileNetV3_large_x0_35.yaml +41 -0
  42. paddlex/configs/image_classification/MobileNetV3_large_x0_5.yaml +41 -0
  43. paddlex/configs/image_classification/MobileNetV3_large_x0_75.yaml +41 -0
  44. paddlex/configs/image_classification/MobileNetV3_large_x1_0.yaml +41 -0
  45. paddlex/configs/image_classification/MobileNetV3_large_x1_25.yaml +41 -0
  46. paddlex/configs/image_classification/MobileNetV3_small_x0_35.yaml +41 -0
  47. paddlex/configs/image_classification/MobileNetV3_small_x0_5.yaml +41 -0
  48. paddlex/configs/image_classification/MobileNetV3_small_x0_75.yaml +41 -0
  49. paddlex/configs/image_classification/MobileNetV3_small_x1_0.yaml +41 -0
  50. paddlex/configs/image_classification/MobileNetV3_small_x1_25.yaml +41 -0
  51. paddlex/configs/image_classification/MobileNetV4_conv_large.yaml +41 -0
  52. paddlex/configs/image_classification/MobileNetV4_conv_medium.yaml +41 -0
  53. paddlex/configs/image_classification/MobileNetV4_conv_small.yaml +41 -0
  54. paddlex/configs/image_classification/MobileNetV4_hybrid_large.yaml +41 -0
  55. paddlex/configs/image_classification/MobileNetV4_hybrid_medium.yaml +41 -0
  56. paddlex/configs/image_classification/PP-HGNetV2-B0.yaml +41 -0
  57. paddlex/configs/image_classification/PP-HGNetV2-B1.yaml +41 -0
  58. paddlex/configs/image_classification/PP-HGNetV2-B2.yaml +41 -0
  59. paddlex/configs/image_classification/PP-HGNetV2-B3.yaml +41 -0
  60. paddlex/configs/image_classification/PP-HGNetV2-B4.yaml +41 -0
  61. paddlex/configs/image_classification/PP-HGNetV2-B5.yaml +41 -0
  62. paddlex/configs/image_classification/PP-HGNetV2-B6.yaml +41 -0
  63. paddlex/configs/image_classification/PP-HGNet_base.yaml +41 -0
  64. paddlex/configs/image_classification/PP-HGNet_small.yaml +41 -0
  65. paddlex/configs/image_classification/PP-HGNet_tiny.yaml +41 -0
  66. paddlex/configs/image_classification/PP-LCNetV2_base.yaml +41 -0
  67. paddlex/configs/image_classification/PP-LCNetV2_large.yaml +41 -0
  68. paddlex/configs/image_classification/PP-LCNetV2_small.yaml +41 -0
  69. paddlex/configs/image_classification/PP-LCNet_x0_25.yaml +41 -0
  70. paddlex/configs/image_classification/PP-LCNet_x0_35.yaml +41 -0
  71. paddlex/configs/image_classification/PP-LCNet_x0_5.yaml +41 -0
  72. paddlex/configs/image_classification/PP-LCNet_x0_75.yaml +41 -0
  73. paddlex/configs/image_classification/PP-LCNet_x1_0.yaml +41 -0
  74. paddlex/configs/image_classification/PP-LCNet_x1_5.yaml +41 -0
  75. paddlex/configs/image_classification/PP-LCNet_x2_0.yaml +41 -0
  76. paddlex/configs/image_classification/PP-LCNet_x2_5.yaml +41 -0
  77. paddlex/configs/image_classification/ResNet101.yaml +41 -0
  78. paddlex/configs/image_classification/ResNet101_vd.yaml +41 -0
  79. paddlex/configs/image_classification/ResNet152.yaml +41 -0
  80. paddlex/configs/image_classification/ResNet152_vd.yaml +41 -0
  81. paddlex/configs/image_classification/ResNet18.yaml +41 -0
  82. paddlex/configs/image_classification/ResNet18_vd.yaml +41 -0
  83. paddlex/configs/image_classification/ResNet200_vd.yaml +41 -0
  84. paddlex/configs/image_classification/ResNet34.yaml +41 -0
  85. paddlex/configs/image_classification/ResNet34_vd.yaml +41 -0
  86. paddlex/configs/image_classification/ResNet50.yaml +41 -0
  87. paddlex/configs/image_classification/ResNet50_vd.yaml +41 -0
  88. paddlex/configs/image_classification/StarNet-S1.yaml +41 -0
  89. paddlex/configs/image_classification/StarNet-S2.yaml +41 -0
  90. paddlex/configs/image_classification/StarNet-S3.yaml +41 -0
  91. paddlex/configs/image_classification/StarNet-S4.yaml +41 -0
  92. paddlex/configs/image_classification/SwinTransformer_base_patch4_window12_384.yaml +41 -0
  93. paddlex/configs/image_classification/SwinTransformer_base_patch4_window7_224.yaml +41 -0
  94. paddlex/configs/image_classification/SwinTransformer_large_patch4_window12_384.yaml +41 -0
  95. paddlex/configs/image_classification/SwinTransformer_large_patch4_window7_224.yaml +41 -0
  96. paddlex/configs/image_classification/SwinTransformer_small_patch4_window7_224.yaml +41 -0
  97. paddlex/configs/image_classification/SwinTransformer_tiny_patch4_window7_224.yaml +41 -0
  98. paddlex/configs/image_unwarping/UVDoc.yaml +12 -0
  99. paddlex/configs/instance_segmentation/Cascade-MaskRCNN-ResNet50-FPN.yaml +40 -0
  100. paddlex/configs/instance_segmentation/Cascade-MaskRCNN-ResNet50-vd-SSLDv2-FPN.yaml +40 -0
  101. paddlex/configs/instance_segmentation/Mask-RT-DETR-H.yaml +40 -0
  102. paddlex/configs/instance_segmentation/Mask-RT-DETR-L.yaml +40 -0
  103. paddlex/configs/instance_segmentation/Mask-RT-DETR-M.yaml +40 -0
  104. paddlex/configs/instance_segmentation/Mask-RT-DETR-S.yaml +40 -0
  105. paddlex/configs/instance_segmentation/Mask-RT-DETR-X.yaml +40 -0
  106. paddlex/configs/instance_segmentation/MaskRCNN-ResNeXt101-vd-FPN.yaml +39 -0
  107. paddlex/configs/instance_segmentation/MaskRCNN-ResNet101-FPN.yaml +40 -0
  108. paddlex/configs/instance_segmentation/MaskRCNN-ResNet101-vd-FPN.yaml +40 -0
  109. paddlex/configs/instance_segmentation/MaskRCNN-ResNet50-FPN.yaml +40 -0
  110. paddlex/configs/instance_segmentation/MaskRCNN-ResNet50-vd-FPN.yaml +40 -0
  111. paddlex/configs/instance_segmentation/MaskRCNN-ResNet50.yaml +40 -0
  112. paddlex/configs/instance_segmentation/PP-YOLOE_seg-S.yaml +40 -0
  113. paddlex/configs/instance_segmentation/SOLOv2.yaml +40 -0
  114. paddlex/configs/mainbody_detection/PP-ShiTuV2_det.yaml +41 -0
  115. paddlex/configs/multilabel_classification/CLIP_vit_base_patch16_448_ML.yaml +41 -0
  116. paddlex/configs/multilabel_classification/PP-HGNetV2-B0_ML.yaml +41 -0
  117. paddlex/configs/multilabel_classification/PP-HGNetV2-B4_ML.yaml +41 -0
  118. paddlex/configs/multilabel_classification/PP-HGNetV2-B6_ML.yaml +41 -0
  119. paddlex/configs/multilabel_classification/PP-LCNet_x1_0_ML.yaml +41 -0
  120. paddlex/configs/multilabel_classification/ResNet50_ML.yaml +41 -0
  121. paddlex/configs/object_detection/Cascade-FasterRCNN-ResNet50-FPN.yaml +41 -0
  122. paddlex/configs/object_detection/Cascade-FasterRCNN-ResNet50-vd-SSLDv2-FPN.yaml +42 -0
  123. paddlex/configs/object_detection/CenterNet-DLA-34.yaml +41 -0
  124. paddlex/configs/object_detection/CenterNet-ResNet50.yaml +41 -0
  125. paddlex/configs/object_detection/DETR-R50.yaml +42 -0
  126. paddlex/configs/object_detection/FCOS-ResNet50.yaml +41 -0
  127. paddlex/configs/object_detection/FasterRCNN-ResNeXt101-vd-FPN.yaml +42 -0
  128. paddlex/configs/object_detection/FasterRCNN-ResNet101-FPN.yaml +42 -0
  129. paddlex/configs/object_detection/FasterRCNN-ResNet101.yaml +42 -0
  130. paddlex/configs/object_detection/FasterRCNN-ResNet34-FPN.yaml +42 -0
  131. paddlex/configs/object_detection/FasterRCNN-ResNet50-FPN.yaml +42 -0
  132. paddlex/configs/object_detection/FasterRCNN-ResNet50-vd-FPN.yaml +42 -0
  133. paddlex/configs/object_detection/FasterRCNN-ResNet50-vd-SSLDv2-FPN.yaml +42 -0
  134. paddlex/configs/object_detection/FasterRCNN-ResNet50.yaml +42 -0
  135. paddlex/configs/object_detection/FasterRCNN-Swin-Tiny-FPN.yaml +42 -0
  136. paddlex/configs/object_detection/PP-YOLOE_plus-L.yaml +40 -0
  137. paddlex/configs/object_detection/PP-YOLOE_plus-M.yaml +40 -0
  138. paddlex/configs/object_detection/PP-YOLOE_plus-S.yaml +40 -0
  139. paddlex/configs/object_detection/PP-YOLOE_plus-X.yaml +40 -0
  140. paddlex/configs/object_detection/PicoDet-L.yaml +40 -0
  141. paddlex/configs/object_detection/PicoDet-M.yaml +42 -0
  142. paddlex/configs/object_detection/PicoDet-S.yaml +40 -0
  143. paddlex/configs/object_detection/PicoDet-XS.yaml +42 -0
  144. paddlex/configs/object_detection/RT-DETR-H.yaml +40 -0
  145. paddlex/configs/object_detection/RT-DETR-L.yaml +40 -0
  146. paddlex/configs/object_detection/RT-DETR-R18.yaml +40 -0
  147. paddlex/configs/object_detection/RT-DETR-R50.yaml +40 -0
  148. paddlex/configs/object_detection/RT-DETR-X.yaml +40 -0
  149. paddlex/configs/object_detection/YOLOX-L.yaml +40 -0
  150. paddlex/configs/object_detection/YOLOX-M.yaml +40 -0
  151. paddlex/configs/object_detection/YOLOX-N.yaml +40 -0
  152. paddlex/configs/object_detection/YOLOX-S.yaml +40 -0
  153. paddlex/configs/object_detection/YOLOX-T.yaml +40 -0
  154. paddlex/configs/object_detection/YOLOX-X.yaml +40 -0
  155. paddlex/configs/object_detection/YOLOv3-DarkNet53.yaml +40 -0
  156. paddlex/configs/object_detection/YOLOv3-MobileNetV3.yaml +40 -0
  157. paddlex/configs/object_detection/YOLOv3-ResNet50_vd_DCN.yaml +40 -0
  158. paddlex/configs/pedestrian_attribute/PP-LCNet_x1_0_pedestrian_attribute.yaml +41 -0
  159. paddlex/configs/semantic_segmentation/Deeplabv3-R101.yaml +40 -0
  160. paddlex/configs/semantic_segmentation/Deeplabv3-R50.yaml +40 -0
  161. paddlex/configs/semantic_segmentation/Deeplabv3_Plus-R101.yaml +40 -0
  162. paddlex/configs/semantic_segmentation/Deeplabv3_Plus-R50.yaml +40 -0
  163. paddlex/configs/semantic_segmentation/OCRNet_HRNet-W18.yaml +40 -0
  164. paddlex/configs/semantic_segmentation/OCRNet_HRNet-W48.yaml +40 -0
  165. paddlex/configs/semantic_segmentation/PP-LiteSeg-B.yaml +41 -0
  166. paddlex/configs/semantic_segmentation/PP-LiteSeg-T.yaml +40 -0
  167. paddlex/configs/semantic_segmentation/SeaFormer_base.yaml +40 -0
  168. paddlex/configs/semantic_segmentation/SeaFormer_large.yaml +40 -0
  169. paddlex/configs/semantic_segmentation/SeaFormer_small.yaml +40 -0
  170. paddlex/configs/semantic_segmentation/SeaFormer_tiny.yaml +40 -0
  171. paddlex/configs/semantic_segmentation/SegFormer-B0.yaml +40 -0
  172. paddlex/configs/semantic_segmentation/SegFormer-B1.yaml +40 -0
  173. paddlex/configs/semantic_segmentation/SegFormer-B2.yaml +40 -0
  174. paddlex/configs/semantic_segmentation/SegFormer-B3.yaml +40 -0
  175. paddlex/configs/semantic_segmentation/SegFormer-B4.yaml +40 -0
  176. paddlex/configs/semantic_segmentation/SegFormer-B5.yaml +40 -0
  177. paddlex/configs/small_object_detection/PP-YOLOE_plus_SOD-L.yaml +42 -0
  178. paddlex/configs/small_object_detection/PP-YOLOE_plus_SOD-S.yaml +42 -0
  179. paddlex/configs/small_object_detection/PP-YOLOE_plus_SOD-largesize-L.yaml +42 -0
  180. paddlex/configs/structure_analysis/PicoDet-L_layout_17cls.yaml +40 -0
  181. paddlex/configs/structure_analysis/PicoDet-L_layout_3cls.yaml +40 -0
  182. paddlex/configs/structure_analysis/PicoDet-S_layout_17cls.yaml +40 -0
  183. paddlex/configs/structure_analysis/PicoDet-S_layout_3cls.yaml +40 -0
  184. paddlex/configs/structure_analysis/PicoDet_layout_1x.yaml +40 -0
  185. paddlex/configs/structure_analysis/PicoDet_layout_1x_table.yaml +40 -0
  186. paddlex/configs/structure_analysis/RT-DETR-H_layout_17cls.yaml +40 -0
  187. paddlex/configs/structure_analysis/RT-DETR-H_layout_3cls.yaml +40 -0
  188. paddlex/configs/table_recognition/SLANet.yaml +39 -0
  189. paddlex/configs/table_recognition/SLANet_plus.yaml +39 -0
  190. paddlex/configs/text_detection/PP-OCRv4_mobile_det.yaml +40 -0
  191. paddlex/configs/text_detection/PP-OCRv4_server_det.yaml +40 -0
  192. paddlex/configs/text_detection_seal/PP-OCRv4_mobile_seal_det.yaml +40 -0
  193. paddlex/configs/text_detection_seal/PP-OCRv4_server_seal_det.yaml +40 -0
  194. paddlex/configs/text_recognition/PP-OCRv4_mobile_rec.yaml +39 -0
  195. paddlex/configs/text_recognition/PP-OCRv4_server_rec.yaml +39 -0
  196. paddlex/configs/text_recognition/ch_RepSVTR_rec.yaml +39 -0
  197. paddlex/configs/text_recognition/ch_SVTRv2_rec.yaml +39 -0
  198. paddlex/configs/ts_anomaly_detection/AutoEncoder_ad.yaml +37 -0
  199. paddlex/configs/ts_anomaly_detection/DLinear_ad.yaml +37 -0
  200. paddlex/configs/ts_anomaly_detection/Nonstationary_ad.yaml +37 -0
  201. paddlex/configs/ts_anomaly_detection/PatchTST_ad.yaml +37 -0
  202. paddlex/configs/ts_anomaly_detection/TimesNet_ad.yaml +37 -0
  203. paddlex/configs/ts_classification/TimesNet_cls.yaml +37 -0
  204. paddlex/configs/ts_forecast/DLinear.yaml +38 -0
  205. paddlex/configs/ts_forecast/NLinear.yaml +38 -0
  206. paddlex/configs/ts_forecast/Nonstationary.yaml +38 -0
  207. paddlex/configs/ts_forecast/PatchTST.yaml +38 -0
  208. paddlex/configs/ts_forecast/RLinear.yaml +38 -0
  209. paddlex/configs/ts_forecast/TiDE.yaml +38 -0
  210. paddlex/configs/ts_forecast/TimesNet.yaml +38 -0
  211. paddlex/configs/vehicle_attribute/PP-LCNet_x1_0_vehicle_attribute.yaml +41 -0
  212. paddlex/configs/vehicle_detection/PP-YOLOE-L_vehicle.yaml +41 -0
  213. paddlex/configs/vehicle_detection/PP-YOLOE-S_vehicle.yaml +42 -0
  214. paddlex/engine.py +54 -0
  215. paddlex/inference/__init__.py +17 -0
  216. paddlex/inference/components/__init__.py +18 -0
  217. paddlex/inference/components/base.py +292 -0
  218. paddlex/inference/components/llm/__init__.py +25 -0
  219. paddlex/inference/components/llm/base.py +65 -0
  220. paddlex/inference/components/llm/erniebot.py +212 -0
  221. paddlex/inference/components/paddle_predictor/__init__.py +20 -0
  222. paddlex/inference/components/paddle_predictor/predictor.py +332 -0
  223. paddlex/inference/components/retrieval/__init__.py +15 -0
  224. paddlex/inference/components/retrieval/faiss.py +359 -0
  225. paddlex/inference/components/task_related/__init__.py +33 -0
  226. paddlex/inference/components/task_related/clas.py +124 -0
  227. paddlex/inference/components/task_related/det.py +284 -0
  228. paddlex/inference/components/task_related/instance_seg.py +89 -0
  229. paddlex/inference/components/task_related/seal_det_warp.py +940 -0
  230. paddlex/inference/components/task_related/seg.py +40 -0
  231. paddlex/inference/components/task_related/table_rec.py +191 -0
  232. paddlex/inference/components/task_related/text_det.py +895 -0
  233. paddlex/inference/components/task_related/text_rec.py +353 -0
  234. paddlex/inference/components/task_related/warp.py +43 -0
  235. paddlex/inference/components/transforms/__init__.py +16 -0
  236. paddlex/inference/components/transforms/image/__init__.py +15 -0
  237. paddlex/inference/components/transforms/image/common.py +598 -0
  238. paddlex/inference/components/transforms/image/funcs.py +58 -0
  239. paddlex/inference/components/transforms/read_data.py +67 -0
  240. paddlex/inference/components/transforms/ts/__init__.py +15 -0
  241. paddlex/inference/components/transforms/ts/common.py +393 -0
  242. paddlex/inference/components/transforms/ts/funcs.py +424 -0
  243. paddlex/inference/models/__init__.py +106 -0
  244. paddlex/inference/models/anomaly_detection.py +87 -0
  245. paddlex/inference/models/base/__init__.py +16 -0
  246. paddlex/inference/models/base/base_predictor.py +76 -0
  247. paddlex/inference/models/base/basic_predictor.py +122 -0
  248. paddlex/inference/models/face_recognition.py +21 -0
  249. paddlex/inference/models/formula_recognition.py +55 -0
  250. paddlex/inference/models/general_recognition.py +99 -0
  251. paddlex/inference/models/image_classification.py +101 -0
  252. paddlex/inference/models/image_unwarping.py +43 -0
  253. paddlex/inference/models/instance_segmentation.py +66 -0
  254. paddlex/inference/models/multilabel_classification.py +33 -0
  255. paddlex/inference/models/object_detection.py +129 -0
  256. paddlex/inference/models/semantic_segmentation.py +86 -0
  257. paddlex/inference/models/table_recognition.py +106 -0
  258. paddlex/inference/models/text_detection.py +105 -0
  259. paddlex/inference/models/text_recognition.py +78 -0
  260. paddlex/inference/models/ts_ad.py +68 -0
  261. paddlex/inference/models/ts_cls.py +57 -0
  262. paddlex/inference/models/ts_fc.py +73 -0
  263. paddlex/inference/pipelines/__init__.py +127 -0
  264. paddlex/inference/pipelines/attribute_recognition.py +92 -0
  265. paddlex/inference/pipelines/base.py +86 -0
  266. paddlex/inference/pipelines/face_recognition.py +49 -0
  267. paddlex/inference/pipelines/formula_recognition.py +102 -0
  268. paddlex/inference/pipelines/layout_parsing/__init__.py +15 -0
  269. paddlex/inference/pipelines/layout_parsing/layout_parsing.py +362 -0
  270. paddlex/inference/pipelines/ocr.py +80 -0
  271. paddlex/inference/pipelines/pp_shitu_v2.py +152 -0
  272. paddlex/inference/pipelines/ppchatocrv3/__init__.py +15 -0
  273. paddlex/inference/pipelines/ppchatocrv3/ch_prompt.yaml +14 -0
  274. paddlex/inference/pipelines/ppchatocrv3/ppchatocrv3.py +717 -0
  275. paddlex/inference/pipelines/ppchatocrv3/utils.py +168 -0
  276. paddlex/inference/pipelines/seal_recognition.py +152 -0
  277. paddlex/inference/pipelines/serving/__init__.py +17 -0
  278. paddlex/inference/pipelines/serving/_pipeline_apps/__init__.py +205 -0
  279. paddlex/inference/pipelines/serving/_pipeline_apps/anomaly_detection.py +80 -0
  280. paddlex/inference/pipelines/serving/_pipeline_apps/face_recognition.py +317 -0
  281. paddlex/inference/pipelines/serving/_pipeline_apps/formula_recognition.py +119 -0
  282. paddlex/inference/pipelines/serving/_pipeline_apps/image_classification.py +101 -0
  283. paddlex/inference/pipelines/serving/_pipeline_apps/instance_segmentation.py +112 -0
  284. paddlex/inference/pipelines/serving/_pipeline_apps/layout_parsing.py +205 -0
  285. paddlex/inference/pipelines/serving/_pipeline_apps/multi_label_image_classification.py +90 -0
  286. paddlex/inference/pipelines/serving/_pipeline_apps/object_detection.py +90 -0
  287. paddlex/inference/pipelines/serving/_pipeline_apps/ocr.py +98 -0
  288. paddlex/inference/pipelines/serving/_pipeline_apps/pedestrian_attribute_recognition.py +102 -0
  289. paddlex/inference/pipelines/serving/_pipeline_apps/pp_shitu_v2.py +319 -0
  290. paddlex/inference/pipelines/serving/_pipeline_apps/ppchatocrv3.py +445 -0
  291. paddlex/inference/pipelines/serving/_pipeline_apps/seal_recognition.py +110 -0
  292. paddlex/inference/pipelines/serving/_pipeline_apps/semantic_segmentation.py +82 -0
  293. paddlex/inference/pipelines/serving/_pipeline_apps/small_object_detection.py +92 -0
  294. paddlex/inference/pipelines/serving/_pipeline_apps/table_recognition.py +110 -0
  295. paddlex/inference/pipelines/serving/_pipeline_apps/ts_ad.py +68 -0
  296. paddlex/inference/pipelines/serving/_pipeline_apps/ts_cls.py +68 -0
  297. paddlex/inference/pipelines/serving/_pipeline_apps/ts_fc.py +68 -0
  298. paddlex/inference/pipelines/serving/_pipeline_apps/vehicle_attribute_recognition.py +102 -0
  299. paddlex/inference/pipelines/serving/app.py +164 -0
  300. paddlex/inference/pipelines/serving/models.py +30 -0
  301. paddlex/inference/pipelines/serving/server.py +25 -0
  302. paddlex/inference/pipelines/serving/storage.py +161 -0
  303. paddlex/inference/pipelines/serving/utils.py +190 -0
  304. paddlex/inference/pipelines/single_model_pipeline.py +76 -0
  305. paddlex/inference/pipelines/table_recognition/__init__.py +15 -0
  306. paddlex/inference/pipelines/table_recognition/table_recognition.py +193 -0
  307. paddlex/inference/pipelines/table_recognition/utils.py +457 -0
  308. paddlex/inference/results/__init__.py +31 -0
  309. paddlex/inference/results/attribute_rec.py +89 -0
  310. paddlex/inference/results/base.py +43 -0
  311. paddlex/inference/results/chat_ocr.py +158 -0
  312. paddlex/inference/results/clas.py +133 -0
  313. paddlex/inference/results/det.py +86 -0
  314. paddlex/inference/results/face_rec.py +34 -0
  315. paddlex/inference/results/formula_rec.py +363 -0
  316. paddlex/inference/results/instance_seg.py +152 -0
  317. paddlex/inference/results/ocr.py +157 -0
  318. paddlex/inference/results/seal_rec.py +50 -0
  319. paddlex/inference/results/seg.py +72 -0
  320. paddlex/inference/results/shitu.py +35 -0
  321. paddlex/inference/results/table_rec.py +109 -0
  322. paddlex/inference/results/text_det.py +33 -0
  323. paddlex/inference/results/text_rec.py +66 -0
  324. paddlex/inference/results/ts.py +37 -0
  325. paddlex/inference/results/utils/__init__.py +13 -0
  326. paddlex/inference/results/utils/mixin.py +204 -0
  327. paddlex/inference/results/warp.py +31 -0
  328. paddlex/inference/utils/__init__.py +13 -0
  329. paddlex/inference/utils/benchmark.py +214 -0
  330. paddlex/inference/utils/color_map.py +123 -0
  331. paddlex/inference/utils/get_pipeline_path.py +26 -0
  332. paddlex/inference/utils/io/__init__.py +33 -0
  333. paddlex/inference/utils/io/readers.py +353 -0
  334. paddlex/inference/utils/io/style.py +374 -0
  335. paddlex/inference/utils/io/tablepyxl.py +149 -0
  336. paddlex/inference/utils/io/writers.py +376 -0
  337. paddlex/inference/utils/new_ir_blacklist.py +22 -0
  338. paddlex/inference/utils/official_models.py +286 -0
  339. paddlex/inference/utils/pp_option.py +236 -0
  340. paddlex/inference/utils/process_hook.py +54 -0
  341. paddlex/model.py +106 -0
  342. paddlex/modules/__init__.py +105 -0
  343. paddlex/modules/anomaly_detection/__init__.py +18 -0
  344. paddlex/modules/anomaly_detection/dataset_checker/__init__.py +95 -0
  345. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/__init__.py +19 -0
  346. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/analyse_dataset.py +79 -0
  347. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/check_dataset.py +87 -0
  348. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/convert_dataset.py +230 -0
  349. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/split_dataset.py +87 -0
  350. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/utils/__init__.py +13 -0
  351. paddlex/modules/anomaly_detection/dataset_checker/dataset_src/utils/visualizer.py +71 -0
  352. paddlex/modules/anomaly_detection/evaluator.py +58 -0
  353. paddlex/modules/anomaly_detection/exportor.py +22 -0
  354. paddlex/modules/anomaly_detection/model_list.py +16 -0
  355. paddlex/modules/anomaly_detection/trainer.py +71 -0
  356. paddlex/modules/base/__init__.py +18 -0
  357. paddlex/modules/base/build_model.py +34 -0
  358. paddlex/modules/base/dataset_checker/__init__.py +16 -0
  359. paddlex/modules/base/dataset_checker/dataset_checker.py +164 -0
  360. paddlex/modules/base/dataset_checker/utils.py +110 -0
  361. paddlex/modules/base/evaluator.py +154 -0
  362. paddlex/modules/base/exportor.py +121 -0
  363. paddlex/modules/base/trainer.py +111 -0
  364. paddlex/modules/face_recognition/__init__.py +18 -0
  365. paddlex/modules/face_recognition/dataset_checker/__init__.py +71 -0
  366. paddlex/modules/face_recognition/dataset_checker/dataset_src/__init__.py +16 -0
  367. paddlex/modules/face_recognition/dataset_checker/dataset_src/check_dataset.py +174 -0
  368. paddlex/modules/face_recognition/dataset_checker/dataset_src/utils/__init__.py +13 -0
  369. paddlex/modules/face_recognition/dataset_checker/dataset_src/utils/visualizer.py +156 -0
  370. paddlex/modules/face_recognition/evaluator.py +52 -0
  371. paddlex/modules/face_recognition/exportor.py +22 -0
  372. paddlex/modules/face_recognition/model_list.py +15 -0
  373. paddlex/modules/face_recognition/trainer.py +97 -0
  374. paddlex/modules/formula_recognition/__init__.py +13 -0
  375. paddlex/modules/formula_recognition/model_list.py +17 -0
  376. paddlex/modules/general_recognition/__init__.py +18 -0
  377. paddlex/modules/general_recognition/dataset_checker/__init__.py +107 -0
  378. paddlex/modules/general_recognition/dataset_checker/dataset_src/__init__.py +19 -0
  379. paddlex/modules/general_recognition/dataset_checker/dataset_src/analyse_dataset.py +98 -0
  380. paddlex/modules/general_recognition/dataset_checker/dataset_src/check_dataset.py +100 -0
  381. paddlex/modules/general_recognition/dataset_checker/dataset_src/convert_dataset.py +99 -0
  382. paddlex/modules/general_recognition/dataset_checker/dataset_src/split_dataset.py +82 -0
  383. paddlex/modules/general_recognition/dataset_checker/dataset_src/utils/__init__.py +13 -0
  384. paddlex/modules/general_recognition/dataset_checker/dataset_src/utils/visualizer.py +150 -0
  385. paddlex/modules/general_recognition/evaluator.py +31 -0
  386. paddlex/modules/general_recognition/exportor.py +22 -0
  387. paddlex/modules/general_recognition/model_list.py +19 -0
  388. paddlex/modules/general_recognition/trainer.py +52 -0
  389. paddlex/modules/image_classification/__init__.py +18 -0
  390. paddlex/modules/image_classification/dataset_checker/__init__.py +104 -0
  391. paddlex/modules/image_classification/dataset_checker/dataset_src/__init__.py +19 -0
  392. paddlex/modules/image_classification/dataset_checker/dataset_src/analyse_dataset.py +93 -0
  393. paddlex/modules/image_classification/dataset_checker/dataset_src/check_dataset.py +131 -0
  394. paddlex/modules/image_classification/dataset_checker/dataset_src/convert_dataset.py +51 -0
  395. paddlex/modules/image_classification/dataset_checker/dataset_src/split_dataset.py +81 -0
  396. paddlex/modules/image_classification/dataset_checker/dataset_src/utils/__init__.py +13 -0
  397. paddlex/modules/image_classification/dataset_checker/dataset_src/utils/visualizer.py +156 -0
  398. paddlex/modules/image_classification/evaluator.py +43 -0
  399. paddlex/modules/image_classification/exportor.py +22 -0
  400. paddlex/modules/image_classification/model_list.py +97 -0
  401. paddlex/modules/image_classification/trainer.py +82 -0
  402. paddlex/modules/image_unwarping/__init__.py +13 -0
  403. paddlex/modules/image_unwarping/model_list.py +17 -0
  404. paddlex/modules/instance_segmentation/__init__.py +18 -0
  405. paddlex/modules/instance_segmentation/dataset_checker/__init__.py +93 -0
  406. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/__init__.py +19 -0
  407. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/analyse_dataset.py +78 -0
  408. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/check_dataset.py +92 -0
  409. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/convert_dataset.py +241 -0
  410. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/split_dataset.py +119 -0
  411. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/utils/__init__.py +13 -0
  412. paddlex/modules/instance_segmentation/dataset_checker/dataset_src/utils/visualizer.py +221 -0
  413. paddlex/modules/instance_segmentation/evaluator.py +32 -0
  414. paddlex/modules/instance_segmentation/exportor.py +22 -0
  415. paddlex/modules/instance_segmentation/model_list.py +33 -0
  416. paddlex/modules/instance_segmentation/trainer.py +31 -0
  417. paddlex/modules/multilabel_classification/__init__.py +18 -0
  418. paddlex/modules/multilabel_classification/dataset_checker/__init__.py +106 -0
  419. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/__init__.py +19 -0
  420. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/analyse_dataset.py +95 -0
  421. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/check_dataset.py +131 -0
  422. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/convert_dataset.py +117 -0
  423. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/split_dataset.py +81 -0
  424. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/utils/__init__.py +13 -0
  425. paddlex/modules/multilabel_classification/dataset_checker/dataset_src/utils/visualizer.py +153 -0
  426. paddlex/modules/multilabel_classification/evaluator.py +43 -0
  427. paddlex/modules/multilabel_classification/exportor.py +22 -0
  428. paddlex/modules/multilabel_classification/model_list.py +24 -0
  429. paddlex/modules/multilabel_classification/trainer.py +85 -0
  430. paddlex/modules/object_detection/__init__.py +18 -0
  431. paddlex/modules/object_detection/dataset_checker/__init__.py +115 -0
  432. paddlex/modules/object_detection/dataset_checker/dataset_src/__init__.py +19 -0
  433. paddlex/modules/object_detection/dataset_checker/dataset_src/analyse_dataset.py +80 -0
  434. paddlex/modules/object_detection/dataset_checker/dataset_src/check_dataset.py +86 -0
  435. paddlex/modules/object_detection/dataset_checker/dataset_src/convert_dataset.py +433 -0
  436. paddlex/modules/object_detection/dataset_checker/dataset_src/split_dataset.py +119 -0
  437. paddlex/modules/object_detection/dataset_checker/dataset_src/utils/__init__.py +13 -0
  438. paddlex/modules/object_detection/dataset_checker/dataset_src/utils/visualizer.py +192 -0
  439. paddlex/modules/object_detection/evaluator.py +41 -0
  440. paddlex/modules/object_detection/exportor.py +22 -0
  441. paddlex/modules/object_detection/model_list.py +74 -0
  442. paddlex/modules/object_detection/trainer.py +85 -0
  443. paddlex/modules/semantic_segmentation/__init__.py +18 -0
  444. paddlex/modules/semantic_segmentation/dataset_checker/__init__.py +95 -0
  445. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/__init__.py +19 -0
  446. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/analyse_dataset.py +73 -0
  447. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/check_dataset.py +80 -0
  448. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/convert_dataset.py +162 -0
  449. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/split_dataset.py +87 -0
  450. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/utils/__init__.py +13 -0
  451. paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/utils/visualizer.py +71 -0
  452. paddlex/modules/semantic_segmentation/evaluator.py +58 -0
  453. paddlex/modules/semantic_segmentation/exportor.py +22 -0
  454. paddlex/modules/semantic_segmentation/model_list.py +35 -0
  455. paddlex/modules/semantic_segmentation/trainer.py +71 -0
  456. paddlex/modules/table_recognition/__init__.py +18 -0
  457. paddlex/modules/table_recognition/dataset_checker/__init__.py +83 -0
  458. paddlex/modules/table_recognition/dataset_checker/dataset_src/__init__.py +18 -0
  459. paddlex/modules/table_recognition/dataset_checker/dataset_src/analyse_dataset.py +58 -0
  460. paddlex/modules/table_recognition/dataset_checker/dataset_src/check_dataset.py +87 -0
  461. paddlex/modules/table_recognition/dataset_checker/dataset_src/split_dataset.py +79 -0
  462. paddlex/modules/table_recognition/evaluator.py +43 -0
  463. paddlex/modules/table_recognition/exportor.py +22 -0
  464. paddlex/modules/table_recognition/model_list.py +19 -0
  465. paddlex/modules/table_recognition/trainer.py +70 -0
  466. paddlex/modules/text_detection/__init__.py +18 -0
  467. paddlex/modules/text_detection/dataset_checker/__init__.py +94 -0
  468. paddlex/modules/text_detection/dataset_checker/dataset_src/__init__.py +18 -0
  469. paddlex/modules/text_detection/dataset_checker/dataset_src/analyse_dataset.py +217 -0
  470. paddlex/modules/text_detection/dataset_checker/dataset_src/check_dataset.py +96 -0
  471. paddlex/modules/text_detection/dataset_checker/dataset_src/split_dataset.py +140 -0
  472. paddlex/modules/text_detection/evaluator.py +41 -0
  473. paddlex/modules/text_detection/exportor.py +22 -0
  474. paddlex/modules/text_detection/model_list.py +22 -0
  475. paddlex/modules/text_detection/trainer.py +68 -0
  476. paddlex/modules/text_recognition/__init__.py +18 -0
  477. paddlex/modules/text_recognition/dataset_checker/__init__.py +114 -0
  478. paddlex/modules/text_recognition/dataset_checker/dataset_src/__init__.py +19 -0
  479. paddlex/modules/text_recognition/dataset_checker/dataset_src/analyse_dataset.py +161 -0
  480. paddlex/modules/text_recognition/dataset_checker/dataset_src/check_dataset.py +97 -0
  481. paddlex/modules/text_recognition/dataset_checker/dataset_src/convert_dataset.py +94 -0
  482. paddlex/modules/text_recognition/dataset_checker/dataset_src/split_dataset.py +81 -0
  483. paddlex/modules/text_recognition/evaluator.py +63 -0
  484. paddlex/modules/text_recognition/exportor.py +25 -0
  485. paddlex/modules/text_recognition/model_list.py +20 -0
  486. paddlex/modules/text_recognition/trainer.py +105 -0
  487. paddlex/modules/ts_anomaly_detection/__init__.py +19 -0
  488. paddlex/modules/ts_anomaly_detection/dataset_checker/__init__.py +97 -0
  489. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/__init__.py +19 -0
  490. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/analyse_dataset.py +27 -0
  491. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/check_dataset.py +64 -0
  492. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/convert_dataset.py +78 -0
  493. paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/split_dataset.py +63 -0
  494. paddlex/modules/ts_anomaly_detection/evaluator.py +67 -0
  495. paddlex/modules/ts_anomaly_detection/exportor.py +45 -0
  496. paddlex/modules/ts_anomaly_detection/model_list.py +22 -0
  497. paddlex/modules/ts_anomaly_detection/trainer.py +97 -0
  498. paddlex/modules/ts_classification/__init__.py +19 -0
  499. paddlex/modules/ts_classification/dataset_checker/__init__.py +97 -0
  500. paddlex/modules/ts_classification/dataset_checker/dataset_src/__init__.py +19 -0
  501. paddlex/modules/ts_classification/dataset_checker/dataset_src/analyse_dataset.py +74 -0
  502. paddlex/modules/ts_classification/dataset_checker/dataset_src/check_dataset.py +64 -0
  503. paddlex/modules/ts_classification/dataset_checker/dataset_src/convert_dataset.py +78 -0
  504. paddlex/modules/ts_classification/dataset_checker/dataset_src/split_dataset.py +88 -0
  505. paddlex/modules/ts_classification/evaluator.py +66 -0
  506. paddlex/modules/ts_classification/exportor.py +45 -0
  507. paddlex/modules/ts_classification/model_list.py +18 -0
  508. paddlex/modules/ts_classification/trainer.py +92 -0
  509. paddlex/modules/ts_forecast/__init__.py +19 -0
  510. paddlex/modules/ts_forecast/dataset_checker/__init__.py +97 -0
  511. paddlex/modules/ts_forecast/dataset_checker/dataset_src/__init__.py +19 -0
  512. paddlex/modules/ts_forecast/dataset_checker/dataset_src/analyse_dataset.py +27 -0
  513. paddlex/modules/ts_forecast/dataset_checker/dataset_src/check_dataset.py +64 -0
  514. paddlex/modules/ts_forecast/dataset_checker/dataset_src/convert_dataset.py +77 -0
  515. paddlex/modules/ts_forecast/dataset_checker/dataset_src/split_dataset.py +63 -0
  516. paddlex/modules/ts_forecast/evaluator.py +66 -0
  517. paddlex/modules/ts_forecast/exportor.py +45 -0
  518. paddlex/modules/ts_forecast/model_list.py +24 -0
  519. paddlex/modules/ts_forecast/trainer.py +92 -0
  520. paddlex/paddlex_cli.py +197 -0
  521. paddlex/pipelines/OCR.yaml +8 -0
  522. paddlex/pipelines/PP-ChatOCRv3-doc.yaml +27 -0
  523. paddlex/pipelines/PP-ShiTuV2.yaml +13 -0
  524. paddlex/pipelines/anomaly_detection.yaml +7 -0
  525. paddlex/pipelines/face_recognition.yaml +13 -0
  526. paddlex/pipelines/formula_recognition.yaml +8 -0
  527. paddlex/pipelines/image_classification.yaml +7 -0
  528. paddlex/pipelines/instance_segmentation.yaml +7 -0
  529. paddlex/pipelines/layout_parsing.yaml +14 -0
  530. paddlex/pipelines/multi_label_image_classification.yaml +7 -0
  531. paddlex/pipelines/object_detection.yaml +7 -0
  532. paddlex/pipelines/pedestrian_attribute_recognition.yaml +7 -0
  533. paddlex/pipelines/seal_recognition.yaml +10 -0
  534. paddlex/pipelines/semantic_segmentation.yaml +7 -0
  535. paddlex/pipelines/small_object_detection.yaml +7 -0
  536. paddlex/pipelines/table_recognition.yaml +12 -0
  537. paddlex/pipelines/ts_ad.yaml +7 -0
  538. paddlex/pipelines/ts_cls.yaml +7 -0
  539. paddlex/pipelines/ts_fc.yaml +7 -0
  540. paddlex/pipelines/vehicle_attribute_recognition.yaml +7 -0
  541. paddlex/repo_apis/PaddleClas_api/__init__.py +17 -0
  542. paddlex/repo_apis/PaddleClas_api/cls/__init__.py +19 -0
  543. paddlex/repo_apis/PaddleClas_api/cls/config.py +594 -0
  544. paddlex/repo_apis/PaddleClas_api/cls/model.py +349 -0
  545. paddlex/repo_apis/PaddleClas_api/cls/register.py +890 -0
  546. paddlex/repo_apis/PaddleClas_api/cls/runner.py +219 -0
  547. paddlex/repo_apis/PaddleClas_api/shitu_rec/__init__.py +18 -0
  548. paddlex/repo_apis/PaddleClas_api/shitu_rec/config.py +141 -0
  549. paddlex/repo_apis/PaddleClas_api/shitu_rec/model.py +23 -0
  550. paddlex/repo_apis/PaddleClas_api/shitu_rec/register.py +68 -0
  551. paddlex/repo_apis/PaddleClas_api/shitu_rec/runner.py +55 -0
  552. paddlex/repo_apis/PaddleDetection_api/__init__.py +17 -0
  553. paddlex/repo_apis/PaddleDetection_api/config_helper.py +280 -0
  554. paddlex/repo_apis/PaddleDetection_api/instance_seg/__init__.py +18 -0
  555. paddlex/repo_apis/PaddleDetection_api/instance_seg/config.py +454 -0
  556. paddlex/repo_apis/PaddleDetection_api/instance_seg/model.py +397 -0
  557. paddlex/repo_apis/PaddleDetection_api/instance_seg/register.py +263 -0
  558. paddlex/repo_apis/PaddleDetection_api/instance_seg/runner.py +226 -0
  559. paddlex/repo_apis/PaddleDetection_api/object_det/__init__.py +19 -0
  560. paddlex/repo_apis/PaddleDetection_api/object_det/config.py +517 -0
  561. paddlex/repo_apis/PaddleDetection_api/object_det/model.py +424 -0
  562. paddlex/repo_apis/PaddleDetection_api/object_det/official_categories.py +139 -0
  563. paddlex/repo_apis/PaddleDetection_api/object_det/register.py +927 -0
  564. paddlex/repo_apis/PaddleDetection_api/object_det/runner.py +226 -0
  565. paddlex/repo_apis/PaddleNLP_api/__init__.py +13 -0
  566. paddlex/repo_apis/PaddleOCR_api/__init__.py +20 -0
  567. paddlex/repo_apis/PaddleOCR_api/config_utils.py +53 -0
  568. paddlex/repo_apis/PaddleOCR_api/table_rec/__init__.py +16 -0
  569. paddlex/repo_apis/PaddleOCR_api/table_rec/config.py +64 -0
  570. paddlex/repo_apis/PaddleOCR_api/table_rec/model.py +126 -0
  571. paddlex/repo_apis/PaddleOCR_api/table_rec/register.py +53 -0
  572. paddlex/repo_apis/PaddleOCR_api/table_rec/runner.py +51 -0
  573. paddlex/repo_apis/PaddleOCR_api/text_det/__init__.py +16 -0
  574. paddlex/repo_apis/PaddleOCR_api/text_det/config.py +62 -0
  575. paddlex/repo_apis/PaddleOCR_api/text_det/model.py +72 -0
  576. paddlex/repo_apis/PaddleOCR_api/text_det/register.py +72 -0
  577. paddlex/repo_apis/PaddleOCR_api/text_det/runner.py +53 -0
  578. paddlex/repo_apis/PaddleOCR_api/text_rec/__init__.py +16 -0
  579. paddlex/repo_apis/PaddleOCR_api/text_rec/config.py +542 -0
  580. paddlex/repo_apis/PaddleOCR_api/text_rec/model.py +396 -0
  581. paddlex/repo_apis/PaddleOCR_api/text_rec/register.py +80 -0
  582. paddlex/repo_apis/PaddleOCR_api/text_rec/runner.py +240 -0
  583. paddlex/repo_apis/PaddleSeg_api/__init__.py +16 -0
  584. paddlex/repo_apis/PaddleSeg_api/base_seg_config.py +134 -0
  585. paddlex/repo_apis/PaddleSeg_api/seg/__init__.py +16 -0
  586. paddlex/repo_apis/PaddleSeg_api/seg/config.py +177 -0
  587. paddlex/repo_apis/PaddleSeg_api/seg/model.py +481 -0
  588. paddlex/repo_apis/PaddleSeg_api/seg/register.py +253 -0
  589. paddlex/repo_apis/PaddleSeg_api/seg/runner.py +262 -0
  590. paddlex/repo_apis/PaddleTS_api/__init__.py +19 -0
  591. paddlex/repo_apis/PaddleTS_api/ts_ad/__init__.py +16 -0
  592. paddlex/repo_apis/PaddleTS_api/ts_ad/config.py +89 -0
  593. paddlex/repo_apis/PaddleTS_api/ts_ad/register.py +146 -0
  594. paddlex/repo_apis/PaddleTS_api/ts_ad/runner.py +158 -0
  595. paddlex/repo_apis/PaddleTS_api/ts_base/__init__.py +13 -0
  596. paddlex/repo_apis/PaddleTS_api/ts_base/config.py +222 -0
  597. paddlex/repo_apis/PaddleTS_api/ts_base/model.py +272 -0
  598. paddlex/repo_apis/PaddleTS_api/ts_base/runner.py +158 -0
  599. paddlex/repo_apis/PaddleTS_api/ts_cls/__init__.py +16 -0
  600. paddlex/repo_apis/PaddleTS_api/ts_cls/config.py +73 -0
  601. paddlex/repo_apis/PaddleTS_api/ts_cls/register.py +59 -0
  602. paddlex/repo_apis/PaddleTS_api/ts_cls/runner.py +158 -0
  603. paddlex/repo_apis/PaddleTS_api/ts_fc/__init__.py +16 -0
  604. paddlex/repo_apis/PaddleTS_api/ts_fc/config.py +137 -0
  605. paddlex/repo_apis/PaddleTS_api/ts_fc/register.py +186 -0
  606. paddlex/repo_apis/__init__.py +13 -0
  607. paddlex/repo_apis/base/__init__.py +23 -0
  608. paddlex/repo_apis/base/config.py +238 -0
  609. paddlex/repo_apis/base/model.py +571 -0
  610. paddlex/repo_apis/base/register.py +135 -0
  611. paddlex/repo_apis/base/runner.py +390 -0
  612. paddlex/repo_apis/base/utils/__init__.py +13 -0
  613. paddlex/repo_apis/base/utils/arg.py +64 -0
  614. paddlex/repo_apis/base/utils/subprocess.py +107 -0
  615. paddlex/repo_manager/__init__.py +24 -0
  616. paddlex/repo_manager/core.py +271 -0
  617. paddlex/repo_manager/meta.py +143 -0
  618. paddlex/repo_manager/repo.py +396 -0
  619. paddlex/repo_manager/requirements.txt +18 -0
  620. paddlex/repo_manager/utils.py +298 -0
  621. paddlex/utils/__init__.py +1 -12
  622. paddlex/utils/cache.py +148 -0
  623. paddlex/utils/config.py +214 -0
  624. paddlex/utils/device.py +103 -0
  625. paddlex/utils/download.py +168 -182
  626. paddlex/utils/errors/__init__.py +17 -0
  627. paddlex/utils/errors/dataset_checker.py +78 -0
  628. paddlex/utils/errors/others.py +152 -0
  629. paddlex/utils/file_interface.py +212 -0
  630. paddlex/utils/flags.py +61 -0
  631. paddlex/utils/fonts/PingFang-SC-Regular.ttf +0 -0
  632. paddlex/utils/fonts/__init__.py +24 -0
  633. paddlex/utils/func_register.py +41 -0
  634. paddlex/utils/interactive_get_pipeline.py +55 -0
  635. paddlex/utils/lazy_loader.py +66 -0
  636. paddlex/utils/logging.py +132 -33
  637. paddlex/utils/misc.py +201 -0
  638. paddlex/utils/result_saver.py +59 -0
  639. paddlex/utils/subclass_register.py +101 -0
  640. paddlex/version.py +54 -0
  641. paddlex-3.0.0b2.dist-info/LICENSE +169 -0
  642. paddlex-3.0.0b2.dist-info/METADATA +760 -0
  643. paddlex-3.0.0b2.dist-info/RECORD +646 -0
  644. paddlex-3.0.0b2.dist-info/WHEEL +5 -0
  645. paddlex-3.0.0b2.dist-info/entry_points.txt +2 -0
  646. paddlex-3.0.0b2.dist-info/top_level.txt +1 -0
  647. PaddleClas/__init__.py +0 -16
  648. PaddleClas/paddleclas.py +0 -375
  649. PaddleClas/ppcls/__init__.py +0 -20
  650. PaddleClas/ppcls/data/__init__.py +0 -15
  651. PaddleClas/ppcls/data/imaug/__init__.py +0 -94
  652. PaddleClas/ppcls/data/imaug/autoaugment.py +0 -264
  653. PaddleClas/ppcls/data/imaug/batch_operators.py +0 -117
  654. PaddleClas/ppcls/data/imaug/cutout.py +0 -41
  655. PaddleClas/ppcls/data/imaug/fmix.py +0 -217
  656. PaddleClas/ppcls/data/imaug/grid.py +0 -89
  657. PaddleClas/ppcls/data/imaug/hide_and_seek.py +0 -44
  658. PaddleClas/ppcls/data/imaug/operators.py +0 -244
  659. PaddleClas/ppcls/data/imaug/randaugment.py +0 -106
  660. PaddleClas/ppcls/data/imaug/random_erasing.py +0 -55
  661. PaddleClas/ppcls/data/reader.py +0 -318
  662. PaddleClas/ppcls/modeling/__init__.py +0 -20
  663. PaddleClas/ppcls/modeling/architectures/__init__.py +0 -51
  664. PaddleClas/ppcls/modeling/architectures/alexnet.py +0 -132
  665. PaddleClas/ppcls/modeling/architectures/darknet.py +0 -161
  666. PaddleClas/ppcls/modeling/architectures/densenet.py +0 -308
  667. PaddleClas/ppcls/modeling/architectures/distillation_models.py +0 -65
  668. PaddleClas/ppcls/modeling/architectures/distilled_vision_transformer.py +0 -196
  669. PaddleClas/ppcls/modeling/architectures/dpn.py +0 -425
  670. PaddleClas/ppcls/modeling/architectures/efficientnet.py +0 -901
  671. PaddleClas/ppcls/modeling/architectures/ghostnet.py +0 -331
  672. PaddleClas/ppcls/modeling/architectures/googlenet.py +0 -207
  673. PaddleClas/ppcls/modeling/architectures/hrnet.py +0 -742
  674. PaddleClas/ppcls/modeling/architectures/inception_v3.py +0 -481
  675. PaddleClas/ppcls/modeling/architectures/inception_v4.py +0 -455
  676. PaddleClas/ppcls/modeling/architectures/mixnet.py +0 -782
  677. PaddleClas/ppcls/modeling/architectures/mobilenet_v1.py +0 -266
  678. PaddleClas/ppcls/modeling/architectures/mobilenet_v2.py +0 -248
  679. PaddleClas/ppcls/modeling/architectures/mobilenet_v3.py +0 -359
  680. PaddleClas/ppcls/modeling/architectures/regnet.py +0 -383
  681. PaddleClas/ppcls/modeling/architectures/repvgg.py +0 -339
  682. PaddleClas/ppcls/modeling/architectures/res2net.py +0 -272
  683. PaddleClas/ppcls/modeling/architectures/res2net_vd.py +0 -295
  684. PaddleClas/ppcls/modeling/architectures/resnest.py +0 -705
  685. PaddleClas/ppcls/modeling/architectures/resnet.py +0 -316
  686. PaddleClas/ppcls/modeling/architectures/resnet_vc.py +0 -309
  687. PaddleClas/ppcls/modeling/architectures/resnet_vd.py +0 -354
  688. PaddleClas/ppcls/modeling/architectures/resnext.py +0 -253
  689. PaddleClas/ppcls/modeling/architectures/resnext101_wsl.py +0 -447
  690. PaddleClas/ppcls/modeling/architectures/resnext_vd.py +0 -266
  691. PaddleClas/ppcls/modeling/architectures/rexnet.py +0 -240
  692. PaddleClas/ppcls/modeling/architectures/se_resnet_vd.py +0 -378
  693. PaddleClas/ppcls/modeling/architectures/se_resnext.py +0 -290
  694. PaddleClas/ppcls/modeling/architectures/se_resnext_vd.py +0 -285
  695. PaddleClas/ppcls/modeling/architectures/shufflenet_v2.py +0 -320
  696. PaddleClas/ppcls/modeling/architectures/squeezenet.py +0 -154
  697. PaddleClas/ppcls/modeling/architectures/vgg.py +0 -152
  698. PaddleClas/ppcls/modeling/architectures/vision_transformer.py +0 -402
  699. PaddleClas/ppcls/modeling/architectures/xception.py +0 -345
  700. PaddleClas/ppcls/modeling/architectures/xception_deeplab.py +0 -386
  701. PaddleClas/ppcls/modeling/loss.py +0 -154
  702. PaddleClas/ppcls/modeling/utils.py +0 -53
  703. PaddleClas/ppcls/optimizer/__init__.py +0 -19
  704. PaddleClas/ppcls/optimizer/learning_rate.py +0 -159
  705. PaddleClas/ppcls/optimizer/optimizer.py +0 -165
  706. PaddleClas/ppcls/utils/__init__.py +0 -27
  707. PaddleClas/ppcls/utils/check.py +0 -151
  708. PaddleClas/ppcls/utils/config.py +0 -201
  709. PaddleClas/ppcls/utils/logger.py +0 -120
  710. PaddleClas/ppcls/utils/metrics.py +0 -107
  711. PaddleClas/ppcls/utils/misc.py +0 -62
  712. PaddleClas/ppcls/utils/model_zoo.py +0 -213
  713. PaddleClas/ppcls/utils/save_load.py +0 -163
  714. PaddleClas/setup.py +0 -55
  715. PaddleClas/tools/__init__.py +0 -15
  716. PaddleClas/tools/download.py +0 -50
  717. PaddleClas/tools/ema.py +0 -58
  718. PaddleClas/tools/eval.py +0 -112
  719. PaddleClas/tools/export_model.py +0 -85
  720. PaddleClas/tools/export_serving_model.py +0 -76
  721. PaddleClas/tools/infer/__init__.py +0 -16
  722. PaddleClas/tools/infer/infer.py +0 -94
  723. PaddleClas/tools/infer/predict.py +0 -117
  724. PaddleClas/tools/infer/utils.py +0 -233
  725. PaddleClas/tools/program.py +0 -444
  726. PaddleClas/tools/test_hubserving.py +0 -113
  727. PaddleClas/tools/train.py +0 -141
  728. paddlex/cls.py +0 -76
  729. paddlex/command.py +0 -215
  730. paddlex/cv/__init__.py +0 -17
  731. paddlex/cv/datasets/__init__.py +0 -18
  732. paddlex/cv/datasets/coco.py +0 -169
  733. paddlex/cv/datasets/imagenet.py +0 -88
  734. paddlex/cv/datasets/seg_dataset.py +0 -91
  735. paddlex/cv/datasets/voc.py +0 -301
  736. paddlex/cv/models/__init__.py +0 -18
  737. paddlex/cv/models/base.py +0 -623
  738. paddlex/cv/models/classifier.py +0 -814
  739. paddlex/cv/models/detector.py +0 -1747
  740. paddlex/cv/models/load_model.py +0 -126
  741. paddlex/cv/models/segmenter.py +0 -673
  742. paddlex/cv/models/slim/__init__.py +0 -13
  743. paddlex/cv/models/slim/prune.py +0 -55
  744. paddlex/cv/models/utils/__init__.py +0 -13
  745. paddlex/cv/models/utils/det_metrics/__init__.py +0 -15
  746. paddlex/cv/models/utils/det_metrics/coco_utils.py +0 -217
  747. paddlex/cv/models/utils/det_metrics/metrics.py +0 -220
  748. paddlex/cv/models/utils/ema.py +0 -48
  749. paddlex/cv/models/utils/seg_metrics.py +0 -62
  750. paddlex/cv/models/utils/visualize.py +0 -394
  751. paddlex/cv/transforms/__init__.py +0 -46
  752. paddlex/cv/transforms/batch_operators.py +0 -286
  753. paddlex/cv/transforms/box_utils.py +0 -41
  754. paddlex/cv/transforms/functions.py +0 -193
  755. paddlex/cv/transforms/operators.py +0 -1402
  756. paddlex/det.py +0 -43
  757. paddlex/paddleseg/__init__.py +0 -17
  758. paddlex/paddleseg/core/__init__.py +0 -20
  759. paddlex/paddleseg/core/infer.py +0 -289
  760. paddlex/paddleseg/core/predict.py +0 -145
  761. paddlex/paddleseg/core/train.py +0 -258
  762. paddlex/paddleseg/core/val.py +0 -172
  763. paddlex/paddleseg/cvlibs/__init__.py +0 -17
  764. paddlex/paddleseg/cvlibs/callbacks.py +0 -279
  765. paddlex/paddleseg/cvlibs/config.py +0 -359
  766. paddlex/paddleseg/cvlibs/manager.py +0 -142
  767. paddlex/paddleseg/cvlibs/param_init.py +0 -91
  768. paddlex/paddleseg/datasets/__init__.py +0 -21
  769. paddlex/paddleseg/datasets/ade.py +0 -112
  770. paddlex/paddleseg/datasets/cityscapes.py +0 -86
  771. paddlex/paddleseg/datasets/cocostuff.py +0 -79
  772. paddlex/paddleseg/datasets/dataset.py +0 -164
  773. paddlex/paddleseg/datasets/mini_deep_globe_road_extraction.py +0 -95
  774. paddlex/paddleseg/datasets/optic_disc_seg.py +0 -97
  775. paddlex/paddleseg/datasets/pascal_context.py +0 -80
  776. paddlex/paddleseg/datasets/voc.py +0 -113
  777. paddlex/paddleseg/models/__init__.py +0 -39
  778. paddlex/paddleseg/models/ann.py +0 -436
  779. paddlex/paddleseg/models/attention_unet.py +0 -189
  780. paddlex/paddleseg/models/backbones/__init__.py +0 -18
  781. paddlex/paddleseg/models/backbones/hrnet.py +0 -815
  782. paddlex/paddleseg/models/backbones/mobilenetv3.py +0 -365
  783. paddlex/paddleseg/models/backbones/resnet_vd.py +0 -364
  784. paddlex/paddleseg/models/backbones/xception_deeplab.py +0 -415
  785. paddlex/paddleseg/models/bisenet.py +0 -311
  786. paddlex/paddleseg/models/danet.py +0 -220
  787. paddlex/paddleseg/models/decoupled_segnet.py +0 -233
  788. paddlex/paddleseg/models/deeplab.py +0 -258
  789. paddlex/paddleseg/models/dnlnet.py +0 -231
  790. paddlex/paddleseg/models/emanet.py +0 -219
  791. paddlex/paddleseg/models/fast_scnn.py +0 -318
  792. paddlex/paddleseg/models/fcn.py +0 -135
  793. paddlex/paddleseg/models/gcnet.py +0 -223
  794. paddlex/paddleseg/models/gscnn.py +0 -357
  795. paddlex/paddleseg/models/hardnet.py +0 -309
  796. paddlex/paddleseg/models/isanet.py +0 -202
  797. paddlex/paddleseg/models/layers/__init__.py +0 -19
  798. paddlex/paddleseg/models/layers/activation.py +0 -73
  799. paddlex/paddleseg/models/layers/attention.py +0 -146
  800. paddlex/paddleseg/models/layers/layer_libs.py +0 -168
  801. paddlex/paddleseg/models/layers/nonlocal2d.py +0 -155
  802. paddlex/paddleseg/models/layers/pyramid_pool.py +0 -182
  803. paddlex/paddleseg/models/losses/__init__.py +0 -27
  804. paddlex/paddleseg/models/losses/binary_cross_entropy_loss.py +0 -174
  805. paddlex/paddleseg/models/losses/bootstrapped_cross_entropy.py +0 -73
  806. paddlex/paddleseg/models/losses/cross_entropy_loss.py +0 -94
  807. paddlex/paddleseg/models/losses/decoupledsegnet_relax_boundary_loss.py +0 -129
  808. paddlex/paddleseg/models/losses/dice_loss.py +0 -61
  809. paddlex/paddleseg/models/losses/edge_attention_loss.py +0 -78
  810. paddlex/paddleseg/models/losses/gscnn_dual_task_loss.py +0 -141
  811. paddlex/paddleseg/models/losses/l1_loss.py +0 -76
  812. paddlex/paddleseg/models/losses/lovasz_loss.py +0 -222
  813. paddlex/paddleseg/models/losses/mean_square_error_loss.py +0 -65
  814. paddlex/paddleseg/models/losses/mixed_loss.py +0 -58
  815. paddlex/paddleseg/models/losses/ohem_cross_entropy_loss.py +0 -99
  816. paddlex/paddleseg/models/losses/ohem_edge_attention_loss.py +0 -114
  817. paddlex/paddleseg/models/ocrnet.py +0 -248
  818. paddlex/paddleseg/models/pspnet.py +0 -147
  819. paddlex/paddleseg/models/sfnet.py +0 -236
  820. paddlex/paddleseg/models/shufflenet_slim.py +0 -268
  821. paddlex/paddleseg/models/u2net.py +0 -574
  822. paddlex/paddleseg/models/unet.py +0 -155
  823. paddlex/paddleseg/models/unet_3plus.py +0 -316
  824. paddlex/paddleseg/models/unet_plusplus.py +0 -237
  825. paddlex/paddleseg/transforms/__init__.py +0 -16
  826. paddlex/paddleseg/transforms/functional.py +0 -161
  827. paddlex/paddleseg/transforms/transforms.py +0 -937
  828. paddlex/paddleseg/utils/__init__.py +0 -22
  829. paddlex/paddleseg/utils/config_check.py +0 -60
  830. paddlex/paddleseg/utils/download.py +0 -163
  831. paddlex/paddleseg/utils/env/__init__.py +0 -16
  832. paddlex/paddleseg/utils/env/seg_env.py +0 -56
  833. paddlex/paddleseg/utils/env/sys_env.py +0 -122
  834. paddlex/paddleseg/utils/logger.py +0 -48
  835. paddlex/paddleseg/utils/metrics.py +0 -146
  836. paddlex/paddleseg/utils/progbar.py +0 -212
  837. paddlex/paddleseg/utils/timer.py +0 -53
  838. paddlex/paddleseg/utils/utils.py +0 -120
  839. paddlex/paddleseg/utils/visualize.py +0 -90
  840. paddlex/ppcls/__init__.py +0 -20
  841. paddlex/ppcls/data/__init__.py +0 -15
  842. paddlex/ppcls/data/imaug/__init__.py +0 -94
  843. paddlex/ppcls/data/imaug/autoaugment.py +0 -264
  844. paddlex/ppcls/data/imaug/batch_operators.py +0 -117
  845. paddlex/ppcls/data/imaug/cutout.py +0 -41
  846. paddlex/ppcls/data/imaug/fmix.py +0 -217
  847. paddlex/ppcls/data/imaug/grid.py +0 -89
  848. paddlex/ppcls/data/imaug/hide_and_seek.py +0 -44
  849. paddlex/ppcls/data/imaug/operators.py +0 -256
  850. paddlex/ppcls/data/imaug/randaugment.py +0 -106
  851. paddlex/ppcls/data/imaug/random_erasing.py +0 -55
  852. paddlex/ppcls/data/reader.py +0 -318
  853. paddlex/ppcls/modeling/__init__.py +0 -20
  854. paddlex/ppcls/modeling/architectures/__init__.py +0 -51
  855. paddlex/ppcls/modeling/architectures/alexnet.py +0 -132
  856. paddlex/ppcls/modeling/architectures/darknet.py +0 -161
  857. paddlex/ppcls/modeling/architectures/densenet.py +0 -308
  858. paddlex/ppcls/modeling/architectures/distillation_models.py +0 -65
  859. paddlex/ppcls/modeling/architectures/distilled_vision_transformer.py +0 -196
  860. paddlex/ppcls/modeling/architectures/dpn.py +0 -425
  861. paddlex/ppcls/modeling/architectures/efficientnet.py +0 -901
  862. paddlex/ppcls/modeling/architectures/ghostnet.py +0 -331
  863. paddlex/ppcls/modeling/architectures/googlenet.py +0 -207
  864. paddlex/ppcls/modeling/architectures/hrnet.py +0 -742
  865. paddlex/ppcls/modeling/architectures/inception_v3.py +0 -541
  866. paddlex/ppcls/modeling/architectures/inception_v4.py +0 -455
  867. paddlex/ppcls/modeling/architectures/mixnet.py +0 -782
  868. paddlex/ppcls/modeling/architectures/mobilenet_v1.py +0 -266
  869. paddlex/ppcls/modeling/architectures/mobilenet_v2.py +0 -248
  870. paddlex/ppcls/modeling/architectures/mobilenet_v3.py +0 -359
  871. paddlex/ppcls/modeling/architectures/regnet.py +0 -383
  872. paddlex/ppcls/modeling/architectures/repvgg.py +0 -339
  873. paddlex/ppcls/modeling/architectures/res2net.py +0 -272
  874. paddlex/ppcls/modeling/architectures/res2net_vd.py +0 -295
  875. paddlex/ppcls/modeling/architectures/resnest.py +0 -705
  876. paddlex/ppcls/modeling/architectures/resnet.py +0 -317
  877. paddlex/ppcls/modeling/architectures/resnet_vc.py +0 -309
  878. paddlex/ppcls/modeling/architectures/resnet_vd.py +0 -354
  879. paddlex/ppcls/modeling/architectures/resnext.py +0 -259
  880. paddlex/ppcls/modeling/architectures/resnext101_wsl.py +0 -447
  881. paddlex/ppcls/modeling/architectures/resnext_vd.py +0 -266
  882. paddlex/ppcls/modeling/architectures/rexnet.py +0 -240
  883. paddlex/ppcls/modeling/architectures/se_resnet_vd.py +0 -378
  884. paddlex/ppcls/modeling/architectures/se_resnext.py +0 -290
  885. paddlex/ppcls/modeling/architectures/se_resnext_vd.py +0 -285
  886. paddlex/ppcls/modeling/architectures/shufflenet_v2.py +0 -320
  887. paddlex/ppcls/modeling/architectures/squeezenet.py +0 -154
  888. paddlex/ppcls/modeling/architectures/vgg.py +0 -152
  889. paddlex/ppcls/modeling/architectures/vision_transformer.py +0 -402
  890. paddlex/ppcls/modeling/architectures/xception.py +0 -345
  891. paddlex/ppcls/modeling/architectures/xception_deeplab.py +0 -386
  892. paddlex/ppcls/modeling/loss.py +0 -158
  893. paddlex/ppcls/modeling/utils.py +0 -53
  894. paddlex/ppcls/optimizer/__init__.py +0 -19
  895. paddlex/ppcls/optimizer/learning_rate.py +0 -159
  896. paddlex/ppcls/optimizer/optimizer.py +0 -165
  897. paddlex/ppcls/utils/__init__.py +0 -27
  898. paddlex/ppcls/utils/check.py +0 -151
  899. paddlex/ppcls/utils/config.py +0 -201
  900. paddlex/ppcls/utils/logger.py +0 -120
  901. paddlex/ppcls/utils/metrics.py +0 -112
  902. paddlex/ppcls/utils/misc.py +0 -62
  903. paddlex/ppcls/utils/model_zoo.py +0 -213
  904. paddlex/ppcls/utils/save_load.py +0 -163
  905. paddlex/ppdet/__init__.py +0 -16
  906. paddlex/ppdet/core/__init__.py +0 -15
  907. paddlex/ppdet/core/config/__init__.py +0 -13
  908. paddlex/ppdet/core/config/schema.py +0 -248
  909. paddlex/ppdet/core/config/yaml_helpers.py +0 -118
  910. paddlex/ppdet/core/workspace.py +0 -279
  911. paddlex/ppdet/data/__init__.py +0 -21
  912. paddlex/ppdet/data/reader.py +0 -304
  913. paddlex/ppdet/data/shm_utils.py +0 -67
  914. paddlex/ppdet/data/source/__init__.py +0 -27
  915. paddlex/ppdet/data/source/category.py +0 -823
  916. paddlex/ppdet/data/source/coco.py +0 -243
  917. paddlex/ppdet/data/source/dataset.py +0 -192
  918. paddlex/ppdet/data/source/keypoint_coco.py +0 -656
  919. paddlex/ppdet/data/source/mot.py +0 -360
  920. paddlex/ppdet/data/source/voc.py +0 -204
  921. paddlex/ppdet/data/source/widerface.py +0 -180
  922. paddlex/ppdet/data/transform/__init__.py +0 -28
  923. paddlex/ppdet/data/transform/autoaugment_utils.py +0 -1593
  924. paddlex/ppdet/data/transform/batch_operators.py +0 -758
  925. paddlex/ppdet/data/transform/gridmask_utils.py +0 -83
  926. paddlex/ppdet/data/transform/keypoint_operators.py +0 -665
  927. paddlex/ppdet/data/transform/mot_operators.py +0 -636
  928. paddlex/ppdet/data/transform/op_helper.py +0 -468
  929. paddlex/ppdet/data/transform/operators.py +0 -2103
  930. paddlex/ppdet/engine/__init__.py +0 -29
  931. paddlex/ppdet/engine/callbacks.py +0 -262
  932. paddlex/ppdet/engine/env.py +0 -47
  933. paddlex/ppdet/engine/export_utils.py +0 -118
  934. paddlex/ppdet/engine/tracker.py +0 -425
  935. paddlex/ppdet/engine/trainer.py +0 -535
  936. paddlex/ppdet/metrics/__init__.py +0 -23
  937. paddlex/ppdet/metrics/coco_utils.py +0 -184
  938. paddlex/ppdet/metrics/json_results.py +0 -151
  939. paddlex/ppdet/metrics/keypoint_metrics.py +0 -202
  940. paddlex/ppdet/metrics/map_utils.py +0 -396
  941. paddlex/ppdet/metrics/metrics.py +0 -300
  942. paddlex/ppdet/metrics/mot_eval_utils.py +0 -192
  943. paddlex/ppdet/metrics/mot_metrics.py +0 -184
  944. paddlex/ppdet/metrics/widerface_utils.py +0 -393
  945. paddlex/ppdet/model_zoo/__init__.py +0 -18
  946. paddlex/ppdet/model_zoo/model_zoo.py +0 -86
  947. paddlex/ppdet/model_zoo/tests/__init__.py +0 -13
  948. paddlex/ppdet/model_zoo/tests/test_get_model.py +0 -48
  949. paddlex/ppdet/model_zoo/tests/test_list_model.py +0 -68
  950. paddlex/ppdet/modeling/__init__.py +0 -41
  951. paddlex/ppdet/modeling/architectures/__init__.py +0 -40
  952. paddlex/ppdet/modeling/architectures/cascade_rcnn.py +0 -144
  953. paddlex/ppdet/modeling/architectures/centernet.py +0 -103
  954. paddlex/ppdet/modeling/architectures/deepsort.py +0 -111
  955. paddlex/ppdet/modeling/architectures/fairmot.py +0 -107
  956. paddlex/ppdet/modeling/architectures/faster_rcnn.py +0 -106
  957. paddlex/ppdet/modeling/architectures/fcos.py +0 -105
  958. paddlex/ppdet/modeling/architectures/jde.py +0 -125
  959. paddlex/ppdet/modeling/architectures/keypoint_hrhrnet.py +0 -286
  960. paddlex/ppdet/modeling/architectures/keypoint_hrnet.py +0 -203
  961. paddlex/ppdet/modeling/architectures/mask_rcnn.py +0 -135
  962. paddlex/ppdet/modeling/architectures/meta_arch.py +0 -45
  963. paddlex/ppdet/modeling/architectures/s2anet.py +0 -103
  964. paddlex/ppdet/modeling/architectures/solov2.py +0 -110
  965. paddlex/ppdet/modeling/architectures/ssd.py +0 -84
  966. paddlex/ppdet/modeling/architectures/ttfnet.py +0 -98
  967. paddlex/ppdet/modeling/architectures/yolo.py +0 -104
  968. paddlex/ppdet/modeling/backbones/__init__.py +0 -37
  969. paddlex/ppdet/modeling/backbones/blazenet.py +0 -322
  970. paddlex/ppdet/modeling/backbones/darknet.py +0 -341
  971. paddlex/ppdet/modeling/backbones/dla.py +0 -244
  972. paddlex/ppdet/modeling/backbones/ghostnet.py +0 -476
  973. paddlex/ppdet/modeling/backbones/hrnet.py +0 -724
  974. paddlex/ppdet/modeling/backbones/mobilenet_v1.py +0 -410
  975. paddlex/ppdet/modeling/backbones/mobilenet_v3.py +0 -497
  976. paddlex/ppdet/modeling/backbones/name_adapter.py +0 -69
  977. paddlex/ppdet/modeling/backbones/res2net.py +0 -358
  978. paddlex/ppdet/modeling/backbones/resnet.py +0 -606
  979. paddlex/ppdet/modeling/backbones/senet.py +0 -140
  980. paddlex/ppdet/modeling/backbones/vgg.py +0 -216
  981. paddlex/ppdet/modeling/bbox_utils.py +0 -464
  982. paddlex/ppdet/modeling/heads/__init__.py +0 -41
  983. paddlex/ppdet/modeling/heads/bbox_head.py +0 -379
  984. paddlex/ppdet/modeling/heads/cascade_head.py +0 -285
  985. paddlex/ppdet/modeling/heads/centernet_head.py +0 -194
  986. paddlex/ppdet/modeling/heads/face_head.py +0 -113
  987. paddlex/ppdet/modeling/heads/fcos_head.py +0 -270
  988. paddlex/ppdet/modeling/heads/keypoint_hrhrnet_head.py +0 -108
  989. paddlex/ppdet/modeling/heads/mask_head.py +0 -253
  990. paddlex/ppdet/modeling/heads/roi_extractor.py +0 -111
  991. paddlex/ppdet/modeling/heads/s2anet_head.py +0 -845
  992. paddlex/ppdet/modeling/heads/solov2_head.py +0 -537
  993. paddlex/ppdet/modeling/heads/ssd_head.py +0 -175
  994. paddlex/ppdet/modeling/heads/ttf_head.py +0 -314
  995. paddlex/ppdet/modeling/heads/yolo_head.py +0 -124
  996. paddlex/ppdet/modeling/keypoint_utils.py +0 -302
  997. paddlex/ppdet/modeling/layers.py +0 -1142
  998. paddlex/ppdet/modeling/losses/__init__.py +0 -35
  999. paddlex/ppdet/modeling/losses/ctfocal_loss.py +0 -67
  1000. paddlex/ppdet/modeling/losses/fairmot_loss.py +0 -41
  1001. paddlex/ppdet/modeling/losses/fcos_loss.py +0 -225
  1002. paddlex/ppdet/modeling/losses/iou_aware_loss.py +0 -48
  1003. paddlex/ppdet/modeling/losses/iou_loss.py +0 -210
  1004. paddlex/ppdet/modeling/losses/jde_loss.py +0 -182
  1005. paddlex/ppdet/modeling/losses/keypoint_loss.py +0 -228
  1006. paddlex/ppdet/modeling/losses/solov2_loss.py +0 -101
  1007. paddlex/ppdet/modeling/losses/ssd_loss.py +0 -163
  1008. paddlex/ppdet/modeling/losses/yolo_loss.py +0 -212
  1009. paddlex/ppdet/modeling/mot/__init__.py +0 -25
  1010. paddlex/ppdet/modeling/mot/matching/__init__.py +0 -19
  1011. paddlex/ppdet/modeling/mot/matching/deepsort_matching.py +0 -382
  1012. paddlex/ppdet/modeling/mot/matching/jde_matching.py +0 -145
  1013. paddlex/ppdet/modeling/mot/motion/__init__.py +0 -17
  1014. paddlex/ppdet/modeling/mot/motion/kalman_filter.py +0 -270
  1015. paddlex/ppdet/modeling/mot/tracker/__init__.py +0 -23
  1016. paddlex/ppdet/modeling/mot/tracker/base_jde_tracker.py +0 -267
  1017. paddlex/ppdet/modeling/mot/tracker/base_sde_tracker.py +0 -145
  1018. paddlex/ppdet/modeling/mot/tracker/deepsort_tracker.py +0 -165
  1019. paddlex/ppdet/modeling/mot/tracker/jde_tracker.py +0 -262
  1020. paddlex/ppdet/modeling/mot/utils.py +0 -181
  1021. paddlex/ppdet/modeling/mot/visualization.py +0 -130
  1022. paddlex/ppdet/modeling/necks/__init__.py +0 -25
  1023. paddlex/ppdet/modeling/necks/centernet_fpn.py +0 -185
  1024. paddlex/ppdet/modeling/necks/fpn.py +0 -233
  1025. paddlex/ppdet/modeling/necks/hrfpn.py +0 -131
  1026. paddlex/ppdet/modeling/necks/ttf_fpn.py +0 -243
  1027. paddlex/ppdet/modeling/necks/yolo_fpn.py +0 -1034
  1028. paddlex/ppdet/modeling/ops.py +0 -1599
  1029. paddlex/ppdet/modeling/post_process.py +0 -449
  1030. paddlex/ppdet/modeling/proposal_generator/__init__.py +0 -2
  1031. paddlex/ppdet/modeling/proposal_generator/anchor_generator.py +0 -135
  1032. paddlex/ppdet/modeling/proposal_generator/proposal_generator.py +0 -81
  1033. paddlex/ppdet/modeling/proposal_generator/rpn_head.py +0 -269
  1034. paddlex/ppdet/modeling/proposal_generator/target.py +0 -671
  1035. paddlex/ppdet/modeling/proposal_generator/target_layer.py +0 -476
  1036. paddlex/ppdet/modeling/reid/__init__.py +0 -23
  1037. paddlex/ppdet/modeling/reid/fairmot_embedding_head.py +0 -117
  1038. paddlex/ppdet/modeling/reid/jde_embedding_head.py +0 -189
  1039. paddlex/ppdet/modeling/reid/pyramidal_embedding.py +0 -151
  1040. paddlex/ppdet/modeling/reid/resnet.py +0 -320
  1041. paddlex/ppdet/modeling/shape_spec.py +0 -33
  1042. paddlex/ppdet/modeling/tests/__init__.py +0 -13
  1043. paddlex/ppdet/modeling/tests/test_architectures.py +0 -59
  1044. paddlex/ppdet/modeling/tests/test_base.py +0 -75
  1045. paddlex/ppdet/modeling/tests/test_ops.py +0 -839
  1046. paddlex/ppdet/modeling/tests/test_yolov3_loss.py +0 -420
  1047. paddlex/ppdet/optimizer.py +0 -285
  1048. paddlex/ppdet/slim/__init__.py +0 -62
  1049. paddlex/ppdet/slim/distill.py +0 -111
  1050. paddlex/ppdet/slim/prune.py +0 -85
  1051. paddlex/ppdet/slim/quant.py +0 -52
  1052. paddlex/ppdet/utils/__init__.py +0 -13
  1053. paddlex/ppdet/utils/check.py +0 -93
  1054. paddlex/ppdet/utils/checkpoint.py +0 -216
  1055. paddlex/ppdet/utils/cli.py +0 -151
  1056. paddlex/ppdet/utils/colormap.py +0 -56
  1057. paddlex/ppdet/utils/download.py +0 -477
  1058. paddlex/ppdet/utils/logger.py +0 -71
  1059. paddlex/ppdet/utils/stats.py +0 -95
  1060. paddlex/ppdet/utils/visualizer.py +0 -292
  1061. paddlex/ppdet/utils/voc_utils.py +0 -87
  1062. paddlex/seg.py +0 -38
  1063. paddlex/tools/__init__.py +0 -16
  1064. paddlex/tools/convert.py +0 -52
  1065. paddlex/tools/dataset_conversion/__init__.py +0 -24
  1066. paddlex/tools/dataset_conversion/x2coco.py +0 -379
  1067. paddlex/tools/dataset_conversion/x2imagenet.py +0 -82
  1068. paddlex/tools/dataset_conversion/x2seg.py +0 -343
  1069. paddlex/tools/dataset_conversion/x2voc.py +0 -230
  1070. paddlex/tools/dataset_split/__init__.py +0 -23
  1071. paddlex/tools/dataset_split/coco_split.py +0 -69
  1072. paddlex/tools/dataset_split/imagenet_split.py +0 -75
  1073. paddlex/tools/dataset_split/seg_split.py +0 -96
  1074. paddlex/tools/dataset_split/utils.py +0 -75
  1075. paddlex/tools/dataset_split/voc_split.py +0 -91
  1076. paddlex/tools/split.py +0 -41
  1077. paddlex/utils/checkpoint.py +0 -439
  1078. paddlex/utils/env.py +0 -71
  1079. paddlex/utils/shm.py +0 -67
  1080. paddlex/utils/stats.py +0 -68
  1081. paddlex/utils/utils.py +0 -140
  1082. paddlex-2.0.0rc4.dist-info/LICENSE +0 -201
  1083. paddlex-2.0.0rc4.dist-info/METADATA +0 -29
  1084. paddlex-2.0.0rc4.dist-info/RECORD +0 -445
  1085. paddlex-2.0.0rc4.dist-info/WHEEL +0 -5
  1086. paddlex-2.0.0rc4.dist-info/entry_points.txt +0 -3
  1087. paddlex-2.0.0rc4.dist-info/top_level.txt +0 -2
@@ -1,1034 +0,0 @@
1
- # Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- import paddle
16
- import paddle.nn as nn
17
- import paddle.nn.functional as F
18
- from paddle import ParamAttr
19
- from paddlex.ppdet.core.workspace import register, serializable
20
- from ..backbones.darknet import ConvBNLayer
21
- from ..shape_spec import ShapeSpec
22
-
23
- __all__ = ['YOLOv3FPN', 'PPYOLOFPN', 'PPYOLOTinyFPN', 'PPYOLOPAN']
24
-
25
-
26
- def add_coord(x, data_format):
27
- b = x.shape[0]
28
- if data_format == 'NCHW':
29
- h = x.shape[2]
30
- w = x.shape[3]
31
- else:
32
- h = x.shape[1]
33
- w = x.shape[2]
34
-
35
- gx = paddle.arange(w, dtype='float32') / (w - 1.) * 2.0 - 1.
36
- if data_format == 'NCHW':
37
- gx = gx.reshape([1, 1, 1, w]).expand([b, 1, h, w])
38
- else:
39
- gx = gx.reshape([1, 1, w, 1]).expand([b, h, w, 1])
40
- gx.stop_gradient = True
41
-
42
- gy = paddle.arange(h, dtype='float32') / (h - 1.) * 2.0 - 1.
43
- if data_format == 'NCHW':
44
- gy = gy.reshape([1, 1, h, 1]).expand([b, 1, h, w])
45
- else:
46
- gy = gy.reshape([1, h, 1, 1]).expand([b, h, w, 1])
47
- gy.stop_gradient = True
48
-
49
- return gx, gy
50
-
51
-
52
- class YoloDetBlock(nn.Layer):
53
- def __init__(self,
54
- ch_in,
55
- channel,
56
- norm_type,
57
- freeze_norm=False,
58
- name='',
59
- data_format='NCHW'):
60
- """
61
- YOLODetBlock layer for yolov3, see https://arxiv.org/abs/1804.02767
62
-
63
- Args:
64
- ch_in (int): input channel
65
- channel (int): base channel
66
- norm_type (str): batch norm type
67
- freeze_norm (bool): whether to freeze norm, default False
68
- name (str): layer name
69
- data_format (str): data format, NCHW or NHWC
70
- """
71
- super(YoloDetBlock, self).__init__()
72
- self.ch_in = ch_in
73
- self.channel = channel
74
- assert channel % 2 == 0, \
75
- "channel {} cannot be divided by 2".format(channel)
76
- conv_def = [
77
- ['conv0', ch_in, channel, 1, '.0.0'],
78
- ['conv1', channel, channel * 2, 3, '.0.1'],
79
- ['conv2', channel * 2, channel, 1, '.1.0'],
80
- ['conv3', channel, channel * 2, 3, '.1.1'],
81
- ['route', channel * 2, channel, 1, '.2'],
82
- ]
83
-
84
- self.conv_module = nn.Sequential()
85
- for idx, (conv_name, ch_in, ch_out, filter_size,
86
- post_name) in enumerate(conv_def):
87
- self.conv_module.add_sublayer(
88
- conv_name,
89
- ConvBNLayer(
90
- ch_in=ch_in,
91
- ch_out=ch_out,
92
- filter_size=filter_size,
93
- padding=(filter_size - 1) // 2,
94
- norm_type=norm_type,
95
- freeze_norm=freeze_norm,
96
- data_format=data_format,
97
- name=name + post_name))
98
-
99
- self.tip = ConvBNLayer(
100
- ch_in=channel,
101
- ch_out=channel * 2,
102
- filter_size=3,
103
- padding=1,
104
- norm_type=norm_type,
105
- freeze_norm=freeze_norm,
106
- data_format=data_format,
107
- name=name + '.tip')
108
-
109
- def forward(self, inputs):
110
- route = self.conv_module(inputs)
111
- tip = self.tip(route)
112
- return route, tip
113
-
114
-
115
- class SPP(nn.Layer):
116
- def __init__(self,
117
- ch_in,
118
- ch_out,
119
- k,
120
- pool_size,
121
- norm_type,
122
- freeze_norm=False,
123
- name='',
124
- act='leaky',
125
- data_format='NCHW'):
126
- """
127
- SPP layer, which consist of four pooling layer follwed by conv layer
128
-
129
- Args:
130
- ch_in (int): input channel of conv layer
131
- ch_out (int): output channel of conv layer
132
- k (int): kernel size of conv layer
133
- norm_type (str): batch norm type
134
- freeze_norm (bool): whether to freeze norm, default False
135
- name (str): layer name
136
- act (str): activation function
137
- data_format (str): data format, NCHW or NHWC
138
- """
139
- super(SPP, self).__init__()
140
- self.pool = []
141
- self.data_format = data_format
142
- for size in pool_size:
143
- pool = self.add_sublayer(
144
- '{}.pool1'.format(name),
145
- nn.MaxPool2D(
146
- kernel_size=size,
147
- stride=1,
148
- padding=size // 2,
149
- data_format=data_format,
150
- ceil_mode=False))
151
- self.pool.append(pool)
152
- self.conv = ConvBNLayer(
153
- ch_in,
154
- ch_out,
155
- k,
156
- padding=k // 2,
157
- norm_type=norm_type,
158
- freeze_norm=freeze_norm,
159
- name=name,
160
- act=act,
161
- data_format=data_format)
162
-
163
- def forward(self, x):
164
- outs = [x]
165
- for pool in self.pool:
166
- outs.append(pool(x))
167
- if self.data_format == "NCHW":
168
- y = paddle.concat(outs, axis=1)
169
- else:
170
- y = paddle.concat(outs, axis=-1)
171
-
172
- y = self.conv(y)
173
- return y
174
-
175
-
176
- class DropBlock(nn.Layer):
177
- def __init__(self, block_size, keep_prob, name, data_format='NCHW'):
178
- """
179
- DropBlock layer, see https://arxiv.org/abs/1810.12890
180
-
181
- Args:
182
- block_size (int): block size
183
- keep_prob (int): keep probability
184
- name (str): layer name
185
- data_format (str): data format, NCHW or NHWC
186
- """
187
- super(DropBlock, self).__init__()
188
- self.block_size = block_size
189
- self.keep_prob = keep_prob
190
- self.name = name
191
- self.data_format = data_format
192
-
193
- def forward(self, x):
194
- if not self.training or self.keep_prob == 1:
195
- return x
196
- else:
197
- gamma = (1. - self.keep_prob) / (self.block_size**2)
198
- if self.data_format == 'NCHW':
199
- shape = x.shape[2:]
200
- else:
201
- shape = x.shape[1:3]
202
- for s in shape:
203
- gamma *= s / (s - self.block_size + 1)
204
-
205
- matrix = paddle.cast(
206
- paddle.rand(x.shape, x.dtype) < gamma, x.dtype)
207
- mask_inv = F.max_pool2d(
208
- matrix,
209
- self.block_size,
210
- stride=1,
211
- padding=self.block_size // 2,
212
- data_format=self.data_format)
213
- mask = 1. - mask_inv
214
- y = x * mask * (mask.numel() / mask.sum())
215
- return y
216
-
217
-
218
- class CoordConv(nn.Layer):
219
- def __init__(self,
220
- ch_in,
221
- ch_out,
222
- filter_size,
223
- padding,
224
- norm_type,
225
- freeze_norm=False,
226
- name='',
227
- data_format='NCHW'):
228
- """
229
- CoordConv layer
230
-
231
- Args:
232
- ch_in (int): input channel
233
- ch_out (int): output channel
234
- filter_size (int): filter size, default 3
235
- padding (int): padding size, default 0
236
- norm_type (str): batch norm type, default bn
237
- name (str): layer name
238
- data_format (str): data format, NCHW or NHWC
239
-
240
- """
241
- super(CoordConv, self).__init__()
242
- self.conv = ConvBNLayer(
243
- ch_in + 2,
244
- ch_out,
245
- filter_size=filter_size,
246
- padding=padding,
247
- norm_type=norm_type,
248
- freeze_norm=freeze_norm,
249
- data_format=data_format,
250
- name=name)
251
- self.data_format = data_format
252
-
253
- def forward(self, x):
254
- gx, gy = add_coord(x, self.data_format)
255
- if self.data_format == 'NCHW':
256
- y = paddle.concat([x, gx, gy], axis=1)
257
- else:
258
- y = paddle.concat([x, gx, gy], axis=-1)
259
- y = self.conv(y)
260
- return y
261
-
262
-
263
- class PPYOLODetBlock(nn.Layer):
264
- def __init__(self, cfg, name, data_format='NCHW'):
265
- """
266
- PPYOLODetBlock layer
267
-
268
- Args:
269
- cfg (list): layer configs for this block
270
- name (str): block name
271
- data_format (str): data format, NCHW or NHWC
272
- """
273
- super(PPYOLODetBlock, self).__init__()
274
- self.conv_module = nn.Sequential()
275
- for idx, (conv_name, layer, args, kwargs) in enumerate(cfg[:-1]):
276
- kwargs.update(
277
- name='{}.{}'.format(name, conv_name), data_format=data_format)
278
- self.conv_module.add_sublayer(conv_name, layer(*args, **kwargs))
279
-
280
- conv_name, layer, args, kwargs = cfg[-1]
281
- kwargs.update(
282
- name='{}.{}'.format(name, conv_name), data_format=data_format)
283
- self.tip = layer(*args, **kwargs)
284
-
285
- def forward(self, inputs):
286
- route = self.conv_module(inputs)
287
- tip = self.tip(route)
288
- return route, tip
289
-
290
-
291
- class PPYOLOTinyDetBlock(nn.Layer):
292
- def __init__(self,
293
- ch_in,
294
- ch_out,
295
- name,
296
- drop_block=False,
297
- block_size=3,
298
- keep_prob=0.9,
299
- data_format='NCHW'):
300
- """
301
- PPYOLO Tiny DetBlock layer
302
- Args:
303
- ch_in (list): input channel number
304
- ch_out (list): output channel number
305
- name (str): block name
306
- drop_block: whether user DropBlock
307
- block_size: drop block size
308
- keep_prob: probability to keep block in DropBlock
309
- data_format (str): data format, NCHW or NHWC
310
- """
311
- super(PPYOLOTinyDetBlock, self).__init__()
312
- self.drop_block_ = drop_block
313
- self.conv_module = nn.Sequential()
314
-
315
- cfgs = [
316
- # name, in channels, out channels, filter_size,
317
- # stride, padding, groups
318
- ['.0', ch_in, ch_out, 1, 1, 0, 1],
319
- ['.1', ch_out, ch_out, 5, 1, 2, ch_out],
320
- ['.2', ch_out, ch_out, 1, 1, 0, 1],
321
- ['.route', ch_out, ch_out, 5, 1, 2, ch_out],
322
- ]
323
- for cfg in cfgs:
324
- conv_name, conv_ch_in, conv_ch_out, filter_size, stride, padding, \
325
- groups = cfg
326
- self.conv_module.add_sublayer(
327
- name + conv_name,
328
- ConvBNLayer(
329
- ch_in=conv_ch_in,
330
- ch_out=conv_ch_out,
331
- filter_size=filter_size,
332
- stride=stride,
333
- padding=padding,
334
- groups=groups,
335
- name=name + conv_name))
336
-
337
- self.tip = ConvBNLayer(
338
- ch_in=ch_out,
339
- ch_out=ch_out,
340
- filter_size=1,
341
- stride=1,
342
- padding=0,
343
- groups=1,
344
- name=name + conv_name)
345
-
346
- if self.drop_block_:
347
- self.drop_block = DropBlock(
348
- block_size=block_size,
349
- keep_prob=keep_prob,
350
- data_format=data_format,
351
- name=name + '.dropblock')
352
-
353
- def forward(self, inputs):
354
- if self.drop_block_:
355
- inputs = self.drop_block(inputs)
356
- route = self.conv_module(inputs)
357
- tip = self.tip(route)
358
- return route, tip
359
-
360
-
361
- class PPYOLODetBlockCSP(nn.Layer):
362
- def __init__(self,
363
- cfg,
364
- ch_in,
365
- ch_out,
366
- act,
367
- norm_type,
368
- name,
369
- data_format='NCHW'):
370
- """
371
- PPYOLODetBlockCSP layer
372
-
373
- Args:
374
- cfg (list): layer configs for this block
375
- ch_in (int): input channel
376
- ch_out (int): output channel
377
- act (str): default mish
378
- name (str): block name
379
- data_format (str): data format, NCHW or NHWC
380
- """
381
- super(PPYOLODetBlockCSP, self).__init__()
382
- self.data_format = data_format
383
- self.conv1 = ConvBNLayer(
384
- ch_in,
385
- ch_out,
386
- 1,
387
- padding=0,
388
- act=act,
389
- norm_type=norm_type,
390
- name=name + '.left',
391
- data_format=data_format)
392
- self.conv2 = ConvBNLayer(
393
- ch_in,
394
- ch_out,
395
- 1,
396
- padding=0,
397
- act=act,
398
- norm_type=norm_type,
399
- name=name + '.right',
400
- data_format=data_format)
401
- self.conv3 = ConvBNLayer(
402
- ch_out * 2,
403
- ch_out * 2,
404
- 1,
405
- padding=0,
406
- act=act,
407
- norm_type=norm_type,
408
- name=name,
409
- data_format=data_format)
410
- self.conv_module = nn.Sequential()
411
- for idx, (layer_name, layer, args, kwargs) in enumerate(cfg):
412
- kwargs.update(name=name + layer_name, data_format=data_format)
413
- self.conv_module.add_sublayer(layer_name, layer(*args, **kwargs))
414
-
415
- def forward(self, inputs):
416
- conv_left = self.conv1(inputs)
417
- conv_right = self.conv2(inputs)
418
- conv_left = self.conv_module(conv_left)
419
- if self.data_format == 'NCHW':
420
- conv = paddle.concat([conv_left, conv_right], axis=1)
421
- else:
422
- conv = paddle.concat([conv_left, conv_right], axis=-1)
423
-
424
- conv = self.conv3(conv)
425
- return conv, conv
426
-
427
-
428
- @register
429
- @serializable
430
- class YOLOv3FPN(nn.Layer):
431
- __shared__ = ['norm_type', 'data_format']
432
-
433
- def __init__(self,
434
- in_channels=[256, 512, 1024],
435
- norm_type='bn',
436
- freeze_norm=False,
437
- data_format='NCHW'):
438
- """
439
- YOLOv3FPN layer
440
-
441
- Args:
442
- in_channels (list): input channels for fpn
443
- norm_type (str): batch norm type, default bn
444
- data_format (str): data format, NCHW or NHWC
445
-
446
- """
447
- super(YOLOv3FPN, self).__init__()
448
- assert len(in_channels) > 0, "in_channels length should > 0"
449
- self.in_channels = in_channels
450
- self.num_blocks = len(in_channels)
451
-
452
- self._out_channels = []
453
- self.yolo_blocks = []
454
- self.routes = []
455
- self.data_format = data_format
456
- for i in range(self.num_blocks):
457
- name = 'yolo_block.{}'.format(i)
458
- in_channel = in_channels[-i - 1]
459
- if i > 0:
460
- in_channel += 512 // (2**i)
461
- yolo_block = self.add_sublayer(
462
- name,
463
- YoloDetBlock(
464
- in_channel,
465
- channel=512 // (2**i),
466
- norm_type=norm_type,
467
- freeze_norm=freeze_norm,
468
- data_format=data_format,
469
- name=name))
470
- self.yolo_blocks.append(yolo_block)
471
- # tip layer output channel doubled
472
- self._out_channels.append(1024 // (2**i))
473
-
474
- if i < self.num_blocks - 1:
475
- name = 'yolo_transition.{}'.format(i)
476
- route = self.add_sublayer(
477
- name,
478
- ConvBNLayer(
479
- ch_in=512 // (2**i),
480
- ch_out=256 // (2**i),
481
- filter_size=1,
482
- stride=1,
483
- padding=0,
484
- norm_type=norm_type,
485
- freeze_norm=freeze_norm,
486
- data_format=data_format,
487
- name=name))
488
- self.routes.append(route)
489
-
490
- def forward(self, blocks, for_mot=False):
491
- assert len(blocks) == self.num_blocks
492
- blocks = blocks[::-1]
493
- yolo_feats = []
494
-
495
- # add embedding features output for multi-object tracking model
496
- if for_mot:
497
- emb_feats = []
498
-
499
- for i, block in enumerate(blocks):
500
- if i > 0:
501
- if self.data_format == 'NCHW':
502
- block = paddle.concat([route, block], axis=1)
503
- else:
504
- block = paddle.concat([route, block], axis=-1)
505
- route, tip = self.yolo_blocks[i](block)
506
- yolo_feats.append(tip)
507
-
508
- if for_mot:
509
- # add embedding features output
510
- emb_feats.append(route)
511
-
512
- if i < self.num_blocks - 1:
513
- route = self.routes[i](route)
514
- route = F.interpolate(
515
- route, scale_factor=2., data_format=self.data_format)
516
-
517
- if for_mot:
518
- return {'yolo_feats': yolo_feats, 'emb_feats': emb_feats}
519
- else:
520
- return yolo_feats
521
-
522
- @classmethod
523
- def from_config(cls, cfg, input_shape):
524
- return {'in_channels': [i.channels for i in input_shape], }
525
-
526
- @property
527
- def out_shape(self):
528
- return [ShapeSpec(channels=c) for c in self._out_channels]
529
-
530
-
531
- @register
532
- @serializable
533
- class PPYOLOFPN(nn.Layer):
534
- __shared__ = ['norm_type', 'data_format']
535
-
536
- def __init__(self,
537
- in_channels=[512, 1024, 2048],
538
- norm_type='bn',
539
- freeze_norm=False,
540
- data_format='NCHW',
541
- coord_conv=False,
542
- conv_block_num=2,
543
- drop_block=False,
544
- block_size=3,
545
- keep_prob=0.9,
546
- spp=False):
547
- """
548
- PPYOLOFPN layer
549
-
550
- Args:
551
- in_channels (list): input channels for fpn
552
- norm_type (str): batch norm type, default bn
553
- data_format (str): data format, NCHW or NHWC
554
- coord_conv (bool): whether use CoordConv or not
555
- conv_block_num (int): conv block num of each pan block
556
- drop_block (bool): whether use DropBlock or not
557
- block_size (int): block size of DropBlock
558
- keep_prob (float): keep probability of DropBlock
559
- spp (bool): whether use spp or not
560
-
561
- """
562
- super(PPYOLOFPN, self).__init__()
563
- assert len(in_channels) > 0, "in_channels length should > 0"
564
- self.in_channels = in_channels
565
- self.num_blocks = len(in_channels)
566
- # parse kwargs
567
- self.coord_conv = coord_conv
568
- self.drop_block = drop_block
569
- self.block_size = block_size
570
- self.keep_prob = keep_prob
571
- self.spp = spp
572
- self.conv_block_num = conv_block_num
573
- self.data_format = data_format
574
- if self.coord_conv:
575
- ConvLayer = CoordConv
576
- else:
577
- ConvLayer = ConvBNLayer
578
-
579
- if self.drop_block:
580
- dropblock_cfg = [[
581
- 'dropblock', DropBlock, [self.block_size, self.keep_prob],
582
- dict()
583
- ]]
584
- else:
585
- dropblock_cfg = []
586
-
587
- self._out_channels = []
588
- self.yolo_blocks = []
589
- self.routes = []
590
- for i, ch_in in enumerate(self.in_channels[::-1]):
591
- if i > 0:
592
- ch_in += 512 // (2**i)
593
- channel = 64 * (2**self.num_blocks) // (2**i)
594
- base_cfg = []
595
- c_in, c_out = ch_in, channel
596
- for j in range(self.conv_block_num):
597
- base_cfg += [
598
- [
599
- 'conv{}'.format(2 * j), ConvLayer, [c_in, c_out, 1],
600
- dict(
601
- padding=0,
602
- norm_type=norm_type,
603
- freeze_norm=freeze_norm)
604
- ],
605
- [
606
- 'conv{}'.format(2 * j + 1), ConvBNLayer,
607
- [c_out, c_out * 2, 3], dict(
608
- padding=1,
609
- norm_type=norm_type,
610
- freeze_norm=freeze_norm)
611
- ],
612
- ]
613
- c_in, c_out = c_out * 2, c_out
614
-
615
- base_cfg += [[
616
- 'route', ConvLayer, [c_in, c_out, 1], dict(
617
- padding=0, norm_type=norm_type, freeze_norm=freeze_norm)
618
- ], [
619
- 'tip', ConvLayer, [c_out, c_out * 2, 3], dict(
620
- padding=1, norm_type=norm_type, freeze_norm=freeze_norm)
621
- ]]
622
-
623
- if self.conv_block_num == 2:
624
- if i == 0:
625
- if self.spp:
626
- spp_cfg = [[
627
- 'spp', SPP, [channel * 4, channel, 1], dict(
628
- pool_size=[5, 9, 13],
629
- norm_type=norm_type,
630
- freeze_norm=freeze_norm)
631
- ]]
632
- else:
633
- spp_cfg = []
634
- cfg = base_cfg[0:3] + spp_cfg + base_cfg[
635
- 3:4] + dropblock_cfg + base_cfg[4:6]
636
- else:
637
- cfg = base_cfg[0:2] + dropblock_cfg + base_cfg[2:6]
638
- elif self.conv_block_num == 0:
639
- if self.spp and i == 0:
640
- spp_cfg = [[
641
- 'spp', SPP, [c_in * 4, c_in, 1], dict(
642
- pool_size=[5, 9, 13],
643
- norm_type=norm_type,
644
- freeze_norm=freeze_norm)
645
- ]]
646
- else:
647
- spp_cfg = []
648
- cfg = spp_cfg + dropblock_cfg + base_cfg
649
- name = 'yolo_block.{}'.format(i)
650
- yolo_block = self.add_sublayer(name, PPYOLODetBlock(cfg, name))
651
- self.yolo_blocks.append(yolo_block)
652
- self._out_channels.append(channel * 2)
653
- if i < self.num_blocks - 1:
654
- name = 'yolo_transition.{}'.format(i)
655
- route = self.add_sublayer(
656
- name,
657
- ConvBNLayer(
658
- ch_in=channel,
659
- ch_out=256 // (2**i),
660
- filter_size=1,
661
- stride=1,
662
- padding=0,
663
- norm_type=norm_type,
664
- freeze_norm=freeze_norm,
665
- data_format=data_format,
666
- name=name))
667
- self.routes.append(route)
668
-
669
- def forward(self, blocks, for_mot=False):
670
- assert len(blocks) == self.num_blocks
671
- blocks = blocks[::-1]
672
- yolo_feats = []
673
-
674
- # add embedding features output for multi-object tracking model
675
- if for_mot:
676
- emb_feats = []
677
-
678
- for i, block in enumerate(blocks):
679
- if i > 0:
680
- if self.data_format == 'NCHW':
681
- block = paddle.concat([route, block], axis=1)
682
- else:
683
- block = paddle.concat([route, block], axis=-1)
684
- route, tip = self.yolo_blocks[i](block)
685
- yolo_feats.append(tip)
686
-
687
- if for_mot:
688
- # add embedding features output
689
- emb_feats.append(route)
690
-
691
- if i < self.num_blocks - 1:
692
- route = self.routes[i](route)
693
- route = F.interpolate(
694
- route, scale_factor=2., data_format=self.data_format)
695
-
696
- if for_mot:
697
- return {'yolo_feats': yolo_feats, 'emb_feats': emb_feats}
698
- else:
699
- return yolo_feats
700
-
701
- @classmethod
702
- def from_config(cls, cfg, input_shape):
703
- return {'in_channels': [i.channels for i in input_shape], }
704
-
705
- @property
706
- def out_shape(self):
707
- return [ShapeSpec(channels=c) for c in self._out_channels]
708
-
709
-
710
- @register
711
- @serializable
712
- class PPYOLOTinyFPN(nn.Layer):
713
- __shared__ = ['norm_type', 'data_format']
714
-
715
- def __init__(self,
716
- in_channels=[80, 56, 34],
717
- detection_block_channels=[160, 128, 96],
718
- norm_type='bn',
719
- data_format='NCHW',
720
- **kwargs):
721
- """
722
- PPYOLO Tiny FPN layer
723
- Args:
724
- in_channels (list): input channels for fpn
725
- detection_block_channels (list): channels in fpn
726
- norm_type (str): batch norm type, default bn
727
- data_format (str): data format, NCHW or NHWC
728
- kwargs: extra key-value pairs, such as parameter of DropBlock and spp
729
- """
730
- super(PPYOLOTinyFPN, self).__init__()
731
- assert len(in_channels) > 0, "in_channels length should > 0"
732
- self.in_channels = in_channels[::-1]
733
- assert len(detection_block_channels
734
- ) > 0, "detection_block_channelslength should > 0"
735
- self.detection_block_channels = detection_block_channels
736
- self.data_format = data_format
737
- self.num_blocks = len(in_channels)
738
- # parse kwargs
739
- self.drop_block = kwargs.get('drop_block', False)
740
- self.block_size = kwargs.get('block_size', 3)
741
- self.keep_prob = kwargs.get('keep_prob', 0.9)
742
-
743
- self.spp_ = kwargs.get('spp', False)
744
- if self.spp_:
745
- self.spp = SPP(self.in_channels[0] * 4,
746
- self.in_channels[0],
747
- k=1,
748
- pool_size=[5, 9, 13],
749
- norm_type=norm_type,
750
- name='spp')
751
-
752
- self._out_channels = []
753
- self.yolo_blocks = []
754
- self.routes = []
755
- for i, (
756
- ch_in, ch_out
757
- ) in enumerate(zip(self.in_channels, self.detection_block_channels)):
758
- name = 'yolo_block.{}'.format(i)
759
- if i > 0:
760
- ch_in += self.detection_block_channels[i - 1]
761
- yolo_block = self.add_sublayer(
762
- name,
763
- PPYOLOTinyDetBlock(
764
- ch_in,
765
- ch_out,
766
- name,
767
- drop_block=self.drop_block,
768
- block_size=self.block_size,
769
- keep_prob=self.keep_prob))
770
- self.yolo_blocks.append(yolo_block)
771
- self._out_channels.append(ch_out)
772
-
773
- if i < self.num_blocks - 1:
774
- name = 'yolo_transition.{}'.format(i)
775
- route = self.add_sublayer(
776
- name,
777
- ConvBNLayer(
778
- ch_in=ch_out,
779
- ch_out=ch_out,
780
- filter_size=1,
781
- stride=1,
782
- padding=0,
783
- norm_type=norm_type,
784
- data_format=data_format,
785
- name=name))
786
- self.routes.append(route)
787
-
788
- def forward(self, blocks, for_mot=False):
789
- assert len(blocks) == self.num_blocks
790
- blocks = blocks[::-1]
791
- yolo_feats = []
792
-
793
- # add embedding features output for multi-object tracking model
794
- if for_mot:
795
- emb_feats = []
796
-
797
- for i, block in enumerate(blocks):
798
- if i == 0 and self.spp_:
799
- block = self.spp(block)
800
-
801
- if i > 0:
802
- if self.data_format == 'NCHW':
803
- block = paddle.concat([route, block], axis=1)
804
- else:
805
- block = paddle.concat([route, block], axis=-1)
806
- route, tip = self.yolo_blocks[i](block)
807
- yolo_feats.append(tip)
808
-
809
- if for_mot:
810
- # add embedding features output
811
- emb_feats.append(route)
812
-
813
- if i < self.num_blocks - 1:
814
- route = self.routes[i](route)
815
- route = F.interpolate(
816
- route, scale_factor=2., data_format=self.data_format)
817
-
818
- if for_mot:
819
- return {'yolo_feats': yolo_feats, 'emb_feats': emb_feats}
820
- else:
821
- return yolo_feats
822
-
823
- @classmethod
824
- def from_config(cls, cfg, input_shape):
825
- return {'in_channels': [i.channels for i in input_shape], }
826
-
827
- @property
828
- def out_shape(self):
829
- return [ShapeSpec(channels=c) for c in self._out_channels]
830
-
831
-
832
- @register
833
- @serializable
834
- class PPYOLOPAN(nn.Layer):
835
- __shared__ = ['norm_type', 'data_format']
836
-
837
- def __init__(self,
838
- in_channels=[512, 1024, 2048],
839
- norm_type='bn',
840
- data_format='NCHW',
841
- act='mish',
842
- conv_block_num=3,
843
- drop_block=False,
844
- block_size=3,
845
- keep_prob=0.9,
846
- spp=False):
847
- """
848
- PPYOLOPAN layer with SPP, DropBlock and CSP connection.
849
-
850
- Args:
851
- in_channels (list): input channels for fpn
852
- norm_type (str): batch norm type, default bn
853
- data_format (str): data format, NCHW or NHWC
854
- act (str): activation function, default mish
855
- conv_block_num (int): conv block num of each pan block
856
- drop_block (bool): whether use DropBlock or not
857
- block_size (int): block size of DropBlock
858
- keep_prob (float): keep probability of DropBlock
859
- spp (bool): whether use spp or not
860
-
861
- """
862
- super(PPYOLOPAN, self).__init__()
863
- assert len(in_channels) > 0, "in_channels length should > 0"
864
- self.in_channels = in_channels
865
- self.num_blocks = len(in_channels)
866
- # parse kwargs
867
- self.drop_block = drop_block
868
- self.block_size = block_size
869
- self.keep_prob = keep_prob
870
- self.spp = spp
871
- self.conv_block_num = conv_block_num
872
- self.data_format = data_format
873
- if self.drop_block:
874
- dropblock_cfg = [[
875
- 'dropblock', DropBlock, [self.block_size, self.keep_prob],
876
- dict()
877
- ]]
878
- else:
879
- dropblock_cfg = []
880
-
881
- # fpn
882
- self.fpn_blocks = []
883
- self.fpn_routes = []
884
- fpn_channels = []
885
- for i, ch_in in enumerate(self.in_channels[::-1]):
886
- if i > 0:
887
- ch_in += 512 // (2**(i - 1))
888
- channel = 512 // (2**i)
889
- base_cfg = []
890
- for j in range(self.conv_block_num):
891
- base_cfg += [
892
- # name, layer, args
893
- [
894
- '{}.0'.format(j), ConvBNLayer, [channel, channel, 1],
895
- dict(
896
- padding=0, act=act, norm_type=norm_type)
897
- ],
898
- [
899
- '{}.1'.format(j), ConvBNLayer, [channel, channel, 3],
900
- dict(
901
- padding=1, act=act, norm_type=norm_type)
902
- ]
903
- ]
904
-
905
- if i == 0 and self.spp:
906
- base_cfg[3] = [
907
- 'spp', SPP, [channel * 4, channel, 1], dict(
908
- pool_size=[5, 9, 13], act=act, norm_type=norm_type)
909
- ]
910
-
911
- cfg = base_cfg[:4] + dropblock_cfg + base_cfg[4:]
912
- name = 'fpn.{}'.format(i)
913
- fpn_block = self.add_sublayer(
914
- name,
915
- PPYOLODetBlockCSP(cfg, ch_in, channel, act, norm_type, name,
916
- data_format))
917
- self.fpn_blocks.append(fpn_block)
918
- fpn_channels.append(channel * 2)
919
- if i < self.num_blocks - 1:
920
- name = 'fpn_transition.{}'.format(i)
921
- route = self.add_sublayer(
922
- name,
923
- ConvBNLayer(
924
- ch_in=channel * 2,
925
- ch_out=channel,
926
- filter_size=1,
927
- stride=1,
928
- padding=0,
929
- act=act,
930
- norm_type=norm_type,
931
- data_format=data_format,
932
- name=name))
933
- self.fpn_routes.append(route)
934
- # pan
935
- self.pan_blocks = []
936
- self.pan_routes = []
937
- self._out_channels = [512 // (2**(self.num_blocks - 2)), ]
938
- for i in reversed(range(self.num_blocks - 1)):
939
- name = 'pan_transition.{}'.format(i)
940
- route = self.add_sublayer(
941
- name,
942
- ConvBNLayer(
943
- ch_in=fpn_channels[i + 1],
944
- ch_out=fpn_channels[i + 1],
945
- filter_size=3,
946
- stride=2,
947
- padding=1,
948
- act=act,
949
- norm_type=norm_type,
950
- data_format=data_format,
951
- name=name))
952
- self.pan_routes = [route, ] + self.pan_routes
953
- base_cfg = []
954
- ch_in = fpn_channels[i] + fpn_channels[i + 1]
955
- channel = 512 // (2**i)
956
- for j in range(self.conv_block_num):
957
- base_cfg += [
958
- # name, layer, args
959
- [
960
- '{}.0'.format(j), ConvBNLayer, [channel, channel, 1],
961
- dict(
962
- padding=0, act=act, norm_type=norm_type)
963
- ],
964
- [
965
- '{}.1'.format(j), ConvBNLayer, [channel, channel, 3],
966
- dict(
967
- padding=1, act=act, norm_type=norm_type)
968
- ]
969
- ]
970
-
971
- cfg = base_cfg[:4] + dropblock_cfg + base_cfg[4:]
972
- name = 'pan.{}'.format(i)
973
- pan_block = self.add_sublayer(
974
- name,
975
- PPYOLODetBlockCSP(cfg, ch_in, channel, act, norm_type, name,
976
- data_format))
977
-
978
- self.pan_blocks = [pan_block, ] + self.pan_blocks
979
- self._out_channels.append(channel * 2)
980
-
981
- self._out_channels = self._out_channels[::-1]
982
-
983
- def forward(self, blocks, for_mot=False):
984
- assert len(blocks) == self.num_blocks
985
- blocks = blocks[::-1]
986
- fpn_feats = []
987
-
988
- # add embedding features output for multi-object tracking model
989
- if for_mot:
990
- emb_feats = []
991
-
992
- for i, block in enumerate(blocks):
993
- if i > 0:
994
- if self.data_format == 'NCHW':
995
- block = paddle.concat([route, block], axis=1)
996
- else:
997
- block = paddle.concat([route, block], axis=-1)
998
- route, tip = self.fpn_blocks[i](block)
999
- fpn_feats.append(tip)
1000
-
1001
- if for_mot:
1002
- # add embedding features output
1003
- emb_feats.append(route)
1004
-
1005
- if i < self.num_blocks - 1:
1006
- route = self.fpn_routes[i](route)
1007
- route = F.interpolate(
1008
- route, scale_factor=2., data_format=self.data_format)
1009
-
1010
- pan_feats = [fpn_feats[-1], ]
1011
- route = fpn_feats[self.num_blocks - 1]
1012
- for i in reversed(range(self.num_blocks - 1)):
1013
- block = fpn_feats[i]
1014
- route = self.pan_routes[i](route)
1015
- if self.data_format == 'NCHW':
1016
- block = paddle.concat([route, block], axis=1)
1017
- else:
1018
- block = paddle.concat([route, block], axis=-1)
1019
-
1020
- route, tip = self.pan_blocks[i](block)
1021
- pan_feats.append(tip)
1022
-
1023
- if for_mot:
1024
- return {'yolo_feats': pan_feats[::-1], 'emb_feats': emb_feats}
1025
- else:
1026
- return pan_feats[::-1]
1027
-
1028
- @classmethod
1029
- def from_config(cls, cfg, input_shape):
1030
- return {'in_channels': [i.channels for i in input_shape], }
1031
-
1032
- @property
1033
- def out_shape(self):
1034
- return [ShapeSpec(channels=c) for c in self._out_channels]