paddlex 3.0.0rc0__py3-none-any.whl → 3.0.1__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.
- paddlex/.version +1 -1
- paddlex/__init__.py +17 -34
- paddlex/__main__.py +1 -1
- paddlex/configs/modules/chart_parsing/PP-Chart2Table.yaml +13 -0
- paddlex/configs/modules/doc_vlm/PP-DocBee-2B.yaml +14 -0
- paddlex/configs/modules/doc_vlm/PP-DocBee-7B.yaml +14 -0
- paddlex/configs/modules/doc_vlm/PP-DocBee2-3B.yaml +14 -0
- paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-L.yaml +40 -0
- paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-M.yaml +40 -0
- paddlex/configs/modules/formula_recognition/PP-FormulaNet_plus-S.yaml +40 -0
- paddlex/configs/modules/layout_detection/PP-DocBlockLayout.yaml +40 -0
- paddlex/configs/modules/layout_detection/PP-DocLayout-L.yaml +2 -2
- paddlex/configs/modules/layout_detection/PP-DocLayout-M.yaml +2 -2
- paddlex/configs/modules/layout_detection/PP-DocLayout-S.yaml +2 -2
- paddlex/configs/modules/layout_detection/PP-DocLayout_plus-L.yaml +40 -0
- paddlex/configs/modules/open_vocabulary_detection/YOLO-Worldv2-L.yaml +13 -0
- paddlex/configs/modules/text_detection/PP-OCRv5_mobile_det.yaml +40 -0
- paddlex/configs/modules/text_detection/PP-OCRv5_server_det.yaml +40 -0
- paddlex/configs/modules/text_recognition/PP-OCRv5_mobile_rec.yaml +39 -0
- paddlex/configs/modules/text_recognition/PP-OCRv5_server_rec.yaml +39 -0
- paddlex/configs/modules/textline_orientation/PP-LCNet_x1_0_textline_ori.yaml +41 -0
- paddlex/configs/pipelines/OCR.yaml +7 -6
- paddlex/configs/pipelines/PP-ChatOCRv3-doc.yaml +3 -1
- paddlex/configs/pipelines/PP-ChatOCRv4-doc.yaml +91 -34
- paddlex/configs/pipelines/PP-StructureV3.yaml +72 -72
- paddlex/configs/pipelines/anomaly_detection.yaml +1 -1
- paddlex/configs/pipelines/doc_understanding.yaml +9 -0
- paddlex/configs/pipelines/formula_recognition.yaml +2 -2
- paddlex/configs/pipelines/layout_parsing.yaml +3 -2
- paddlex/configs/pipelines/seal_recognition.yaml +1 -0
- paddlex/configs/pipelines/table_recognition.yaml +2 -1
- paddlex/configs/pipelines/table_recognition_v2.yaml +7 -1
- paddlex/configs/pipelines/ts_anomaly_detection.yaml +1 -1
- paddlex/configs/pipelines/ts_classification.yaml +1 -1
- paddlex/configs/pipelines/ts_forecast.yaml +1 -1
- paddlex/constants.py +17 -0
- paddlex/engine.py +7 -5
- paddlex/hpip_links.html +23 -11
- paddlex/inference/__init__.py +3 -3
- paddlex/inference/common/__init__.py +1 -1
- paddlex/inference/common/batch_sampler/__init__.py +5 -4
- paddlex/inference/common/batch_sampler/audio_batch_sampler.py +5 -6
- paddlex/inference/common/batch_sampler/base_batch_sampler.py +20 -16
- paddlex/inference/common/batch_sampler/det_3d_batch_sampler.py +4 -7
- paddlex/inference/common/batch_sampler/doc_vlm_batch_sampler.py +87 -0
- paddlex/inference/common/batch_sampler/image_batch_sampler.py +45 -60
- paddlex/inference/common/batch_sampler/ts_batch_sampler.py +9 -10
- paddlex/inference/common/batch_sampler/video_batch_sampler.py +2 -22
- paddlex/inference/common/reader/__init__.py +4 -4
- paddlex/inference/common/reader/audio_reader.py +3 -3
- paddlex/inference/common/reader/det_3d_reader.py +7 -5
- paddlex/inference/common/reader/image_reader.py +16 -12
- paddlex/inference/common/reader/ts_reader.py +3 -2
- paddlex/inference/common/reader/video_reader.py +3 -3
- paddlex/inference/common/result/__init__.py +7 -7
- paddlex/inference/common/result/base_cv_result.py +12 -2
- paddlex/inference/common/result/base_result.py +7 -5
- paddlex/inference/common/result/base_ts_result.py +1 -2
- paddlex/inference/common/result/base_video_result.py +2 -2
- paddlex/inference/common/result/mixin.py +31 -25
- paddlex/inference/models/__init__.py +41 -85
- paddlex/inference/models/anomaly_detection/__init__.py +1 -1
- paddlex/inference/models/anomaly_detection/predictor.py +9 -19
- paddlex/inference/models/anomaly_detection/processors.py +9 -2
- paddlex/inference/models/anomaly_detection/result.py +3 -2
- paddlex/inference/models/base/__init__.py +2 -2
- paddlex/inference/models/base/predictor/__init__.py +1 -2
- paddlex/inference/models/base/predictor/base_predictor.py +278 -39
- paddlex/inference/models/common/__init__.py +6 -15
- paddlex/inference/models/common/static_infer.py +724 -251
- paddlex/inference/models/common/tokenizer/__init__.py +7 -3
- paddlex/inference/models/common/tokenizer/bert_tokenizer.py +1 -1
- paddlex/inference/models/common/tokenizer/clip_tokenizer.py +609 -0
- paddlex/inference/models/common/tokenizer/gpt_tokenizer.py +9 -7
- paddlex/inference/models/common/tokenizer/qwen2_5_tokenizer.py +112 -0
- paddlex/inference/models/common/tokenizer/qwen2_tokenizer.py +438 -0
- paddlex/inference/models/common/tokenizer/qwen_tokenizer.py +288 -0
- paddlex/inference/models/common/tokenizer/tokenizer_utils.py +85 -77
- paddlex/inference/models/common/tokenizer/tokenizer_utils_base.py +339 -123
- paddlex/inference/models/common/tokenizer/utils.py +1 -1
- paddlex/inference/models/common/tokenizer/vocab.py +8 -8
- paddlex/inference/models/common/ts/__init__.py +1 -1
- paddlex/inference/models/common/ts/funcs.py +13 -6
- paddlex/inference/models/common/ts/processors.py +14 -5
- paddlex/inference/models/common/vision/__init__.py +3 -3
- paddlex/inference/models/common/vision/funcs.py +17 -12
- paddlex/inference/models/common/vision/processors.py +61 -46
- paddlex/inference/models/common/vlm/__init__.py +13 -0
- paddlex/inference/models/common/vlm/activations.py +189 -0
- paddlex/inference/models/common/vlm/bert_padding.py +127 -0
- paddlex/inference/models/common/vlm/conversion_utils.py +99 -0
- paddlex/inference/models/common/vlm/distributed.py +229 -0
- paddlex/inference/models/common/vlm/flash_attn_utils.py +119 -0
- paddlex/inference/models/common/vlm/fusion_ops.py +205 -0
- paddlex/inference/models/common/vlm/generation/__init__.py +34 -0
- paddlex/inference/models/common/vlm/generation/configuration_utils.py +533 -0
- paddlex/inference/models/common/vlm/generation/logits_process.py +730 -0
- paddlex/inference/models/common/vlm/generation/stopping_criteria.py +106 -0
- paddlex/inference/models/common/vlm/generation/utils.py +2162 -0
- paddlex/inference/models/common/vlm/transformers/__init__.py +16 -0
- paddlex/inference/models/common/vlm/transformers/configuration_utils.py +1037 -0
- paddlex/inference/models/common/vlm/transformers/conversion_utils.py +408 -0
- paddlex/inference/models/common/vlm/transformers/model_outputs.py +1612 -0
- paddlex/inference/models/common/vlm/transformers/model_utils.py +2014 -0
- paddlex/inference/models/common/vlm/transformers/utils.py +178 -0
- paddlex/inference/models/common/vlm/utils.py +109 -0
- paddlex/inference/models/doc_vlm/__init__.py +15 -0
- paddlex/inference/models/doc_vlm/modeling/GOT_ocr_2_0.py +830 -0
- paddlex/inference/models/doc_vlm/modeling/__init__.py +17 -0
- paddlex/inference/models/doc_vlm/modeling/qwen2.py +1606 -0
- paddlex/inference/models/doc_vlm/modeling/qwen2_5_vl.py +3006 -0
- paddlex/inference/models/doc_vlm/modeling/qwen2_vl.py +2495 -0
- paddlex/inference/models/doc_vlm/predictor.py +253 -0
- paddlex/inference/models/doc_vlm/processors/GOT_ocr_2_0.py +97 -0
- paddlex/inference/models/doc_vlm/processors/__init__.py +17 -0
- paddlex/inference/models/doc_vlm/processors/common.py +561 -0
- paddlex/inference/models/doc_vlm/processors/qwen2_5_vl.py +548 -0
- paddlex/inference/models/doc_vlm/processors/qwen2_vl.py +543 -0
- paddlex/inference/models/doc_vlm/result.py +21 -0
- paddlex/inference/models/face_feature/__init__.py +1 -1
- paddlex/inference/models/face_feature/predictor.py +2 -1
- paddlex/inference/models/formula_recognition/__init__.py +1 -1
- paddlex/inference/models/formula_recognition/predictor.py +18 -28
- paddlex/inference/models/formula_recognition/processors.py +126 -97
- paddlex/inference/models/formula_recognition/result.py +43 -35
- paddlex/inference/models/image_classification/__init__.py +1 -1
- paddlex/inference/models/image_classification/predictor.py +9 -19
- paddlex/inference/models/image_classification/processors.py +4 -2
- paddlex/inference/models/image_classification/result.py +4 -3
- paddlex/inference/models/image_feature/__init__.py +1 -1
- paddlex/inference/models/image_feature/predictor.py +9 -19
- paddlex/inference/models/image_feature/processors.py +7 -5
- paddlex/inference/models/image_feature/result.py +2 -3
- paddlex/inference/models/image_multilabel_classification/__init__.py +1 -1
- paddlex/inference/models/image_multilabel_classification/predictor.py +7 -6
- paddlex/inference/models/image_multilabel_classification/processors.py +6 -2
- paddlex/inference/models/image_multilabel_classification/result.py +4 -3
- paddlex/inference/models/image_unwarping/__init__.py +1 -1
- paddlex/inference/models/image_unwarping/predictor.py +8 -16
- paddlex/inference/models/image_unwarping/processors.py +6 -2
- paddlex/inference/models/image_unwarping/result.py +4 -2
- paddlex/inference/models/instance_segmentation/__init__.py +1 -1
- paddlex/inference/models/instance_segmentation/predictor.py +7 -15
- paddlex/inference/models/instance_segmentation/processors.py +4 -7
- paddlex/inference/models/instance_segmentation/result.py +11 -10
- paddlex/inference/models/keypoint_detection/__init__.py +1 -1
- paddlex/inference/models/keypoint_detection/predictor.py +5 -3
- paddlex/inference/models/keypoint_detection/processors.py +11 -3
- paddlex/inference/models/keypoint_detection/result.py +9 -4
- paddlex/inference/models/{3d_bev_detection → m_3d_bev_detection}/__init__.py +1 -1
- paddlex/inference/models/{3d_bev_detection → m_3d_bev_detection}/predictor.py +15 -26
- paddlex/inference/models/{3d_bev_detection → m_3d_bev_detection}/processors.py +26 -14
- paddlex/inference/models/{3d_bev_detection → m_3d_bev_detection}/result.py +15 -12
- paddlex/inference/models/{3d_bev_detection → m_3d_bev_detection}/visualizer_3d.py +77 -39
- paddlex/inference/models/multilingual_speech_recognition/__init__.py +1 -1
- paddlex/inference/models/multilingual_speech_recognition/predictor.py +11 -15
- paddlex/inference/models/multilingual_speech_recognition/processors.py +45 -53
- paddlex/inference/models/multilingual_speech_recognition/result.py +1 -1
- paddlex/inference/models/object_detection/__init__.py +1 -1
- paddlex/inference/models/object_detection/predictor.py +8 -12
- paddlex/inference/models/object_detection/processors.py +63 -33
- paddlex/inference/models/object_detection/result.py +5 -4
- paddlex/inference/models/object_detection/utils.py +3 -1
- paddlex/inference/models/open_vocabulary_detection/__init__.py +1 -1
- paddlex/inference/models/open_vocabulary_detection/predictor.py +31 -14
- paddlex/inference/models/open_vocabulary_detection/processors/__init__.py +3 -2
- paddlex/inference/models/open_vocabulary_detection/processors/common.py +114 -0
- paddlex/inference/models/open_vocabulary_detection/processors/groundingdino_processors.py +19 -8
- paddlex/inference/models/open_vocabulary_detection/processors/yoloworld_processors.py +209 -0
- paddlex/inference/models/open_vocabulary_segmentation/__init__.py +1 -1
- paddlex/inference/models/open_vocabulary_segmentation/predictor.py +6 -13
- paddlex/inference/models/open_vocabulary_segmentation/processors/__init__.py +1 -1
- paddlex/inference/models/open_vocabulary_segmentation/processors/sam_processer.py +12 -12
- paddlex/inference/models/open_vocabulary_segmentation/results/__init__.py +1 -1
- paddlex/inference/models/open_vocabulary_segmentation/results/sam_result.py +11 -9
- paddlex/inference/models/semantic_segmentation/__init__.py +1 -1
- paddlex/inference/models/semantic_segmentation/predictor.py +9 -18
- paddlex/inference/models/semantic_segmentation/processors.py +11 -8
- paddlex/inference/models/semantic_segmentation/result.py +4 -3
- paddlex/inference/models/table_structure_recognition/__init__.py +1 -1
- paddlex/inference/models/table_structure_recognition/predictor.py +8 -18
- paddlex/inference/models/table_structure_recognition/processors.py +23 -29
- paddlex/inference/models/table_structure_recognition/result.py +8 -15
- paddlex/inference/models/text_detection/__init__.py +1 -1
- paddlex/inference/models/text_detection/predictor.py +24 -24
- paddlex/inference/models/text_detection/processors.py +116 -44
- paddlex/inference/models/text_detection/result.py +8 -13
- paddlex/inference/models/text_recognition/__init__.py +1 -1
- paddlex/inference/models/text_recognition/predictor.py +11 -19
- paddlex/inference/models/text_recognition/processors.py +27 -13
- paddlex/inference/models/text_recognition/result.py +3 -2
- paddlex/inference/models/ts_anomaly_detection/__init__.py +1 -1
- paddlex/inference/models/ts_anomaly_detection/predictor.py +12 -17
- paddlex/inference/models/ts_anomaly_detection/processors.py +6 -2
- paddlex/inference/models/ts_anomaly_detection/result.py +21 -10
- paddlex/inference/models/ts_classification/__init__.py +1 -1
- paddlex/inference/models/ts_classification/predictor.py +14 -27
- paddlex/inference/models/ts_classification/processors.py +7 -2
- paddlex/inference/models/ts_classification/result.py +21 -12
- paddlex/inference/models/ts_forecasting/__init__.py +1 -1
- paddlex/inference/models/ts_forecasting/predictor.py +13 -18
- paddlex/inference/models/ts_forecasting/processors.py +12 -3
- paddlex/inference/models/ts_forecasting/result.py +24 -11
- paddlex/inference/models/video_classification/__init__.py +1 -1
- paddlex/inference/models/video_classification/predictor.py +9 -15
- paddlex/inference/models/video_classification/processors.py +24 -24
- paddlex/inference/models/video_classification/result.py +7 -3
- paddlex/inference/models/video_detection/__init__.py +1 -1
- paddlex/inference/models/video_detection/predictor.py +8 -15
- paddlex/inference/models/video_detection/processors.py +24 -11
- paddlex/inference/models/video_detection/result.py +10 -5
- paddlex/inference/pipelines/__init__.py +48 -37
- paddlex/inference/pipelines/_parallel.py +172 -0
- paddlex/inference/pipelines/anomaly_detection/__init__.py +1 -1
- paddlex/inference/pipelines/anomaly_detection/pipeline.py +29 -9
- paddlex/inference/pipelines/attribute_recognition/__init__.py +1 -1
- paddlex/inference/pipelines/attribute_recognition/pipeline.py +24 -9
- paddlex/inference/pipelines/attribute_recognition/result.py +10 -8
- paddlex/inference/pipelines/base.py +43 -13
- paddlex/inference/pipelines/components/__init__.py +14 -8
- paddlex/inference/pipelines/components/chat_server/__init__.py +1 -1
- paddlex/inference/pipelines/components/chat_server/base.py +2 -2
- paddlex/inference/pipelines/components/chat_server/openai_bot_chat.py +8 -8
- paddlex/inference/pipelines/components/common/__init__.py +5 -4
- paddlex/inference/pipelines/components/common/base_operator.py +2 -1
- paddlex/inference/pipelines/components/common/base_result.py +3 -2
- paddlex/inference/pipelines/components/common/convert_points_and_boxes.py +1 -2
- paddlex/inference/pipelines/components/common/crop_image_regions.py +11 -5
- paddlex/inference/pipelines/components/common/seal_det_warp.py +44 -13
- paddlex/inference/pipelines/components/common/sort_boxes.py +4 -2
- paddlex/inference/pipelines/components/common/warp_image.py +50 -0
- paddlex/inference/pipelines/components/faisser.py +10 -5
- paddlex/inference/pipelines/components/prompt_engineering/__init__.py +2 -2
- paddlex/inference/pipelines/components/prompt_engineering/base.py +2 -2
- paddlex/inference/pipelines/components/prompt_engineering/generate_ensemble_prompt.py +2 -1
- paddlex/inference/pipelines/components/prompt_engineering/generate_kie_prompt.py +2 -2
- paddlex/inference/pipelines/components/retriever/__init__.py +2 -2
- paddlex/inference/pipelines/components/retriever/base.py +18 -16
- paddlex/inference/pipelines/components/retriever/openai_bot_retriever.py +2 -2
- paddlex/inference/pipelines/components/retriever/qianfan_bot_retriever.py +87 -84
- paddlex/inference/pipelines/components/utils/__init__.py +1 -1
- paddlex/inference/pipelines/components/utils/mixin.py +7 -7
- paddlex/inference/pipelines/doc_preprocessor/__init__.py +1 -1
- paddlex/inference/pipelines/doc_preprocessor/pipeline.py +70 -51
- paddlex/inference/pipelines/doc_preprocessor/result.py +5 -10
- paddlex/inference/pipelines/doc_understanding/__init__.py +15 -0
- paddlex/inference/pipelines/doc_understanding/pipeline.py +71 -0
- paddlex/inference/pipelines/face_recognition/__init__.py +1 -1
- paddlex/inference/pipelines/face_recognition/pipeline.py +3 -1
- paddlex/inference/pipelines/face_recognition/result.py +3 -2
- paddlex/inference/pipelines/formula_recognition/__init__.py +1 -1
- paddlex/inference/pipelines/formula_recognition/pipeline.py +137 -93
- paddlex/inference/pipelines/formula_recognition/result.py +20 -29
- paddlex/inference/pipelines/image_classification/__init__.py +1 -1
- paddlex/inference/pipelines/image_classification/pipeline.py +30 -11
- paddlex/inference/pipelines/image_multilabel_classification/__init__.py +1 -1
- paddlex/inference/pipelines/image_multilabel_classification/pipeline.py +31 -12
- paddlex/inference/pipelines/instance_segmentation/__init__.py +1 -1
- paddlex/inference/pipelines/instance_segmentation/pipeline.py +30 -9
- paddlex/inference/pipelines/keypoint_detection/__init__.py +1 -1
- paddlex/inference/pipelines/keypoint_detection/pipeline.py +30 -9
- paddlex/inference/pipelines/layout_parsing/__init__.py +1 -1
- paddlex/inference/pipelines/layout_parsing/pipeline.py +54 -56
- paddlex/inference/pipelines/layout_parsing/pipeline_v2.py +904 -261
- paddlex/inference/pipelines/layout_parsing/result.py +9 -21
- paddlex/inference/pipelines/layout_parsing/result_v2.py +525 -250
- paddlex/inference/pipelines/layout_parsing/setting.py +87 -0
- paddlex/inference/pipelines/layout_parsing/utils.py +570 -2004
- paddlex/inference/pipelines/layout_parsing/xycut_enhanced/__init__.py +16 -0
- paddlex/inference/pipelines/layout_parsing/xycut_enhanced/utils.py +1144 -0
- paddlex/inference/pipelines/layout_parsing/xycut_enhanced/xycuts.py +563 -0
- paddlex/inference/pipelines/{3d_bev_detection → m_3d_bev_detection}/__init__.py +1 -1
- paddlex/inference/pipelines/{3d_bev_detection → m_3d_bev_detection}/pipeline.py +17 -10
- paddlex/inference/pipelines/multilingual_speech_recognition/__init__.py +1 -1
- paddlex/inference/pipelines/multilingual_speech_recognition/pipeline.py +17 -6
- paddlex/inference/pipelines/object_detection/__init__.py +1 -1
- paddlex/inference/pipelines/object_detection/pipeline.py +29 -9
- paddlex/inference/pipelines/ocr/__init__.py +1 -1
- paddlex/inference/pipelines/ocr/pipeline.py +151 -77
- paddlex/inference/pipelines/ocr/result.py +31 -24
- paddlex/inference/pipelines/open_vocabulary_detection/__init__.py +1 -1
- paddlex/inference/pipelines/open_vocabulary_detection/pipeline.py +17 -6
- paddlex/inference/pipelines/open_vocabulary_segmentation/__init__.py +1 -1
- paddlex/inference/pipelines/open_vocabulary_segmentation/pipeline.py +17 -6
- paddlex/inference/pipelines/pp_chatocr/__init__.py +1 -1
- paddlex/inference/pipelines/pp_chatocr/pipeline_base.py +14 -5
- paddlex/inference/pipelines/pp_chatocr/pipeline_v3.py +22 -14
- paddlex/inference/pipelines/pp_chatocr/pipeline_v4.py +34 -16
- paddlex/inference/pipelines/pp_shitu_v2/__init__.py +1 -1
- paddlex/inference/pipelines/pp_shitu_v2/pipeline.py +12 -8
- paddlex/inference/pipelines/pp_shitu_v2/result.py +4 -4
- paddlex/inference/pipelines/rotated_object_detection/__init__.py +1 -1
- paddlex/inference/pipelines/rotated_object_detection/pipeline.py +30 -9
- paddlex/inference/pipelines/seal_recognition/__init__.py +1 -1
- paddlex/inference/pipelines/seal_recognition/pipeline.py +127 -63
- paddlex/inference/pipelines/seal_recognition/result.py +4 -2
- paddlex/inference/pipelines/semantic_segmentation/__init__.py +1 -1
- paddlex/inference/pipelines/semantic_segmentation/pipeline.py +30 -9
- paddlex/inference/pipelines/small_object_detection/__init__.py +1 -1
- paddlex/inference/pipelines/small_object_detection/pipeline.py +30 -9
- paddlex/inference/pipelines/table_recognition/__init__.py +1 -1
- paddlex/inference/pipelines/table_recognition/pipeline.py +61 -37
- paddlex/inference/pipelines/table_recognition/pipeline_v2.py +668 -65
- paddlex/inference/pipelines/table_recognition/result.py +12 -10
- paddlex/inference/pipelines/table_recognition/table_recognition_post_processing.py +12 -8
- paddlex/inference/pipelines/table_recognition/table_recognition_post_processing_v2.py +55 -37
- paddlex/inference/pipelines/table_recognition/utils.py +1 -1
- paddlex/inference/pipelines/ts_anomaly_detection/__init__.py +1 -1
- paddlex/inference/pipelines/ts_anomaly_detection/pipeline.py +16 -6
- paddlex/inference/pipelines/ts_classification/__init__.py +1 -1
- paddlex/inference/pipelines/ts_classification/pipeline.py +16 -6
- paddlex/inference/pipelines/ts_forecasting/__init__.py +1 -1
- paddlex/inference/pipelines/ts_forecasting/pipeline.py +16 -6
- paddlex/inference/pipelines/video_classification/__init__.py +1 -1
- paddlex/inference/pipelines/video_classification/pipeline.py +17 -6
- paddlex/inference/pipelines/video_detection/__init__.py +1 -1
- paddlex/inference/pipelines/video_detection/pipeline.py +20 -7
- paddlex/inference/serving/__init__.py +5 -1
- paddlex/inference/serving/basic_serving/__init__.py +1 -1
- paddlex/inference/serving/basic_serving/_app.py +31 -19
- paddlex/inference/serving/basic_serving/_pipeline_apps/__init__.py +7 -4
- paddlex/inference/serving/basic_serving/_pipeline_apps/_common/__init__.py +1 -1
- paddlex/inference/serving/basic_serving/_pipeline_apps/_common/common.py +12 -4
- paddlex/inference/serving/basic_serving/_pipeline_apps/_common/image_recognition.py +1 -1
- paddlex/inference/serving/basic_serving/_pipeline_apps/_common/ocr.py +7 -2
- paddlex/inference/serving/basic_serving/_pipeline_apps/anomaly_detection.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/doc_preprocessor.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/doc_understanding.py +153 -0
- paddlex/inference/serving/basic_serving/_pipeline_apps/face_recognition.py +16 -13
- paddlex/inference/serving/basic_serving/_pipeline_apps/formula_recognition.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/human_keypoint_detection.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/image_classification.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/image_multilabel_classification.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/instance_segmentation.py +13 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/layout_parsing.py +10 -8
- paddlex/inference/serving/basic_serving/_pipeline_apps/m_3d_bev_detection.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/multilingual_speech_recognition.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/object_detection.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/ocr.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/open_vocabulary_detection.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/open_vocabulary_segmentation.py +13 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/pedestrian_attribute_recognition.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/pp_chatocrv3_doc.py +14 -12
- paddlex/inference/serving/basic_serving/_pipeline_apps/pp_chatocrv4_doc.py +17 -14
- paddlex/inference/serving/basic_serving/_pipeline_apps/pp_shituv2.py +16 -13
- paddlex/inference/serving/basic_serving/_pipeline_apps/pp_structurev3.py +16 -9
- paddlex/inference/serving/basic_serving/_pipeline_apps/rotated_object_detection.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/seal_recognition.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/semantic_segmentation.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/small_object_detection.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/table_recognition.py +11 -12
- paddlex/inference/serving/basic_serving/_pipeline_apps/table_recognition_v2.py +14 -12
- paddlex/inference/serving/basic_serving/_pipeline_apps/ts_anomaly_detection.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/ts_classification.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/ts_forecast.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/vehicle_attribute_recognition.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/video_classification.py +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/video_detection.py +10 -7
- paddlex/inference/serving/basic_serving/_server.py +9 -4
- paddlex/inference/serving/infra/__init__.py +1 -1
- paddlex/inference/serving/infra/config.py +1 -1
- paddlex/inference/serving/infra/models.py +13 -6
- paddlex/inference/serving/infra/storage.py +9 -4
- paddlex/inference/serving/infra/utils.py +54 -28
- paddlex/inference/serving/schemas/__init__.py +1 -1
- paddlex/inference/serving/schemas/anomaly_detection.py +1 -1
- paddlex/inference/serving/schemas/doc_preprocessor.py +1 -1
- paddlex/inference/serving/schemas/doc_understanding.py +78 -0
- paddlex/inference/serving/schemas/face_recognition.py +1 -1
- paddlex/inference/serving/schemas/formula_recognition.py +2 -2
- paddlex/inference/serving/schemas/human_keypoint_detection.py +1 -1
- paddlex/inference/serving/schemas/image_classification.py +1 -1
- paddlex/inference/serving/schemas/image_multilabel_classification.py +1 -1
- paddlex/inference/serving/schemas/instance_segmentation.py +1 -1
- paddlex/inference/serving/schemas/layout_parsing.py +2 -3
- paddlex/inference/serving/schemas/m_3d_bev_detection.py +1 -1
- paddlex/inference/serving/schemas/multilingual_speech_recognition.py +1 -1
- paddlex/inference/serving/schemas/object_detection.py +1 -1
- paddlex/inference/serving/schemas/ocr.py +1 -1
- paddlex/inference/serving/schemas/open_vocabulary_detection.py +1 -1
- paddlex/inference/serving/schemas/open_vocabulary_segmentation.py +1 -1
- paddlex/inference/serving/schemas/pedestrian_attribute_recognition.py +1 -1
- paddlex/inference/serving/schemas/pp_chatocrv3_doc.py +2 -3
- paddlex/inference/serving/schemas/pp_chatocrv4_doc.py +3 -3
- paddlex/inference/serving/schemas/pp_shituv2.py +1 -1
- paddlex/inference/serving/schemas/pp_structurev3.py +11 -7
- paddlex/inference/serving/schemas/rotated_object_detection.py +1 -1
- paddlex/inference/serving/schemas/seal_recognition.py +2 -2
- paddlex/inference/serving/schemas/semantic_segmentation.py +1 -1
- paddlex/inference/serving/schemas/shared/__init__.py +1 -1
- paddlex/inference/serving/schemas/shared/classification.py +1 -1
- paddlex/inference/serving/schemas/shared/image_segmentation.py +1 -1
- paddlex/inference/serving/schemas/shared/object_detection.py +1 -1
- paddlex/inference/serving/schemas/shared/ocr.py +1 -1
- paddlex/inference/serving/schemas/small_object_detection.py +1 -1
- paddlex/inference/serving/schemas/table_recognition.py +3 -7
- paddlex/inference/serving/schemas/table_recognition_v2.py +6 -7
- paddlex/inference/serving/schemas/ts_anomaly_detection.py +1 -1
- paddlex/inference/serving/schemas/ts_classification.py +1 -1
- paddlex/inference/serving/schemas/ts_forecast.py +1 -1
- paddlex/inference/serving/schemas/vehicle_attribute_recognition.py +1 -1
- paddlex/inference/serving/schemas/video_classification.py +1 -1
- paddlex/inference/serving/schemas/video_detection.py +1 -1
- paddlex/inference/utils/__init__.py +1 -1
- paddlex/inference/utils/benchmark.py +332 -179
- paddlex/inference/utils/color_map.py +1 -1
- paddlex/inference/utils/get_pipeline_path.py +1 -1
- paddlex/inference/utils/hpi.py +258 -0
- paddlex/inference/utils/hpi_model_info_collection.json +2331 -0
- paddlex/inference/utils/io/__init__.py +11 -11
- paddlex/inference/utils/io/readers.py +31 -27
- paddlex/inference/utils/io/style.py +21 -14
- paddlex/inference/utils/io/tablepyxl.py +13 -5
- paddlex/inference/utils/io/writers.py +9 -10
- paddlex/inference/utils/mkldnn_blocklist.py +25 -0
- paddlex/inference/utils/model_paths.py +48 -0
- paddlex/inference/utils/{new_ir_blacklist.py → new_ir_blocklist.py} +1 -2
- paddlex/inference/utils/official_models.py +278 -262
- paddlex/inference/utils/pp_option.py +184 -92
- paddlex/inference/utils/trt_blocklist.py +43 -0
- paddlex/inference/utils/trt_config.py +420 -0
- paddlex/model.py +30 -12
- paddlex/modules/__init__.py +57 -80
- paddlex/modules/anomaly_detection/__init__.py +2 -2
- paddlex/modules/anomaly_detection/dataset_checker/__init__.py +2 -3
- paddlex/modules/anomaly_detection/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/anomaly_detection/dataset_checker/dataset_src/analyse_dataset.py +6 -3
- paddlex/modules/anomaly_detection/dataset_checker/dataset_src/check_dataset.py +8 -4
- paddlex/modules/anomaly_detection/dataset_checker/dataset_src/convert_dataset.py +7 -4
- paddlex/modules/anomaly_detection/dataset_checker/dataset_src/split_dataset.py +2 -2
- paddlex/modules/anomaly_detection/dataset_checker/dataset_src/utils/__init__.py +1 -1
- paddlex/modules/anomaly_detection/dataset_checker/dataset_src/utils/visualizer.py +7 -2
- paddlex/modules/anomaly_detection/evaluator.py +3 -3
- paddlex/modules/anomaly_detection/exportor.py +1 -1
- paddlex/modules/anomaly_detection/model_list.py +1 -1
- paddlex/modules/anomaly_detection/trainer.py +3 -4
- paddlex/modules/base/__init__.py +5 -5
- paddlex/modules/base/build_model.py +1 -2
- paddlex/modules/base/dataset_checker/__init__.py +2 -2
- paddlex/modules/base/dataset_checker/dataset_checker.py +4 -4
- paddlex/modules/base/dataset_checker/utils.py +1 -3
- paddlex/modules/base/evaluator.py +13 -13
- paddlex/modules/base/exportor.py +12 -13
- paddlex/modules/base/trainer.py +21 -11
- paddlex/modules/base/utils/__init__.py +13 -0
- paddlex/modules/base/utils/cinn_setting.py +89 -0
- paddlex/modules/base/utils/coco_eval.py +94 -0
- paddlex/modules/base/utils/topk_eval.py +118 -0
- paddlex/modules/doc_vlm/__init__.py +18 -0
- paddlex/modules/doc_vlm/dataset_checker.py +29 -0
- paddlex/modules/doc_vlm/evaluator.py +29 -0
- paddlex/modules/doc_vlm/exportor.py +29 -0
- paddlex/modules/doc_vlm/model_list.py +16 -0
- paddlex/modules/doc_vlm/trainer.py +41 -0
- paddlex/modules/face_recognition/__init__.py +2 -2
- paddlex/modules/face_recognition/dataset_checker/__init__.py +2 -2
- paddlex/modules/face_recognition/dataset_checker/dataset_src/__init__.py +1 -1
- paddlex/modules/face_recognition/dataset_checker/dataset_src/check_dataset.py +3 -5
- paddlex/modules/face_recognition/dataset_checker/dataset_src/utils/__init__.py +1 -1
- paddlex/modules/face_recognition/dataset_checker/dataset_src/utils/visualizer.py +2 -5
- paddlex/modules/face_recognition/evaluator.py +3 -3
- paddlex/modules/face_recognition/exportor.py +1 -1
- paddlex/modules/face_recognition/model_list.py +1 -1
- paddlex/modules/face_recognition/trainer.py +1 -1
- paddlex/modules/formula_recognition/__init__.py +2 -2
- paddlex/modules/formula_recognition/dataset_checker/__init__.py +3 -3
- paddlex/modules/formula_recognition/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/formula_recognition/dataset_checker/dataset_src/analyse_dataset.py +13 -12
- paddlex/modules/formula_recognition/dataset_checker/dataset_src/check_dataset.py +2 -6
- paddlex/modules/formula_recognition/dataset_checker/dataset_src/convert_dataset.py +11 -10
- paddlex/modules/formula_recognition/dataset_checker/dataset_src/split_dataset.py +1 -2
- paddlex/modules/formula_recognition/evaluator.py +6 -3
- paddlex/modules/formula_recognition/exportor.py +1 -1
- paddlex/modules/formula_recognition/model_list.py +4 -1
- paddlex/modules/formula_recognition/trainer.py +5 -3
- paddlex/modules/general_recognition/__init__.py +2 -2
- paddlex/modules/general_recognition/dataset_checker/__init__.py +2 -2
- paddlex/modules/general_recognition/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/general_recognition/dataset_checker/dataset_src/analyse_dataset.py +7 -9
- paddlex/modules/general_recognition/dataset_checker/dataset_src/check_dataset.py +4 -5
- paddlex/modules/general_recognition/dataset_checker/dataset_src/convert_dataset.py +6 -5
- paddlex/modules/general_recognition/dataset_checker/dataset_src/split_dataset.py +1 -1
- paddlex/modules/general_recognition/dataset_checker/dataset_src/utils/__init__.py +1 -1
- paddlex/modules/general_recognition/dataset_checker/dataset_src/utils/visualizer.py +2 -5
- paddlex/modules/general_recognition/evaluator.py +2 -2
- paddlex/modules/general_recognition/exportor.py +1 -1
- paddlex/modules/general_recognition/model_list.py +1 -1
- paddlex/modules/general_recognition/trainer.py +1 -1
- paddlex/modules/image_classification/__init__.py +2 -2
- paddlex/modules/image_classification/dataset_checker/__init__.py +2 -2
- paddlex/modules/image_classification/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/image_classification/dataset_checker/dataset_src/analyse_dataset.py +8 -9
- paddlex/modules/image_classification/dataset_checker/dataset_src/check_dataset.py +4 -3
- paddlex/modules/image_classification/dataset_checker/dataset_src/convert_dataset.py +4 -4
- paddlex/modules/image_classification/dataset_checker/dataset_src/split_dataset.py +1 -1
- paddlex/modules/image_classification/dataset_checker/dataset_src/utils/__init__.py +1 -1
- paddlex/modules/image_classification/dataset_checker/dataset_src/utils/visualizer.py +2 -5
- paddlex/modules/image_classification/evaluator.py +3 -3
- paddlex/modules/image_classification/exportor.py +1 -1
- paddlex/modules/image_classification/model_list.py +2 -1
- paddlex/modules/image_classification/trainer.py +3 -3
- paddlex/modules/image_unwarping/__init__.py +1 -1
- paddlex/modules/image_unwarping/model_list.py +1 -1
- paddlex/modules/instance_segmentation/__init__.py +2 -2
- paddlex/modules/instance_segmentation/dataset_checker/__init__.py +2 -3
- paddlex/modules/instance_segmentation/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/instance_segmentation/dataset_checker/dataset_src/analyse_dataset.py +9 -5
- paddlex/modules/instance_segmentation/dataset_checker/dataset_src/check_dataset.py +8 -5
- paddlex/modules/instance_segmentation/dataset_checker/dataset_src/convert_dataset.py +8 -8
- paddlex/modules/instance_segmentation/dataset_checker/dataset_src/split_dataset.py +7 -4
- paddlex/modules/instance_segmentation/dataset_checker/dataset_src/utils/__init__.py +1 -1
- paddlex/modules/instance_segmentation/dataset_checker/dataset_src/utils/visualizer.py +10 -8
- paddlex/modules/instance_segmentation/evaluator.py +2 -2
- paddlex/modules/instance_segmentation/exportor.py +1 -1
- paddlex/modules/instance_segmentation/model_list.py +1 -1
- paddlex/modules/instance_segmentation/trainer.py +1 -1
- paddlex/modules/keypoint_detection/__init__.py +2 -2
- paddlex/modules/keypoint_detection/dataset_checker/__init__.py +2 -2
- paddlex/modules/keypoint_detection/dataset_checker/dataset_src/__init__.py +1 -1
- paddlex/modules/keypoint_detection/dataset_checker/dataset_src/check_dataset.py +10 -5
- paddlex/modules/keypoint_detection/dataset_checker/dataset_src/utils/__init__.py +1 -1
- paddlex/modules/keypoint_detection/dataset_checker/dataset_src/utils/visualizer.py +8 -3
- paddlex/modules/keypoint_detection/evaluator.py +2 -2
- paddlex/modules/keypoint_detection/exportor.py +1 -1
- paddlex/modules/keypoint_detection/model_list.py +1 -1
- paddlex/modules/keypoint_detection/trainer.py +2 -2
- paddlex/modules/{3d_bev_detection → m_3d_bev_detection}/__init__.py +2 -2
- paddlex/modules/{3d_bev_detection → m_3d_bev_detection}/dataset_checker/__init__.py +3 -3
- paddlex/modules/{3d_bev_detection → m_3d_bev_detection}/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/{3d_bev_detection → m_3d_bev_detection}/dataset_checker/dataset_src/analyse_dataset.py +8 -8
- paddlex/modules/{3d_bev_detection → m_3d_bev_detection}/dataset_checker/dataset_src/check_dataset.py +1 -2
- paddlex/modules/{3d_bev_detection → m_3d_bev_detection}/evaluator.py +3 -3
- paddlex/modules/{3d_bev_detection → m_3d_bev_detection}/exportor.py +1 -1
- paddlex/modules/{3d_bev_detection → m_3d_bev_detection}/model_list.py +1 -1
- paddlex/modules/{3d_bev_detection → m_3d_bev_detection}/trainer.py +5 -7
- paddlex/modules/multilabel_classification/__init__.py +2 -2
- paddlex/modules/multilabel_classification/dataset_checker/__init__.py +2 -2
- paddlex/modules/multilabel_classification/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/multilabel_classification/dataset_checker/dataset_src/analyse_dataset.py +8 -9
- paddlex/modules/multilabel_classification/dataset_checker/dataset_src/check_dataset.py +4 -3
- paddlex/modules/multilabel_classification/dataset_checker/dataset_src/convert_dataset.py +10 -7
- paddlex/modules/multilabel_classification/dataset_checker/dataset_src/split_dataset.py +1 -1
- paddlex/modules/multilabel_classification/dataset_checker/dataset_src/utils/__init__.py +1 -1
- paddlex/modules/multilabel_classification/dataset_checker/dataset_src/utils/visualizer.py +1 -5
- paddlex/modules/multilabel_classification/evaluator.py +3 -3
- paddlex/modules/multilabel_classification/exportor.py +1 -1
- paddlex/modules/multilabel_classification/model_list.py +1 -1
- paddlex/modules/multilabel_classification/trainer.py +3 -3
- paddlex/modules/multilingual_speech_recognition/__init__.py +2 -2
- paddlex/modules/multilingual_speech_recognition/dataset_checker.py +3 -3
- paddlex/modules/multilingual_speech_recognition/evaluator.py +3 -3
- paddlex/modules/multilingual_speech_recognition/exportor.py +3 -3
- paddlex/modules/multilingual_speech_recognition/model_list.py +1 -1
- paddlex/modules/multilingual_speech_recognition/trainer.py +7 -5
- paddlex/modules/object_detection/__init__.py +2 -2
- paddlex/modules/object_detection/dataset_checker/__init__.py +2 -11
- paddlex/modules/object_detection/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/object_detection/dataset_checker/dataset_src/analyse_dataset.py +10 -8
- paddlex/modules/object_detection/dataset_checker/dataset_src/check_dataset.py +10 -5
- paddlex/modules/object_detection/dataset_checker/dataset_src/convert_dataset.py +17 -12
- paddlex/modules/object_detection/dataset_checker/dataset_src/split_dataset.py +8 -4
- paddlex/modules/object_detection/dataset_checker/dataset_src/utils/__init__.py +1 -1
- paddlex/modules/object_detection/dataset_checker/dataset_src/utils/visualizer.py +9 -8
- paddlex/modules/object_detection/evaluator.py +11 -6
- paddlex/modules/object_detection/exportor.py +1 -1
- paddlex/modules/object_detection/model_list.py +3 -1
- paddlex/modules/object_detection/trainer.py +4 -5
- paddlex/modules/open_vocabulary_detection/__init__.py +2 -2
- paddlex/modules/open_vocabulary_detection/dataset_checker.py +3 -3
- paddlex/modules/open_vocabulary_detection/evaluator.py +3 -3
- paddlex/modules/open_vocabulary_detection/exportor.py +3 -3
- paddlex/modules/open_vocabulary_detection/model_list.py +2 -4
- paddlex/modules/open_vocabulary_detection/trainer.py +7 -5
- paddlex/modules/open_vocabulary_segmentation/__init__.py +2 -2
- paddlex/modules/open_vocabulary_segmentation/dataset_checker.py +3 -3
- paddlex/modules/open_vocabulary_segmentation/evaluator.py +3 -3
- paddlex/modules/open_vocabulary_segmentation/exportor.py +3 -3
- paddlex/modules/open_vocabulary_segmentation/model_list.py +1 -1
- paddlex/modules/open_vocabulary_segmentation/trainer.py +7 -5
- paddlex/modules/semantic_segmentation/__init__.py +2 -2
- paddlex/modules/semantic_segmentation/dataset_checker/__init__.py +2 -3
- paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/analyse_dataset.py +6 -3
- paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/check_dataset.py +2 -2
- paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/convert_dataset.py +7 -4
- paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/split_dataset.py +2 -2
- paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/utils/__init__.py +1 -1
- paddlex/modules/semantic_segmentation/dataset_checker/dataset_src/utils/visualizer.py +6 -2
- paddlex/modules/semantic_segmentation/evaluator.py +3 -3
- paddlex/modules/semantic_segmentation/exportor.py +1 -1
- paddlex/modules/semantic_segmentation/model_list.py +1 -1
- paddlex/modules/semantic_segmentation/trainer.py +3 -4
- paddlex/modules/table_recognition/__init__.py +2 -2
- paddlex/modules/table_recognition/dataset_checker/__init__.py +5 -5
- paddlex/modules/table_recognition/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/table_recognition/dataset_checker/dataset_src/analyse_dataset.py +3 -2
- paddlex/modules/table_recognition/dataset_checker/dataset_src/check_dataset.py +8 -7
- paddlex/modules/table_recognition/dataset_checker/dataset_src/split_dataset.py +2 -1
- paddlex/modules/table_recognition/evaluator.py +3 -3
- paddlex/modules/table_recognition/exportor.py +1 -1
- paddlex/modules/table_recognition/model_list.py +1 -1
- paddlex/modules/table_recognition/trainer.py +2 -5
- paddlex/modules/text_detection/__init__.py +2 -2
- paddlex/modules/text_detection/dataset_checker/__init__.py +4 -6
- paddlex/modules/text_detection/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/text_detection/dataset_checker/dataset_src/analyse_dataset.py +12 -9
- paddlex/modules/text_detection/dataset_checker/dataset_src/check_dataset.py +3 -3
- paddlex/modules/text_detection/dataset_checker/dataset_src/split_dataset.py +3 -3
- paddlex/modules/text_detection/evaluator.py +3 -3
- paddlex/modules/text_detection/exportor.py +1 -1
- paddlex/modules/text_detection/model_list.py +3 -1
- paddlex/modules/text_detection/trainer.py +2 -5
- paddlex/modules/text_recognition/__init__.py +2 -2
- paddlex/modules/text_recognition/dataset_checker/__init__.py +4 -5
- paddlex/modules/text_recognition/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/text_recognition/dataset_checker/dataset_src/analyse_dataset.py +13 -12
- paddlex/modules/text_recognition/dataset_checker/dataset_src/check_dataset.py +2 -5
- paddlex/modules/text_recognition/dataset_checker/dataset_src/convert_dataset.py +11 -10
- paddlex/modules/text_recognition/dataset_checker/dataset_src/split_dataset.py +1 -2
- paddlex/modules/text_recognition/evaluator.py +3 -3
- paddlex/modules/text_recognition/exportor.py +1 -1
- paddlex/modules/text_recognition/model_list.py +3 -1
- paddlex/modules/text_recognition/trainer.py +2 -3
- paddlex/modules/ts_anomaly_detection/__init__.py +2 -2
- paddlex/modules/ts_anomaly_detection/dataset_checker/__init__.py +4 -5
- paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/analyse_dataset.py +1 -9
- paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/check_dataset.py +2 -2
- paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/convert_dataset.py +2 -6
- paddlex/modules/ts_anomaly_detection/dataset_checker/dataset_src/split_dataset.py +4 -4
- paddlex/modules/ts_anomaly_detection/evaluator.py +3 -3
- paddlex/modules/ts_anomaly_detection/exportor.py +2 -3
- paddlex/modules/ts_anomaly_detection/model_list.py +1 -1
- paddlex/modules/ts_anomaly_detection/trainer.py +8 -8
- paddlex/modules/ts_classification/__init__.py +2 -2
- paddlex/modules/ts_classification/dataset_checker/__init__.py +4 -5
- paddlex/modules/ts_classification/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/ts_classification/dataset_checker/dataset_src/analyse_dataset.py +8 -5
- paddlex/modules/ts_classification/dataset_checker/dataset_src/check_dataset.py +2 -2
- paddlex/modules/ts_classification/dataset_checker/dataset_src/convert_dataset.py +2 -6
- paddlex/modules/ts_classification/dataset_checker/dataset_src/split_dataset.py +5 -5
- paddlex/modules/ts_classification/evaluator.py +3 -3
- paddlex/modules/ts_classification/exportor.py +2 -3
- paddlex/modules/ts_classification/model_list.py +1 -1
- paddlex/modules/ts_classification/trainer.py +7 -7
- paddlex/modules/ts_forecast/__init__.py +2 -2
- paddlex/modules/ts_forecast/dataset_checker/__init__.py +4 -5
- paddlex/modules/ts_forecast/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/ts_forecast/dataset_checker/dataset_src/analyse_dataset.py +1 -9
- paddlex/modules/ts_forecast/dataset_checker/dataset_src/check_dataset.py +2 -2
- paddlex/modules/ts_forecast/dataset_checker/dataset_src/convert_dataset.py +2 -6
- paddlex/modules/ts_forecast/dataset_checker/dataset_src/split_dataset.py +4 -4
- paddlex/modules/ts_forecast/evaluator.py +3 -3
- paddlex/modules/ts_forecast/exportor.py +2 -3
- paddlex/modules/ts_forecast/model_list.py +1 -1
- paddlex/modules/ts_forecast/trainer.py +7 -7
- paddlex/modules/video_classification/__init__.py +2 -2
- paddlex/modules/video_classification/dataset_checker/__init__.py +2 -2
- paddlex/modules/video_classification/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/video_classification/dataset_checker/dataset_src/analyse_dataset.py +9 -9
- paddlex/modules/video_classification/dataset_checker/dataset_src/check_dataset.py +2 -3
- paddlex/modules/video_classification/dataset_checker/dataset_src/split_dataset.py +1 -1
- paddlex/modules/video_classification/evaluator.py +3 -3
- paddlex/modules/video_classification/exportor.py +1 -1
- paddlex/modules/video_classification/model_list.py +1 -1
- paddlex/modules/video_classification/trainer.py +3 -3
- paddlex/modules/video_detection/__init__.py +2 -2
- paddlex/modules/video_detection/dataset_checker/__init__.py +2 -2
- paddlex/modules/video_detection/dataset_checker/dataset_src/__init__.py +2 -2
- paddlex/modules/video_detection/dataset_checker/dataset_src/analyse_dataset.py +8 -9
- paddlex/modules/video_detection/dataset_checker/dataset_src/check_dataset.py +3 -5
- paddlex/modules/video_detection/evaluator.py +3 -3
- paddlex/modules/video_detection/exportor.py +1 -1
- paddlex/modules/video_detection/model_list.py +1 -1
- paddlex/modules/video_detection/trainer.py +3 -3
- paddlex/ops/__init__.py +7 -4
- paddlex/ops/iou3d_nms/iou3d_cpu.cpp +8 -6
- paddlex/ops/iou3d_nms/iou3d_cpu.h +3 -2
- paddlex/ops/iou3d_nms/iou3d_nms.cpp +8 -6
- paddlex/ops/iou3d_nms/iou3d_nms.h +6 -4
- paddlex/ops/iou3d_nms/iou3d_nms_api.cpp +24 -18
- paddlex/ops/iou3d_nms/iou3d_nms_kernel.cu +9 -7
- paddlex/ops/setup.py +3 -3
- paddlex/ops/voxel/voxelize_op.cc +22 -19
- paddlex/ops/voxel/voxelize_op.cu +25 -25
- paddlex/paddlex_cli.py +104 -87
- paddlex/repo_apis/Paddle3D_api/__init__.py +1 -1
- paddlex/repo_apis/Paddle3D_api/bev_fusion/__init__.py +1 -1
- paddlex/repo_apis/Paddle3D_api/bev_fusion/config.py +1 -1
- paddlex/repo_apis/Paddle3D_api/bev_fusion/model.py +6 -6
- paddlex/repo_apis/Paddle3D_api/bev_fusion/register.py +2 -2
- paddlex/repo_apis/Paddle3D_api/bev_fusion/runner.py +1 -1
- paddlex/repo_apis/Paddle3D_api/pp3d_config.py +3 -2
- paddlex/repo_apis/PaddleClas_api/__init__.py +1 -1
- paddlex/repo_apis/PaddleClas_api/cls/__init__.py +3 -3
- paddlex/repo_apis/PaddleClas_api/cls/config.py +5 -4
- paddlex/repo_apis/PaddleClas_api/cls/model.py +4 -4
- paddlex/repo_apis/PaddleClas_api/cls/register.py +12 -3
- paddlex/repo_apis/PaddleClas_api/cls/runner.py +2 -3
- paddlex/repo_apis/PaddleClas_api/shitu_rec/__init__.py +2 -2
- paddlex/repo_apis/PaddleClas_api/shitu_rec/config.py +2 -2
- paddlex/repo_apis/PaddleClas_api/shitu_rec/model.py +1 -4
- paddlex/repo_apis/PaddleClas_api/shitu_rec/register.py +2 -2
- paddlex/repo_apis/PaddleClas_api/shitu_rec/runner.py +1 -6
- paddlex/repo_apis/PaddleDetection_api/__init__.py +2 -2
- paddlex/repo_apis/PaddleDetection_api/config_helper.py +3 -3
- paddlex/repo_apis/PaddleDetection_api/instance_seg/__init__.py +2 -2
- paddlex/repo_apis/PaddleDetection_api/instance_seg/config.py +2 -3
- paddlex/repo_apis/PaddleDetection_api/instance_seg/model.py +4 -4
- paddlex/repo_apis/PaddleDetection_api/instance_seg/register.py +2 -3
- paddlex/repo_apis/PaddleDetection_api/instance_seg/runner.py +2 -3
- paddlex/repo_apis/PaddleDetection_api/object_det/__init__.py +3 -3
- paddlex/repo_apis/PaddleDetection_api/object_det/config.py +5 -4
- paddlex/repo_apis/PaddleDetection_api/object_det/model.py +6 -7
- paddlex/repo_apis/PaddleDetection_api/object_det/official_categories.py +26 -1
- paddlex/repo_apis/PaddleDetection_api/object_det/register.py +32 -3
- paddlex/repo_apis/PaddleDetection_api/object_det/runner.py +2 -3
- paddlex/repo_apis/PaddleNLP_api/__init__.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/__init__.py +4 -3
- paddlex/repo_apis/PaddleOCR_api/config_utils.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/formula_rec/__init__.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/formula_rec/config.py +7 -6
- paddlex/repo_apis/PaddleOCR_api/formula_rec/model.py +9 -13
- paddlex/repo_apis/PaddleOCR_api/formula_rec/register.py +29 -3
- paddlex/repo_apis/PaddleOCR_api/formula_rec/runner.py +2 -3
- paddlex/repo_apis/PaddleOCR_api/table_rec/__init__.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/table_rec/config.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/table_rec/model.py +4 -4
- paddlex/repo_apis/PaddleOCR_api/table_rec/register.py +2 -3
- paddlex/repo_apis/PaddleOCR_api/table_rec/runner.py +3 -3
- paddlex/repo_apis/PaddleOCR_api/text_det/__init__.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/text_det/config.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/text_det/model.py +4 -4
- paddlex/repo_apis/PaddleOCR_api/text_det/register.py +20 -3
- paddlex/repo_apis/PaddleOCR_api/text_det/runner.py +3 -3
- paddlex/repo_apis/PaddleOCR_api/text_rec/__init__.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/text_rec/config.py +7 -6
- paddlex/repo_apis/PaddleOCR_api/text_rec/model.py +9 -13
- paddlex/repo_apis/PaddleOCR_api/text_rec/register.py +20 -3
- paddlex/repo_apis/PaddleOCR_api/text_rec/runner.py +2 -3
- paddlex/repo_apis/PaddleSeg_api/__init__.py +1 -1
- paddlex/repo_apis/PaddleSeg_api/base_seg_config.py +2 -2
- paddlex/repo_apis/PaddleSeg_api/seg/__init__.py +1 -1
- paddlex/repo_apis/PaddleSeg_api/seg/config.py +3 -6
- paddlex/repo_apis/PaddleSeg_api/seg/model.py +6 -6
- paddlex/repo_apis/PaddleSeg_api/seg/register.py +2 -3
- paddlex/repo_apis/PaddleSeg_api/seg/runner.py +2 -3
- paddlex/repo_apis/PaddleTS_api/__init__.py +4 -3
- paddlex/repo_apis/PaddleTS_api/ts_ad/__init__.py +1 -1
- paddlex/repo_apis/PaddleTS_api/ts_ad/config.py +5 -6
- paddlex/repo_apis/PaddleTS_api/ts_ad/register.py +2 -2
- paddlex/repo_apis/PaddleTS_api/ts_ad/runner.py +2 -2
- paddlex/repo_apis/PaddleTS_api/ts_base/__init__.py +1 -1
- paddlex/repo_apis/PaddleTS_api/ts_base/config.py +2 -4
- paddlex/repo_apis/PaddleTS_api/ts_base/model.py +4 -4
- paddlex/repo_apis/PaddleTS_api/ts_base/runner.py +2 -2
- paddlex/repo_apis/PaddleTS_api/ts_cls/__init__.py +1 -1
- paddlex/repo_apis/PaddleTS_api/ts_cls/config.py +4 -5
- paddlex/repo_apis/PaddleTS_api/ts_cls/register.py +2 -2
- paddlex/repo_apis/PaddleTS_api/ts_cls/runner.py +2 -2
- paddlex/repo_apis/PaddleTS_api/ts_fc/__init__.py +1 -1
- paddlex/repo_apis/PaddleTS_api/ts_fc/config.py +6 -7
- paddlex/repo_apis/PaddleTS_api/ts_fc/register.py +1 -1
- paddlex/repo_apis/PaddleVideo_api/__init__.py +1 -1
- paddlex/repo_apis/PaddleVideo_api/config_utils.py +1 -1
- paddlex/repo_apis/PaddleVideo_api/video_cls/__init__.py +3 -3
- paddlex/repo_apis/PaddleVideo_api/video_cls/config.py +5 -4
- paddlex/repo_apis/PaddleVideo_api/video_cls/model.py +4 -4
- paddlex/repo_apis/PaddleVideo_api/video_cls/register.py +2 -3
- paddlex/repo_apis/PaddleVideo_api/video_cls/runner.py +2 -3
- paddlex/repo_apis/PaddleVideo_api/video_det/__init__.py +3 -3
- paddlex/repo_apis/PaddleVideo_api/video_det/config.py +5 -4
- paddlex/repo_apis/PaddleVideo_api/video_det/model.py +5 -5
- paddlex/repo_apis/PaddleVideo_api/video_det/register.py +2 -3
- paddlex/repo_apis/PaddleVideo_api/video_det/runner.py +2 -3
- paddlex/repo_apis/__init__.py +1 -1
- paddlex/repo_apis/base/__init__.py +4 -5
- paddlex/repo_apis/base/config.py +3 -4
- paddlex/repo_apis/base/model.py +11 -19
- paddlex/repo_apis/base/register.py +1 -1
- paddlex/repo_apis/base/runner.py +11 -12
- paddlex/repo_apis/base/utils/__init__.py +1 -1
- paddlex/repo_apis/base/utils/arg.py +1 -1
- paddlex/repo_apis/base/utils/subprocess.py +1 -1
- paddlex/repo_manager/__init__.py +2 -9
- paddlex/repo_manager/core.py +12 -30
- paddlex/repo_manager/meta.py +41 -31
- paddlex/repo_manager/repo.py +171 -161
- paddlex/repo_manager/utils.py +13 -224
- paddlex/utils/__init__.py +1 -1
- paddlex/utils/cache.py +8 -10
- paddlex/utils/config.py +6 -5
- paddlex/utils/{custom_device_whitelist.py → custom_device_list.py} +53 -199
- paddlex/utils/deps.py +249 -0
- paddlex/utils/device.py +87 -36
- paddlex/utils/download.py +4 -4
- paddlex/utils/env.py +37 -7
- paddlex/utils/errors/__init__.py +1 -1
- paddlex/utils/errors/dataset_checker.py +1 -1
- paddlex/utils/errors/others.py +2 -16
- paddlex/utils/file_interface.py +4 -5
- paddlex/utils/flags.py +17 -12
- paddlex/utils/fonts/__init__.py +36 -5
- paddlex/utils/func_register.py +1 -1
- paddlex/utils/install.py +87 -0
- paddlex/utils/interactive_get_pipeline.py +3 -3
- paddlex/utils/lazy_loader.py +3 -3
- paddlex/utils/logging.py +10 -1
- paddlex/utils/misc.py +6 -6
- paddlex/utils/pipeline_arguments.py +15 -7
- paddlex/utils/result_saver.py +4 -5
- paddlex/utils/subclass_register.py +2 -4
- paddlex/version.py +2 -1
- {paddlex-3.0.0rc0.dist-info → paddlex-3.0.1.dist-info}/METADATA +237 -102
- paddlex-3.0.1.dist-info/RECORD +1095 -0
- {paddlex-3.0.0rc0.dist-info → paddlex-3.0.1.dist-info}/WHEEL +1 -1
- paddlex/inference/models/base/predictor/basic_predictor.py +0 -139
- paddlex/paddle2onnx_requirements.txt +0 -1
- paddlex/repo_manager/requirements.txt +0 -21
- paddlex/serving_requirements.txt +0 -9
- paddlex-3.0.0rc0.dist-info/RECORD +0 -1015
- {paddlex-3.0.0rc0.dist-info → paddlex-3.0.1.dist-info}/entry_points.txt +0 -0
- {paddlex-3.0.0rc0.dist-info → paddlex-3.0.1.dist-info/licenses}/LICENSE +0 -0
- {paddlex-3.0.0rc0.dist-info → paddlex-3.0.1.dist-info}/top_level.txt +0 -0
@@ -69,7 +69,7 @@ __device__ inline int check_in_box2d(const float *box, const Point &p) {
|
|
69
69
|
float center_x = box[0], center_y = box[1];
|
70
70
|
float angle_cos = cos(-box[6]),
|
71
71
|
angle_sin =
|
72
|
-
sin(-box[6]);
|
72
|
+
sin(-box[6]); // rotate the point in the opposite direction of box
|
73
73
|
float rot_x = (p.x - center_x) * angle_cos + (p.y - center_y) * (-angle_sin);
|
74
74
|
float rot_y = (p.x - center_x) * angle_sin + (p.y - center_y) * angle_cos;
|
75
75
|
|
@@ -81,7 +81,8 @@ __device__ inline int intersection(const Point &p1, const Point &p0,
|
|
81
81
|
const Point &q1, const Point &q0,
|
82
82
|
Point &ans) {
|
83
83
|
// fast exclusion
|
84
|
-
if (check_rect_cross(p0, p1, q0, q1) == 0)
|
84
|
+
if (check_rect_cross(p0, p1, q0, q1) == 0)
|
85
|
+
return 0;
|
85
86
|
|
86
87
|
// check cross standing
|
87
88
|
float s1 = cross(q0, p1, p0);
|
@@ -89,7 +90,8 @@ __device__ inline int intersection(const Point &p1, const Point &p0,
|
|
89
90
|
float s3 = cross(p0, q1, q0);
|
90
91
|
float s4 = cross(q1, p1, q0);
|
91
92
|
|
92
|
-
if (!(s1 * s2 > 0 && s3 * s4 > 0))
|
93
|
+
if (!(s1 * s2 > 0 && s3 * s4 > 0))
|
94
|
+
return 0;
|
93
95
|
|
94
96
|
// calculate intersection of two lines
|
95
97
|
float s5 = cross(q1, p1, p0);
|
@@ -438,13 +440,13 @@ void BoxesOverlapLauncher(const cudaStream_t &stream, const int num_a,
|
|
438
440
|
const float *boxes_b, float *ans_overlap) {
|
439
441
|
dim3 blocks(
|
440
442
|
DIVUP(num_b, THREADS_PER_BLOCK),
|
441
|
-
DIVUP(num_a, THREADS_PER_BLOCK));
|
443
|
+
DIVUP(num_a, THREADS_PER_BLOCK)); // blockIdx.x(col), blockIdx.y(row)
|
442
444
|
dim3 threads(THREADS_PER_BLOCK, THREADS_PER_BLOCK);
|
443
445
|
|
444
446
|
boxes_overlap_kernel<<<blocks, threads, 0, stream>>>(num_a, boxes_a, num_b,
|
445
447
|
boxes_b, ans_overlap);
|
446
448
|
#ifdef DEBUG
|
447
|
-
cudaDeviceSynchronize();
|
449
|
+
cudaDeviceSynchronize(); // for using printf in kernel function
|
448
450
|
#endif
|
449
451
|
}
|
450
452
|
|
@@ -453,13 +455,13 @@ void BoxesIouBevLauncher(const cudaStream_t &stream, const int num_a,
|
|
453
455
|
const float *boxes_b, float *ans_iou) {
|
454
456
|
dim3 blocks(
|
455
457
|
DIVUP(num_b, THREADS_PER_BLOCK),
|
456
|
-
DIVUP(num_a, THREADS_PER_BLOCK));
|
458
|
+
DIVUP(num_a, THREADS_PER_BLOCK)); // blockIdx.x(col), blockIdx.y(row)
|
457
459
|
dim3 threads(THREADS_PER_BLOCK, THREADS_PER_BLOCK);
|
458
460
|
|
459
461
|
boxes_iou_bev_kernel<<<blocks, threads, 0, stream>>>(num_a, boxes_a, num_b,
|
460
462
|
boxes_b, ans_iou);
|
461
463
|
#ifdef DEBUG
|
462
|
-
cudaDeviceSynchronize();
|
464
|
+
cudaDeviceSynchronize(); // for using printf in kernel function
|
463
465
|
#endif
|
464
466
|
}
|
465
467
|
|
paddlex/ops/setup.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# Copyright (c) 2024 PaddlePaddle Authors. All Rights Reserved.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -12,8 +12,8 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
import
|
16
|
-
from
|
15
|
+
import paddle
|
16
|
+
from paddle.utils.cpp_extension import CppExtension, CUDAExtension, setup
|
17
17
|
|
18
18
|
from paddlex.ops import custom_ops
|
19
19
|
|
paddlex/ops/voxel/voxelize_op.cc
CHANGED
@@ -81,10 +81,11 @@ bool hard_voxelize_cpu_kernel(
|
|
81
81
|
return true;
|
82
82
|
}
|
83
83
|
|
84
|
-
std::vector<paddle::Tensor>
|
85
|
-
|
86
|
-
|
87
|
-
|
84
|
+
std::vector<paddle::Tensor>
|
85
|
+
hard_voxelize_cpu(const paddle::Tensor &points,
|
86
|
+
const std::vector<float> &voxel_size,
|
87
|
+
const std::vector<float> &point_cloud_range,
|
88
|
+
const int max_num_points_in_voxel, const int max_voxels) {
|
88
89
|
auto num_points = points.shape()[0];
|
89
90
|
auto num_point_dim = points.shape()[1];
|
90
91
|
|
@@ -140,16 +141,18 @@ std::vector<paddle::Tensor> hard_voxelize_cpu(
|
|
140
141
|
}
|
141
142
|
|
142
143
|
#ifdef PADDLE_WITH_CUDA
|
143
|
-
std::vector<paddle::Tensor>
|
144
|
-
|
145
|
-
|
146
|
-
|
144
|
+
std::vector<paddle::Tensor>
|
145
|
+
hard_voxelize_cuda(const paddle::Tensor &points,
|
146
|
+
const std::vector<float> &voxel_size,
|
147
|
+
const std::vector<float> &point_cloud_range,
|
148
|
+
int max_num_points_in_voxel, int max_voxels);
|
147
149
|
#endif
|
148
150
|
|
149
|
-
std::vector<paddle::Tensor>
|
150
|
-
|
151
|
-
|
152
|
-
|
151
|
+
std::vector<paddle::Tensor>
|
152
|
+
hard_voxelize(const paddle::Tensor &points,
|
153
|
+
const std::vector<float> &voxel_size,
|
154
|
+
const std::vector<float> &point_cloud_range,
|
155
|
+
const int max_num_points_in_voxel, const int max_voxels) {
|
153
156
|
if (points.is_cpu()) {
|
154
157
|
return hard_voxelize_cpu(points, voxel_size, point_cloud_range,
|
155
158
|
max_num_points_in_voxel, max_voxels);
|
@@ -159,16 +162,16 @@ std::vector<paddle::Tensor> hard_voxelize(
|
|
159
162
|
max_num_points_in_voxel, max_voxels);
|
160
163
|
#endif
|
161
164
|
} else {
|
162
|
-
PD_THROW(
|
163
|
-
|
164
|
-
"operator.");
|
165
|
+
PD_THROW("Unsupported device type for hard_voxelize "
|
166
|
+
"operator.");
|
165
167
|
}
|
166
168
|
}
|
167
169
|
|
168
|
-
std::vector<std::vector<int64_t>>
|
169
|
-
|
170
|
-
|
171
|
-
|
170
|
+
std::vector<std::vector<int64_t>>
|
171
|
+
HardInferShape(std::vector<int64_t> points_shape,
|
172
|
+
const std::vector<float> &voxel_size,
|
173
|
+
const std::vector<float> &point_cloud_range,
|
174
|
+
const int &max_num_points_in_voxel, const int &max_voxels) {
|
172
175
|
return {{max_voxels, max_num_points_in_voxel, points_shape[1]},
|
173
176
|
{max_voxels, 3},
|
174
177
|
{max_voxels},
|
paddlex/ops/voxel/voxelize_op.cu
CHANGED
@@ -14,11 +14,11 @@
|
|
14
14
|
|
15
15
|
#include "paddle/extension.h"
|
16
16
|
|
17
|
-
#define CHECK_INPUT_CUDA(x)
|
17
|
+
#define CHECK_INPUT_CUDA(x) \
|
18
18
|
PD_CHECK(x.is_gpu() || x.is_gpu_pinned(), #x " must be a GPU Tensor.")
|
19
19
|
|
20
|
-
#define CUDA_KERNEL_LOOP(i, n)
|
21
|
-
for (auto i = blockIdx.x * blockDim.x + threadIdx.x; i < (n);
|
20
|
+
#define CUDA_KERNEL_LOOP(i, n) \
|
21
|
+
for (auto i = blockIdx.x * blockDim.x + threadIdx.x; i < (n); \
|
22
22
|
i += blockDim.x * gridDim.x)
|
23
23
|
|
24
24
|
template <typename T, typename T_int>
|
@@ -119,12 +119,11 @@ __global__ void update_points_flag(const int *points_valid,
|
|
119
119
|
}
|
120
120
|
|
121
121
|
template <typename T_int>
|
122
|
-
__global__ void
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
T_int *grid_idx_to_voxel_idx) {
|
122
|
+
__global__ void
|
123
|
+
get_voxel_idx_kernel(const int *points_flag, const T_int *points_to_grid_idx,
|
124
|
+
const int *points_flag_prefix_sum, const int num_points,
|
125
|
+
const int max_voxels, T_int *num_voxels,
|
126
|
+
T_int *grid_idx_to_voxel_idx) {
|
128
127
|
int tid = threadIdx.x + blockIdx.x * blockDim.x;
|
129
128
|
for (int i = tid; i < num_points; i += gridDim.x * blockDim.x) {
|
130
129
|
if (points_flag[i] == 1) {
|
@@ -155,11 +154,12 @@ __global__ void init_voxels_kernel(const int64_t num, T *voxels) {
|
|
155
154
|
}
|
156
155
|
|
157
156
|
template <typename T, typename T_int>
|
158
|
-
__global__ void
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
157
|
+
__global__ void
|
158
|
+
assign_voxels_kernel(const T *points, const T_int *points_to_grid_idx,
|
159
|
+
const T_int *points_to_num_idx,
|
160
|
+
const T_int *grid_idx_to_voxel_idx,
|
161
|
+
const int64_t num_points, const int num_point_dim,
|
162
|
+
const int max_num_points_in_voxel, T *voxels) {
|
163
163
|
int64_t point_idx = blockIdx.x * blockDim.x + threadIdx.x;
|
164
164
|
if (point_idx > num_points || point_idx == num_points) {
|
165
165
|
return;
|
@@ -179,13 +179,12 @@ __global__ void assign_voxels_kernel(
|
|
179
179
|
}
|
180
180
|
|
181
181
|
template <typename T, typename T_int>
|
182
|
-
__global__ void
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
T *coords, T *num_points_per_voxel) {
|
182
|
+
__global__ void
|
183
|
+
assign_coords_kernel(const T_int *grid_idx_to_voxel_idx,
|
184
|
+
const T_int *num_points_in_grid, const int num_grids,
|
185
|
+
const int grid_size_x, const int grid_size_y,
|
186
|
+
const int grid_size_z, const int max_num_points_in_voxel,
|
187
|
+
T *coords, T *num_points_per_voxel) {
|
189
188
|
int64_t grid_idx = blockIdx.x * blockDim.x + threadIdx.x;
|
190
189
|
if (grid_idx > num_grids || grid_idx == num_grids) {
|
191
190
|
return;
|
@@ -205,10 +204,11 @@ __global__ void assign_coords_kernel(const T_int *grid_idx_to_voxel_idx,
|
|
205
204
|
}
|
206
205
|
}
|
207
206
|
|
208
|
-
std::vector<paddle::Tensor>
|
209
|
-
|
210
|
-
|
211
|
-
|
207
|
+
std::vector<paddle::Tensor>
|
208
|
+
hard_voxelize_cuda(const paddle::Tensor &points,
|
209
|
+
const std::vector<float> &voxel_size,
|
210
|
+
const std::vector<float> &point_cloud_range,
|
211
|
+
int max_num_points_in_voxel, int max_voxels) {
|
212
212
|
// check device
|
213
213
|
CHECK_INPUT_CUDA(points);
|
214
214
|
|
paddlex/paddlex_cli.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# Copyright (c) 2024 PaddlePaddle Authors. All Rights Reserved.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -12,19 +12,28 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
import os
|
16
15
|
import argparse
|
16
|
+
import ast
|
17
17
|
import importlib.resources
|
18
|
+
import os
|
19
|
+
import shutil
|
18
20
|
import subprocess
|
19
21
|
import sys
|
20
|
-
import shutil
|
21
22
|
from pathlib import Path
|
22
23
|
|
23
24
|
from . import create_pipeline
|
25
|
+
from .constants import MODEL_FILE_PREFIX
|
24
26
|
from .inference.pipelines import load_pipeline_config
|
25
|
-
from .
|
26
|
-
from .
|
27
|
+
from .inference.utils.model_paths import get_model_paths
|
28
|
+
from .repo_manager import get_all_supported_repo_names, setup
|
27
29
|
from .utils import logging
|
30
|
+
from .utils.deps import (
|
31
|
+
get_paddle2onnx_spec,
|
32
|
+
get_serving_dep_specs,
|
33
|
+
require_paddle2onnx_plugin,
|
34
|
+
)
|
35
|
+
from .utils.env import get_paddle_cuda_version
|
36
|
+
from .utils.install import install_packages
|
28
37
|
from .utils.interactive_get_pipeline import interactive_get_pipeline
|
29
38
|
from .utils.pipeline_arguments import PIPELINE_ARGUMENTS
|
30
39
|
|
@@ -57,15 +66,9 @@ def args_cfg():
|
|
57
66
|
################# install pdx #################
|
58
67
|
install_group.add_argument(
|
59
68
|
"--install",
|
60
|
-
action="store_true",
|
61
|
-
default=False,
|
62
|
-
help="Install specified PaddleX plugins.",
|
63
|
-
)
|
64
|
-
install_group.add_argument(
|
65
|
-
"plugins",
|
66
69
|
nargs="*",
|
67
|
-
|
68
|
-
help="
|
70
|
+
metavar="PLUGIN",
|
71
|
+
help="Install specified PaddleX plugins.",
|
69
72
|
)
|
70
73
|
install_group.add_argument(
|
71
74
|
"--no_deps",
|
@@ -92,6 +95,13 @@ def args_cfg():
|
|
92
95
|
default=False,
|
93
96
|
help="Use local repositories if they exist.",
|
94
97
|
)
|
98
|
+
install_group.add_argument(
|
99
|
+
"--deps_to_replace",
|
100
|
+
type=str,
|
101
|
+
nargs="+",
|
102
|
+
default=None,
|
103
|
+
help="Replace dependency version when installing from repositories.",
|
104
|
+
)
|
95
105
|
|
96
106
|
################# pipeline predict #################
|
97
107
|
pipeline_group.add_argument(
|
@@ -116,7 +126,14 @@ def args_cfg():
|
|
116
126
|
help="Device to run the pipeline on (e.g., 'cpu', 'gpu:0').",
|
117
127
|
)
|
118
128
|
pipeline_group.add_argument(
|
119
|
-
"--use_hpip",
|
129
|
+
"--use_hpip",
|
130
|
+
action="store_true",
|
131
|
+
help="Use high-performance inference plugin.",
|
132
|
+
)
|
133
|
+
pipeline_group.add_argument(
|
134
|
+
"--hpi_config",
|
135
|
+
type=ast.literal_eval,
|
136
|
+
help="High-performance inference configuration.",
|
120
137
|
)
|
121
138
|
pipeline_group.add_argument(
|
122
139
|
"--get_pipeline_config",
|
@@ -143,23 +160,26 @@ def args_cfg():
|
|
143
160
|
default=8080,
|
144
161
|
help="Port number to serve on (default: 8080).",
|
145
162
|
)
|
146
|
-
# Serving also uses `--pipeline`, `--device`, and `--
|
163
|
+
# Serving also uses `--pipeline`, `--device`, `--use_hpip`, and `--hpi_config`
|
147
164
|
|
148
165
|
################# paddle2onnx #################
|
149
166
|
paddle2onnx_group.add_argument(
|
150
|
-
"--paddle2onnx",
|
167
|
+
"--paddle2onnx",
|
168
|
+
action="store_true",
|
169
|
+
help="Convert PaddlePaddle model to ONNX format.",
|
151
170
|
)
|
152
171
|
paddle2onnx_group.add_argument(
|
153
|
-
"--paddle_model_dir",
|
172
|
+
"--paddle_model_dir",
|
173
|
+
type=str,
|
174
|
+
help="Directory containing the PaddlePaddle model.",
|
154
175
|
)
|
155
176
|
paddle2onnx_group.add_argument(
|
156
177
|
"--onnx_model_dir",
|
157
178
|
type=str,
|
158
|
-
|
159
|
-
help="Output directory for the ONNX model",
|
179
|
+
help="Output directory for the ONNX model.",
|
160
180
|
)
|
161
181
|
paddle2onnx_group.add_argument(
|
162
|
-
"--opset_version", type=int, help="Version of the ONNX opset to use"
|
182
|
+
"--opset_version", type=int, default=7, help="Version of the ONNX opset to use."
|
163
183
|
)
|
164
184
|
|
165
185
|
# Parse known arguments to get the pipeline name
|
@@ -167,7 +187,10 @@ def args_cfg():
|
|
167
187
|
pipeline = args.pipeline
|
168
188
|
pipeline_args = []
|
169
189
|
|
170
|
-
if
|
190
|
+
if (
|
191
|
+
not (args.install is not None or args.serve or args.paddle2onnx)
|
192
|
+
and pipeline is not None
|
193
|
+
):
|
171
194
|
if os.path.isfile(pipeline):
|
172
195
|
pipeline_name = load_pipeline_config(pipeline)["pipeline_name"]
|
173
196
|
else:
|
@@ -200,57 +223,49 @@ def install(args):
|
|
200
223
|
"""install paddlex"""
|
201
224
|
|
202
225
|
def _install_serving_deps():
|
203
|
-
|
204
|
-
|
205
|
-
)
|
206
|
-
return subprocess.check_call(
|
207
|
-
[sys.executable, "-m", "pip", "install", "-r", str(req_file)]
|
208
|
-
)
|
226
|
+
reqs = get_serving_dep_specs()
|
227
|
+
# Should we sort the requirements?
|
228
|
+
install_packages(reqs)
|
209
229
|
|
210
230
|
def _install_paddle2onnx_deps():
|
211
|
-
|
212
|
-
"paddlex", "paddle2onnx_requirements.txt"
|
213
|
-
) as req_file:
|
214
|
-
return subprocess.check_call(
|
215
|
-
[sys.executable, "-m", "pip", "install", "-r", str(req_file)]
|
216
|
-
)
|
231
|
+
install_packages([get_paddle2onnx_spec()])
|
217
232
|
|
218
233
|
def _install_hpi_deps(device_type):
|
219
|
-
|
220
|
-
if device_type not in
|
234
|
+
SUPPORTED_DEVICE_TYPES = ["cpu", "gpu", "npu"]
|
235
|
+
if device_type not in SUPPORTED_DEVICE_TYPES:
|
221
236
|
logging.error(
|
222
|
-
"
|
223
|
-
"Supported
|
224
|
-
|
225
|
-
support_device_type,
|
237
|
+
"Failed to install the high-performance plugin.\n"
|
238
|
+
"Supported device types: %s. Your input device type: %s.\n",
|
239
|
+
SUPPORTED_DEVICE_TYPES,
|
226
240
|
device_type,
|
227
241
|
)
|
228
242
|
sys.exit(2)
|
229
243
|
|
230
244
|
if device_type == "cpu":
|
231
|
-
|
245
|
+
package = "ultra-infer-python"
|
232
246
|
elif device_type == "gpu":
|
233
|
-
|
247
|
+
cuda_version = get_paddle_cuda_version()
|
248
|
+
if not cuda_version:
|
249
|
+
sys.exit(
|
250
|
+
"No CUDA version found. Please make sure you have installed PaddlePaddle with CUDA enabled."
|
251
|
+
)
|
252
|
+
if cuda_version[0] != 11:
|
253
|
+
sys.exit(
|
254
|
+
"You are not using PaddlePaddle compiled with CUDA 11. Currently, CUDA versions other than 11.x are not supported by the high-performance inference plugin."
|
255
|
+
)
|
256
|
+
package = "ultra-infer-gpu-python"
|
257
|
+
elif device_type == "npu":
|
258
|
+
package = "ultra-infer-npu-python"
|
234
259
|
|
235
260
|
with importlib.resources.path("paddlex", "hpip_links.html") as f:
|
236
|
-
|
237
|
-
[
|
238
|
-
sys.executable,
|
239
|
-
"-m",
|
240
|
-
"pip",
|
241
|
-
"install",
|
242
|
-
"--find-links",
|
243
|
-
str(f),
|
244
|
-
*packages,
|
245
|
-
]
|
246
|
-
)
|
261
|
+
install_packages([package], pip_install_opts=["--find-links", str(f)])
|
247
262
|
|
248
263
|
# Enable debug info
|
249
264
|
os.environ["PADDLE_PDX_DEBUG"] = "True"
|
250
265
|
# Disable eager initialization
|
251
266
|
os.environ["PADDLE_PDX_EAGER_INIT"] = "False"
|
252
267
|
|
253
|
-
plugins = args.
|
268
|
+
plugins = args.install[:]
|
254
269
|
|
255
270
|
if "serving" in plugins:
|
256
271
|
plugins.remove("serving")
|
@@ -296,6 +311,7 @@ def install(args):
|
|
296
311
|
platform=args.platform,
|
297
312
|
update_repos=args.update_repos,
|
298
313
|
use_local_repos=args.use_local_repos,
|
314
|
+
deps_to_replace=args.deps_to_replace,
|
299
315
|
)
|
300
316
|
return
|
301
317
|
|
@@ -306,10 +322,13 @@ def pipeline_predict(
|
|
306
322
|
device,
|
307
323
|
save_path,
|
308
324
|
use_hpip,
|
325
|
+
hpi_config,
|
309
326
|
**pipeline_args,
|
310
327
|
):
|
311
328
|
"""pipeline predict"""
|
312
|
-
pipeline = create_pipeline(
|
329
|
+
pipeline = create_pipeline(
|
330
|
+
pipeline, device=device, use_hpip=use_hpip, hpi_config=hpi_config
|
331
|
+
)
|
313
332
|
result = pipeline.predict(input, **pipeline_args)
|
314
333
|
for res in result:
|
315
334
|
res.print()
|
@@ -317,36 +336,35 @@ def pipeline_predict(
|
|
317
336
|
res.save_all(save_path=save_path)
|
318
337
|
|
319
338
|
|
320
|
-
def serve(pipeline, *, device, use_hpip, host, port):
|
339
|
+
def serve(pipeline, *, device, use_hpip, hpi_config, host, port):
|
321
340
|
from .inference.serving.basic_serving import create_pipeline_app, run_server
|
322
341
|
|
323
342
|
pipeline_config = load_pipeline_config(pipeline)
|
324
|
-
pipeline = create_pipeline(
|
343
|
+
pipeline = create_pipeline(
|
344
|
+
config=pipeline_config, device=device, use_hpip=use_hpip, hpi_config=hpi_config
|
345
|
+
)
|
325
346
|
app = create_pipeline_app(pipeline, pipeline_config)
|
326
347
|
run_server(app, host=host, port=port)
|
327
348
|
|
328
349
|
|
329
350
|
# TODO: Move to another module
|
330
351
|
def paddle_to_onnx(paddle_model_dir, onnx_model_dir, *, opset_version):
|
331
|
-
|
332
|
-
|
333
|
-
ONNX_MODEL_FILENAME = "
|
334
|
-
CONFIG_FILENAME = "
|
352
|
+
require_paddle2onnx_plugin()
|
353
|
+
|
354
|
+
ONNX_MODEL_FILENAME = f"{MODEL_FILE_PREFIX}.onnx"
|
355
|
+
CONFIG_FILENAME = f"{MODEL_FILE_PREFIX}.yml"
|
335
356
|
ADDITIONAL_FILENAMES = ["scaler.pkl"]
|
336
357
|
|
337
|
-
def _check_input_dir(input_dir
|
358
|
+
def _check_input_dir(input_dir):
|
338
359
|
if input_dir is None:
|
339
360
|
sys.exit("Input directory must be specified")
|
340
361
|
if not input_dir.exists():
|
341
362
|
sys.exit(f"{input_dir} does not exist")
|
342
363
|
if not input_dir.is_dir():
|
343
364
|
sys.exit(f"{input_dir} is not a directory")
|
344
|
-
|
345
|
-
if not
|
346
|
-
sys.exit(
|
347
|
-
params_path = input_dir / PD_PARAMS_FILENAME
|
348
|
-
if not params_path.exists():
|
349
|
-
sys.exit(f"{params_path} does not exist")
|
365
|
+
model_paths = get_model_paths(input_dir)
|
366
|
+
if "paddle" not in model_paths:
|
367
|
+
sys.exit("PaddlePaddle model does not exist")
|
350
368
|
config_path = input_dir / CONFIG_FILENAME
|
351
369
|
if not config_path.exists():
|
352
370
|
sys.exit(f"{config_path} does not exist")
|
@@ -355,23 +373,18 @@ def paddle_to_onnx(paddle_model_dir, onnx_model_dir, *, opset_version):
|
|
355
373
|
if shutil.which("paddle2onnx") is None:
|
356
374
|
sys.exit("Paddle2ONNX is not available. Please install the plugin first.")
|
357
375
|
|
358
|
-
def _run_paddle2onnx(input_dir,
|
376
|
+
def _run_paddle2onnx(input_dir, output_dir, opset_version):
|
377
|
+
model_paths = get_model_paths(input_dir)
|
359
378
|
logging.info("Paddle2ONNX conversion starting...")
|
360
379
|
# XXX: To circumvent Paddle2ONNX's bug
|
361
|
-
if opset_version is None:
|
362
|
-
if pd_model_file_ext == ".json":
|
363
|
-
opset_version = 19
|
364
|
-
else:
|
365
|
-
opset_version = 7
|
366
|
-
logging.info("Using default ONNX opset version: %d", opset_version)
|
367
380
|
cmd = [
|
368
381
|
"paddle2onnx",
|
369
382
|
"--model_dir",
|
370
|
-
str(
|
383
|
+
str(model_paths["paddle"][0].parent),
|
371
384
|
"--model_filename",
|
372
|
-
str(
|
385
|
+
str(model_paths["paddle"][0].name),
|
373
386
|
"--params_filename",
|
374
|
-
|
387
|
+
str(model_paths["paddle"][1].name),
|
375
388
|
"--save_file",
|
376
389
|
str(output_dir / ONNX_MODEL_FILENAME),
|
377
390
|
"--opset_version",
|
@@ -399,16 +412,14 @@ def paddle_to_onnx(paddle_model_dir, onnx_model_dir, *, opset_version):
|
|
399
412
|
logging.info(f"Copied {src_path} to {dst_path}")
|
400
413
|
|
401
414
|
paddle_model_dir = Path(paddle_model_dir)
|
415
|
+
if not onnx_model_dir:
|
416
|
+
onnx_model_dir = paddle_model_dir
|
402
417
|
onnx_model_dir = Path(onnx_model_dir)
|
403
418
|
logging.info(f"Input dir: {paddle_model_dir}")
|
404
419
|
logging.info(f"Output dir: {onnx_model_dir}")
|
405
|
-
|
406
|
-
if not FLAGS_json_format_model:
|
407
|
-
if not (paddle_model_dir / f"{PD_MODEL_FILE_PREFIX}.json").exists():
|
408
|
-
pd_model_file_ext = ".pdmodel"
|
409
|
-
_check_input_dir(paddle_model_dir, pd_model_file_ext)
|
420
|
+
_check_input_dir(paddle_model_dir)
|
410
421
|
_check_paddle2onnx()
|
411
|
-
_run_paddle2onnx(paddle_model_dir,
|
422
|
+
_run_paddle2onnx(paddle_model_dir, onnx_model_dir, opset_version)
|
412
423
|
if not (onnx_model_dir.exists() and onnx_model_dir.samefile(paddle_model_dir)):
|
413
424
|
_copy_config_file(paddle_model_dir, onnx_model_dir)
|
414
425
|
_copy_additional_files(paddle_model_dir, onnx_model_dir)
|
@@ -426,22 +437,26 @@ def main():
|
|
426
437
|
parser.print_help()
|
427
438
|
sys.exit(2)
|
428
439
|
|
429
|
-
if args.install:
|
440
|
+
if args.install is not None:
|
430
441
|
install(args)
|
442
|
+
return
|
431
443
|
elif args.serve:
|
432
444
|
serve(
|
433
445
|
args.pipeline,
|
434
446
|
device=args.device,
|
435
|
-
use_hpip=args.use_hpip,
|
447
|
+
use_hpip=args.use_hpip or None,
|
448
|
+
hpi_config=args.hpi_config,
|
436
449
|
host=args.host,
|
437
450
|
port=args.port,
|
438
451
|
)
|
452
|
+
return
|
439
453
|
elif args.paddle2onnx:
|
440
454
|
paddle_to_onnx(
|
441
455
|
args.paddle_model_dir,
|
442
456
|
args.onnx_model_dir,
|
443
457
|
opset_version=args.opset_version,
|
444
458
|
)
|
459
|
+
return
|
445
460
|
else:
|
446
461
|
if args.get_pipeline_config is not None:
|
447
462
|
interactive_get_pipeline(args.get_pipeline_config, args.save_path)
|
@@ -454,11 +469,13 @@ def main():
|
|
454
469
|
pipeline_args_dict[arg_name] = getattr(args, arg_name)
|
455
470
|
else:
|
456
471
|
logging.warning(f"Argument {arg_name} is missing in args")
|
457
|
-
|
472
|
+
pipeline_predict(
|
458
473
|
args.pipeline,
|
459
474
|
args.input,
|
460
475
|
args.device,
|
461
476
|
args.save_path,
|
462
|
-
use_hpip=args.use_hpip,
|
477
|
+
use_hpip=args.use_hpip or None,
|
478
|
+
hpi_config=args.hpi_config,
|
463
479
|
**pipeline_args_dict,
|
464
480
|
)
|
481
|
+
return
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# Copyright (c) 2024 PaddlePaddle Authors. All Rights Reserved.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -15,11 +15,11 @@
|
|
15
15
|
|
16
16
|
import os.path as osp
|
17
17
|
|
18
|
-
from .runner import raise_unsupported_api_error
|
19
|
-
from ...base import BaseModel
|
20
18
|
from ....utils import logging
|
21
|
-
from ...base.utils.arg import CLIArgument
|
22
19
|
from ....utils.misc import abspath
|
20
|
+
from ...base import BaseModel
|
21
|
+
from ...base.utils.arg import CLIArgument
|
22
|
+
from .runner import raise_unsupported_api_error
|
23
23
|
|
24
24
|
|
25
25
|
class BEVFusionModel(BaseModel):
|
@@ -54,7 +54,7 @@ class BEVFusionModel(BaseModel):
|
|
54
54
|
raise ValueError(f"`dy2st`={dy2st} is not supported.")
|
55
55
|
if device in ("cpu", "gpu"):
|
56
56
|
logging.warning(
|
57
|
-
f"The device type to use will be automatically determined, which may differ from the
|
57
|
+
f"The device type to use will be automatically determined, which may differ from the specified type: {repr(device)}."
|
58
58
|
)
|
59
59
|
|
60
60
|
# Update YAML config file
|
@@ -134,7 +134,7 @@ class BEVFusionModel(BaseModel):
|
|
134
134
|
|
135
135
|
if device in ("cpu", "gpu"):
|
136
136
|
logging.warning(
|
137
|
-
f"The device type to use will be automatically determined, which may differ from the
|
137
|
+
f"The device type to use will be automatically determined, which may differ from the specified type: {repr(device)}."
|
138
138
|
)
|
139
139
|
|
140
140
|
# Update YAML config file
|