paddlex 3.0.0rc0__py3-none-any.whl → 3.0.0rc1__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/doc_vlm/PP-DocBee-2B.yaml +14 -0
- paddlex/configs/modules/doc_vlm/PP-DocBee-7B.yaml +14 -0
- paddlex/configs/modules/open_vocabulary_detection/YOLO-Worldv2-L.yaml +13 -0
- paddlex/configs/pipelines/anomaly_detection.yaml +1 -1
- paddlex/configs/pipelines/doc_understanding.yaml +9 -0
- 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 +64 -0
- paddlex/inference/common/batch_sampler/image_batch_sampler.py +12 -36
- 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 +12 -13
- 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 +284 -39
- paddlex/inference/models/common/__init__.py +6 -15
- paddlex/inference/models/common/static_infer.py +764 -243
- paddlex/inference/models/common/tokenizer/__init__.py +5 -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 +7 -5
- paddlex/inference/models/common/tokenizer/qwen2_tokenizer.py +432 -0
- paddlex/inference/models/common/tokenizer/tokenizer_utils.py +72 -64
- paddlex/inference/models/common/tokenizer/tokenizer_utils_base.py +337 -121
- paddlex/inference/models/common/tokenizer/utils.py +1 -1
- paddlex/inference/models/common/tokenizer/vocab.py +1 -1
- 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/distributed.py +229 -0
- paddlex/inference/models/common/vlm/flash_attn_utils.py +119 -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 +2038 -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/__init__.py +15 -0
- paddlex/inference/models/doc_vlm/modeling/qwen2_vl.py +2600 -0
- paddlex/inference/models/doc_vlm/predictor.py +198 -0
- paddlex/inference/models/doc_vlm/processors/__init__.py +15 -0
- paddlex/inference/models/doc_vlm/processors/common.py +372 -0
- paddlex/inference/models/doc_vlm/processors/qwen2_vl.py +698 -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 +11 -27
- paddlex/inference/models/formula_recognition/processors.py +35 -19
- paddlex/inference/models/formula_recognition/result.py +19 -12
- 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 +4 -1
- 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 +2 -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 +6 -12
- paddlex/inference/models/object_detection/processors.py +36 -31
- paddlex/inference/models/object_detection/result.py +5 -4
- paddlex/inference/models/object_detection/utils.py +1 -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 +9 -6
- paddlex/inference/models/text_detection/__init__.py +1 -1
- paddlex/inference/models/text_detection/predictor.py +16 -24
- paddlex/inference/models/text_detection/processors.py +74 -36
- paddlex/inference/models/text_detection/result.py +9 -4
- 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 +44 -37
- paddlex/inference/pipelines/anomaly_detection/__init__.py +1 -1
- paddlex/inference/pipelines/anomaly_detection/pipeline.py +16 -6
- paddlex/inference/pipelines/attribute_recognition/__init__.py +1 -1
- paddlex/inference/pipelines/attribute_recognition/pipeline.py +13 -8
- paddlex/inference/pipelines/attribute_recognition/result.py +10 -8
- paddlex/inference/pipelines/base.py +31 -11
- 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 +9 -4
- 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 +21 -28
- 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 +22 -16
- paddlex/inference/pipelines/formula_recognition/result.py +20 -19
- paddlex/inference/pipelines/image_classification/__init__.py +1 -1
- paddlex/inference/pipelines/image_classification/pipeline.py +17 -8
- paddlex/inference/pipelines/image_multilabel_classification/__init__.py +1 -1
- paddlex/inference/pipelines/image_multilabel_classification/pipeline.py +18 -9
- paddlex/inference/pipelines/instance_segmentation/__init__.py +1 -1
- paddlex/inference/pipelines/instance_segmentation/pipeline.py +17 -6
- paddlex/inference/pipelines/keypoint_detection/__init__.py +1 -1
- paddlex/inference/pipelines/keypoint_detection/pipeline.py +17 -6
- paddlex/inference/pipelines/layout_parsing/__init__.py +1 -1
- paddlex/inference/pipelines/layout_parsing/pipeline.py +23 -12
- paddlex/inference/pipelines/layout_parsing/pipeline_v2.py +16 -6
- paddlex/inference/pipelines/layout_parsing/result.py +5 -4
- paddlex/inference/pipelines/layout_parsing/result_v2.py +5 -8
- paddlex/inference/pipelines/layout_parsing/utils.py +7 -8
- 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 +16 -6
- paddlex/inference/pipelines/ocr/__init__.py +1 -1
- paddlex/inference/pipelines/ocr/pipeline.py +28 -11
- paddlex/inference/pipelines/ocr/result.py +13 -9
- 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 -11
- paddlex/inference/pipelines/pp_chatocr/pipeline_v4.py +31 -13
- 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 +17 -6
- paddlex/inference/pipelines/seal_recognition/__init__.py +1 -1
- paddlex/inference/pipelines/seal_recognition/pipeline.py +21 -13
- 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 +17 -6
- paddlex/inference/pipelines/small_object_detection/__init__.py +1 -1
- paddlex/inference/pipelines/small_object_detection/pipeline.py +17 -6
- paddlex/inference/pipelines/table_recognition/__init__.py +1 -1
- paddlex/inference/pipelines/table_recognition/pipeline.py +41 -25
- paddlex/inference/pipelines/table_recognition/pipeline_v2.py +65 -33
- paddlex/inference/pipelines/table_recognition/result.py +11 -9
- paddlex/inference/pipelines/table_recognition/table_recognition_post_processing.py +12 -8
- paddlex/inference/pipelines/table_recognition/table_recognition_post_processing_v2.py +46 -32
- 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 +7 -3
- 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 -7
- 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 -11
- paddlex/inference/serving/basic_serving/_pipeline_apps/pp_chatocrv4_doc.py +16 -13
- paddlex/inference/serving/basic_serving/_pipeline_apps/pp_shituv2.py +16 -13
- paddlex/inference/serving/basic_serving/_pipeline_apps/pp_structurev3.py +10 -7
- 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 +10 -7
- paddlex/inference/serving/basic_serving/_pipeline_apps/table_recognition_v2.py +10 -7
- 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 +37 -9
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- paddlex/inference/serving/schemas/pp_chatocrv4_doc.py +1 -1
- paddlex/inference/serving/schemas/pp_shituv2.py +1 -1
- paddlex/inference/serving/schemas/pp_structurev3.py +1 -1
- paddlex/inference/serving/schemas/rotated_object_detection.py +1 -1
- paddlex/inference/serving/schemas/seal_recognition.py +1 -1
- 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 +1 -1
- paddlex/inference/serving/schemas/table_recognition_v2.py +1 -1
- 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 +251 -0
- paddlex/inference/utils/hpi_model_info_collection.json +2252 -0
- paddlex/inference/utils/io/__init__.py +11 -11
- paddlex/inference/utils/io/readers.py +22 -18
- 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/model_paths.py +48 -0
- paddlex/inference/utils/{new_ir_blacklist.py → new_ir_blocklist.py} +1 -2
- paddlex/inference/utils/official_models.py +264 -262
- paddlex/inference/utils/pp_option.py +164 -93
- paddlex/inference/utils/trt_blocklist.py +43 -0
- paddlex/inference/utils/trt_config.py +420 -0
- paddlex/model.py +28 -10
- 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 +1 -1
- 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 +8 -8
- 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 +1 -1
- 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 +1 -1
- paddlex/modules/formula_recognition/exportor.py +1 -1
- paddlex/modules/formula_recognition/model_list.py +1 -1
- paddlex/modules/formula_recognition/trainer.py +2 -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 +1 -1
- 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 +1 -1
- paddlex/modules/image_classification/exportor.py +1 -1
- paddlex/modules/image_classification/model_list.py +1 -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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +13 -8
- 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 +9 -4
- paddlex/modules/object_detection/exportor.py +1 -1
- paddlex/modules/object_detection/model_list.py +1 -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 +1 -1
- 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 +1 -1
- 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 +1 -1
- paddlex/modules/text_detection/exportor.py +1 -1
- paddlex/modules/text_detection/model_list.py +1 -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 +1 -1
- paddlex/modules/text_recognition/exportor.py +1 -1
- paddlex/modules/text_recognition/model_list.py +1 -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 +1 -1
- 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 +4 -4
- paddlex/modules/ts_classification/evaluator.py +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +5 -2
- 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 +86 -75
- 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 +4 -4
- 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 +4 -3
- paddlex/repo_apis/PaddleClas_api/cls/model.py +3 -3
- paddlex/repo_apis/PaddleClas_api/cls/register.py +2 -3
- paddlex/repo_apis/PaddleClas_api/cls/runner.py +1 -2
- 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 +3 -3
- paddlex/repo_apis/PaddleDetection_api/instance_seg/register.py +2 -3
- paddlex/repo_apis/PaddleDetection_api/instance_seg/runner.py +1 -2
- paddlex/repo_apis/PaddleDetection_api/object_det/__init__.py +3 -3
- paddlex/repo_apis/PaddleDetection_api/object_det/config.py +4 -3
- paddlex/repo_apis/PaddleDetection_api/object_det/model.py +5 -6
- paddlex/repo_apis/PaddleDetection_api/object_det/official_categories.py +1 -1
- paddlex/repo_apis/PaddleDetection_api/object_det/register.py +2 -3
- paddlex/repo_apis/PaddleDetection_api/object_det/runner.py +1 -2
- 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 +4 -3
- paddlex/repo_apis/PaddleOCR_api/formula_rec/model.py +4 -4
- paddlex/repo_apis/PaddleOCR_api/formula_rec/register.py +2 -3
- paddlex/repo_apis/PaddleOCR_api/formula_rec/runner.py +1 -2
- 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 +3 -3
- paddlex/repo_apis/PaddleOCR_api/table_rec/register.py +2 -3
- paddlex/repo_apis/PaddleOCR_api/table_rec/runner.py +2 -2
- 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 +3 -3
- paddlex/repo_apis/PaddleOCR_api/text_det/register.py +2 -3
- paddlex/repo_apis/PaddleOCR_api/text_det/runner.py +2 -2
- paddlex/repo_apis/PaddleOCR_api/text_rec/__init__.py +1 -1
- paddlex/repo_apis/PaddleOCR_api/text_rec/config.py +4 -3
- paddlex/repo_apis/PaddleOCR_api/text_rec/model.py +4 -4
- paddlex/repo_apis/PaddleOCR_api/text_rec/register.py +2 -3
- paddlex/repo_apis/PaddleOCR_api/text_rec/runner.py +1 -2
- 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 +5 -5
- paddlex/repo_apis/PaddleSeg_api/seg/register.py +2 -3
- paddlex/repo_apis/PaddleSeg_api/seg/runner.py +1 -2
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +4 -3
- paddlex/repo_apis/PaddleVideo_api/video_cls/model.py +3 -3
- paddlex/repo_apis/PaddleVideo_api/video_cls/register.py +2 -3
- paddlex/repo_apis/PaddleVideo_api/video_cls/runner.py +1 -2
- paddlex/repo_apis/PaddleVideo_api/video_det/__init__.py +3 -3
- paddlex/repo_apis/PaddleVideo_api/video_det/config.py +4 -3
- paddlex/repo_apis/PaddleVideo_api/video_det/model.py +4 -4
- paddlex/repo_apis/PaddleVideo_api/video_det/register.py +2 -3
- paddlex/repo_apis/PaddleVideo_api/video_det/runner.py +1 -2
- paddlex/repo_apis/__init__.py +1 -1
- paddlex/repo_apis/base/__init__.py +4 -5
- paddlex/repo_apis/base/config.py +2 -3
- 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 +9 -27
- paddlex/repo_manager/meta.py +37 -31
- paddlex/repo_manager/repo.py +169 -160
- 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} +29 -199
- paddlex/utils/deps.py +249 -0
- paddlex/utils/device.py +73 -29
- paddlex/utils/download.py +4 -4
- paddlex/utils/env.py +33 -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 +19 -12
- paddlex/utils/fonts/__init__.py +2 -1
- 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 +5 -5
- 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.0rc1.dist-info}/METADATA +212 -73
- paddlex-3.0.0rc1.dist-info/RECORD +1068 -0
- {paddlex-3.0.0rc0.dist-info → paddlex-3.0.0rc1.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.0rc1.dist-info}/entry_points.txt +0 -0
- {paddlex-3.0.0rc0.dist-info → paddlex-3.0.0rc1.dist-info/licenses}/LICENSE +0 -0
- {paddlex-3.0.0rc0.dist-info → paddlex-3.0.0rc1.dist-info}/top_level.txt +0 -0
paddlex/utils/deps.py
ADDED
@@ -0,0 +1,249 @@
|
|
1
|
+
# Copyright (c) 2024 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 importlib.metadata
|
16
|
+
import importlib.util
|
17
|
+
import inspect
|
18
|
+
import re
|
19
|
+
from collections import defaultdict
|
20
|
+
from functools import lru_cache, wraps
|
21
|
+
|
22
|
+
from packaging.requirements import Requirement
|
23
|
+
from packaging.version import Version
|
24
|
+
|
25
|
+
from . import logging
|
26
|
+
|
27
|
+
_EXTRA_PATTERN = re.compile(
|
28
|
+
r"(?:;|and)*[ \t]*extra[ \t]*==[ \t]*['\"]([a-z0-9]+(?:-[a-z0-9]+)*)['\"]"
|
29
|
+
)
|
30
|
+
_COLLECTIVE_EXTRA_NAMES = {"base", "plugins", "all"}
|
31
|
+
|
32
|
+
|
33
|
+
def _get_extra_name_and_remove_extra_marker(dep_spec):
|
34
|
+
# XXX: Not sure if this is correct
|
35
|
+
m = _EXTRA_PATTERN.search(dep_spec)
|
36
|
+
if m:
|
37
|
+
return m.group(1), dep_spec[: m.start()] + dep_spec[m.end() :]
|
38
|
+
else:
|
39
|
+
return None, dep_spec
|
40
|
+
|
41
|
+
|
42
|
+
def _get_extras():
|
43
|
+
metadata = importlib.metadata.metadata("paddlex")
|
44
|
+
extras = {}
|
45
|
+
# XXX: The `metadata.get_all` used here is not well documented.
|
46
|
+
for name in metadata.get_all("Provides-Extra", []):
|
47
|
+
if name not in _COLLECTIVE_EXTRA_NAMES:
|
48
|
+
extras[name] = defaultdict(list)
|
49
|
+
for dep_spec in importlib.metadata.requires("paddlex"):
|
50
|
+
extra_name, dep_spec = _get_extra_name_and_remove_extra_marker(dep_spec)
|
51
|
+
if extra_name is not None and extra_name not in _COLLECTIVE_EXTRA_NAMES:
|
52
|
+
dep_spec = dep_spec.rstrip()
|
53
|
+
req = Requirement(dep_spec)
|
54
|
+
assert extra_name in extras, extra_name
|
55
|
+
extras[extra_name][req.name].append(dep_spec)
|
56
|
+
return extras
|
57
|
+
|
58
|
+
|
59
|
+
EXTRAS = _get_extras()
|
60
|
+
|
61
|
+
|
62
|
+
def _get_dep_specs():
|
63
|
+
dep_specs = defaultdict(list)
|
64
|
+
for dep_spec in importlib.metadata.requires("paddlex"):
|
65
|
+
extra_name, dep_spec = _get_extra_name_and_remove_extra_marker(dep_spec)
|
66
|
+
if extra_name is None or extra_name == "all":
|
67
|
+
dep_spec = dep_spec.rstrip()
|
68
|
+
req = Requirement(dep_spec)
|
69
|
+
dep_specs[req.name].append(dep_spec)
|
70
|
+
return dep_specs
|
71
|
+
|
72
|
+
|
73
|
+
DEP_SPECS = _get_dep_specs()
|
74
|
+
|
75
|
+
|
76
|
+
def _get_dep_version(dep):
|
77
|
+
try:
|
78
|
+
return importlib.metadata.version(dep)
|
79
|
+
except importlib.metadata.PackageNotFoundError:
|
80
|
+
return None
|
81
|
+
|
82
|
+
|
83
|
+
@lru_cache()
|
84
|
+
def is_dep_available(dep, /, check_version=None):
|
85
|
+
# Currently for several special deps we check if the import packages exist.
|
86
|
+
if dep in ("paddlepaddle", "paddle-custom-device", "ultra-infer") and check_version:
|
87
|
+
raise ValueError(
|
88
|
+
"Currently, `check_version` is not allowed to be `True` for `paddlepaddle`, `paddle-custom-device`, and `ultra-infer`."
|
89
|
+
)
|
90
|
+
if dep == "paddlepaddle":
|
91
|
+
return importlib.util.find_spec("paddle") is not None
|
92
|
+
elif dep == "paddle-custom-device":
|
93
|
+
return importlib.util.find_spec("paddle_custom_device") is not None
|
94
|
+
elif dep == "ultra-infer":
|
95
|
+
return importlib.util.find_spec("ultra_infer") is not None
|
96
|
+
else:
|
97
|
+
if dep != "paddle2onnx" and dep not in DEP_SPECS:
|
98
|
+
raise ValueError("Unknown dependency")
|
99
|
+
if check_version is None:
|
100
|
+
if dep == "paddle2onnx":
|
101
|
+
check_version = True
|
102
|
+
else:
|
103
|
+
check_version = False
|
104
|
+
version = _get_dep_version(dep)
|
105
|
+
if version is None:
|
106
|
+
return False
|
107
|
+
if check_version:
|
108
|
+
if dep == "paddle2onnx":
|
109
|
+
return Version(version) in Requirement(get_paddle2onnx_spec()).specifier
|
110
|
+
for dep_spec in DEP_SPECS[dep]:
|
111
|
+
if Version(version) in Requirement(dep_spec).specifier:
|
112
|
+
return True
|
113
|
+
else:
|
114
|
+
return True
|
115
|
+
|
116
|
+
|
117
|
+
def require_deps(*deps, obj_name=None):
|
118
|
+
unavailable_deps = [dep for dep in deps if not is_dep_available(dep)]
|
119
|
+
if len(unavailable_deps) > 0:
|
120
|
+
if obj_name is not None:
|
121
|
+
msg = f"`{obj_name}` is not ready for use, because the"
|
122
|
+
else:
|
123
|
+
msg = "The"
|
124
|
+
msg += " following dependencies are not available:\n" + "\n".join(
|
125
|
+
unavailable_deps
|
126
|
+
)
|
127
|
+
raise RuntimeError(msg)
|
128
|
+
|
129
|
+
|
130
|
+
def function_requires_deps(*deps):
|
131
|
+
def _deco(func):
|
132
|
+
@wraps(func)
|
133
|
+
def _wrapper(*args, **kwargs):
|
134
|
+
require_deps(*func._deps_, obj_name=func.__name__)
|
135
|
+
return func(*args, **kwargs)
|
136
|
+
|
137
|
+
func._deps_ = set(deps)
|
138
|
+
return _wrapper
|
139
|
+
|
140
|
+
return _deco
|
141
|
+
|
142
|
+
|
143
|
+
def class_requires_deps(*deps):
|
144
|
+
def _deco(cls):
|
145
|
+
@wraps(cls.__init__)
|
146
|
+
def _wrapper(self, *args, **kwargs):
|
147
|
+
require_deps(*cls._deps_, obj_name=cls.__name__)
|
148
|
+
return old_init_func(self, *args, **kwargs)
|
149
|
+
|
150
|
+
cls._deps_ = set(deps)
|
151
|
+
for base_cls in inspect.getmro(cls)[1:-1]:
|
152
|
+
if hasattr(base_cls, "_deps_"):
|
153
|
+
cls._deps_.update(base_cls._deps_)
|
154
|
+
if "__init__" in cls.__dict__:
|
155
|
+
old_init_func = cls.__init__
|
156
|
+
else:
|
157
|
+
|
158
|
+
def _forward(self, *args, **kwargs):
|
159
|
+
return super(cls, self).__init__(*args, **kwargs)
|
160
|
+
|
161
|
+
old_init_func = _forward
|
162
|
+
cls.__init__ = _wrapper
|
163
|
+
return cls
|
164
|
+
|
165
|
+
return _deco
|
166
|
+
|
167
|
+
|
168
|
+
@lru_cache()
|
169
|
+
def is_extra_available(extra):
|
170
|
+
flags = [is_dep_available(dep) for dep in EXTRAS[extra]]
|
171
|
+
if all(flags):
|
172
|
+
return True
|
173
|
+
logging.debug(
|
174
|
+
"These dependencies are not available: %s",
|
175
|
+
[d for d, f in zip(EXTRAS[extra], flags) if not f],
|
176
|
+
)
|
177
|
+
return False
|
178
|
+
|
179
|
+
|
180
|
+
def require_extra(extra, *, obj_name=None):
|
181
|
+
if not is_extra_available(extra):
|
182
|
+
if obj_name is not None:
|
183
|
+
msg = f"`{obj_name}` requires additional dependencies."
|
184
|
+
else:
|
185
|
+
msg = "Additional dependencies are required."
|
186
|
+
msg += f' To install them, run `pip install "paddlex[{extra}]==<PADDLEX_VERSION>"` if you’re installing `paddlex` from an index, or `pip install -e "/path/to/PaddleX[{extra}]"` if you’re installing `paddlex` locally.'
|
187
|
+
raise RuntimeError(msg)
|
188
|
+
|
189
|
+
|
190
|
+
def pipeline_requires_extra(extra):
|
191
|
+
def _deco(pipeline_cls):
|
192
|
+
@wraps(pipeline_cls.__init__)
|
193
|
+
def _wrapper(self, *args, **kwargs):
|
194
|
+
require_extra(extra, obj_name=pipeline_name)
|
195
|
+
return old_init_func(self, *args, **kwargs)
|
196
|
+
|
197
|
+
old_init_func = pipeline_cls.__init__
|
198
|
+
pipeline_name = pipeline_cls.entities
|
199
|
+
if isinstance(pipeline_name, list):
|
200
|
+
assert len(pipeline_name) == 1, pipeline_name
|
201
|
+
pipeline_name = pipeline_name[0]
|
202
|
+
pipeline_cls.__init__ = _wrapper
|
203
|
+
return pipeline_cls
|
204
|
+
|
205
|
+
return _deco
|
206
|
+
|
207
|
+
|
208
|
+
def is_hpip_available():
|
209
|
+
return is_dep_available("ultra-infer")
|
210
|
+
|
211
|
+
|
212
|
+
def require_hpip():
|
213
|
+
if not is_hpip_available():
|
214
|
+
raise RuntimeError(
|
215
|
+
"The high-performance inference plugin is not available. Please install it properly."
|
216
|
+
)
|
217
|
+
|
218
|
+
|
219
|
+
def is_serving_plugin_available():
|
220
|
+
return is_extra_available("serving")
|
221
|
+
|
222
|
+
|
223
|
+
def require_serving_plugin():
|
224
|
+
if not is_serving_plugin_available():
|
225
|
+
raise RuntimeError(
|
226
|
+
"The serving plugin is not available. Please install it properly."
|
227
|
+
)
|
228
|
+
|
229
|
+
|
230
|
+
def get_serving_dep_specs():
|
231
|
+
dep_specs = []
|
232
|
+
for item in EXTRAS["serving"].values():
|
233
|
+
dep_specs += item
|
234
|
+
return dep_specs
|
235
|
+
|
236
|
+
|
237
|
+
def is_paddle2onnx_plugin_available():
|
238
|
+
return is_dep_available("paddle2onnx")
|
239
|
+
|
240
|
+
|
241
|
+
def require_paddle2onnx_plugin():
|
242
|
+
if not is_paddle2onnx_plugin_available():
|
243
|
+
raise RuntimeError(
|
244
|
+
"The Paddle2ONNX plugin is not available. Please install it properly."
|
245
|
+
)
|
246
|
+
|
247
|
+
|
248
|
+
def get_paddle2onnx_spec():
|
249
|
+
return "paddle2onnx >= 2.0.1"
|
paddlex/utils/device.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.
|
@@ -13,24 +13,26 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
import os
|
16
|
+
from contextlib import ContextDecorator
|
17
|
+
|
16
18
|
import GPUtil
|
17
19
|
|
18
|
-
import lazy_paddle as paddle
|
19
20
|
from . import logging
|
20
|
-
from .
|
21
|
-
from .errors import raise_unsupported_device_error
|
22
|
-
from .custom_device_whitelist import (
|
21
|
+
from .custom_device_list import (
|
23
22
|
DCU_WHITELIST,
|
23
|
+
GCU_WHITELIST,
|
24
24
|
MLU_WHITELIST,
|
25
|
-
|
25
|
+
NPU_BLACKLIST,
|
26
26
|
XPU_WHITELIST,
|
27
|
-
GCU_WHITELIST,
|
28
27
|
)
|
28
|
+
from .flags import DISABLE_DEV_MODEL_WL
|
29
29
|
|
30
30
|
SUPPORTED_DEVICE_TYPE = ["cpu", "gpu", "xpu", "npu", "mlu", "gcu", "dcu"]
|
31
31
|
|
32
32
|
|
33
|
-
def
|
33
|
+
def constr_device(device_type, device_ids):
|
34
|
+
if device_type == "cpu" and device_ids is not None:
|
35
|
+
raise ValueError("`device_ids` must be None for CPUs")
|
34
36
|
if device_ids:
|
35
37
|
device_ids = ",".join(map(str, device_ids))
|
36
38
|
return f"{device_type}:{device_ids}"
|
@@ -50,7 +52,7 @@ def get_default_device():
|
|
50
52
|
if not avail_gpus:
|
51
53
|
return "cpu"
|
52
54
|
else:
|
53
|
-
return
|
55
|
+
return constr_device("gpu", [avail_gpus[0]])
|
54
56
|
|
55
57
|
|
56
58
|
def parse_device(device):
|
@@ -73,6 +75,8 @@ def parse_device(device):
|
|
73
75
|
device_type = device_type.lower()
|
74
76
|
# raise_unsupported_device_error(device_type, SUPPORTED_DEVICE_TYPE)
|
75
77
|
assert device_type.lower() in SUPPORTED_DEVICE_TYPE
|
78
|
+
if device_type == "cpu" and device_ids is not None:
|
79
|
+
raise ValueError("No Device ID should be specified for CPUs")
|
76
80
|
return device_type, device_ids
|
77
81
|
|
78
82
|
|
@@ -80,18 +84,24 @@ def update_device_num(device, num):
|
|
80
84
|
device_type, device_ids = parse_device(device)
|
81
85
|
if device_ids:
|
82
86
|
assert len(device_ids) >= num
|
83
|
-
return
|
87
|
+
return constr_device(device_type, device_ids[:num])
|
84
88
|
else:
|
85
|
-
return
|
89
|
+
return constr_device(device_type, device_ids)
|
86
90
|
|
87
91
|
|
88
92
|
def set_env_for_device(device):
|
93
|
+
device_type, _ = parse_device(device)
|
94
|
+
return set_env_for_device_type(device_type)
|
95
|
+
|
96
|
+
|
97
|
+
def set_env_for_device_type(device_type):
|
98
|
+
import paddle
|
99
|
+
|
89
100
|
def _set(envs):
|
90
101
|
for key, val in envs.items():
|
91
102
|
os.environ[key] = val
|
92
103
|
logging.debug(f"{key} has been set to {val}.")
|
93
104
|
|
94
|
-
device_type, device_ids = parse_device(device)
|
95
105
|
# XXX: is_compiled_with_rocm() must be True on dcu platform ?
|
96
106
|
if device_type.lower() == "dcu" and paddle.is_compiled_with_rocm():
|
97
107
|
envs = {"FLAGS_conv_workspace_size_limit": "2000"}
|
@@ -122,30 +132,64 @@ def set_env_for_device(device):
|
|
122
132
|
_set(envs)
|
123
133
|
|
124
134
|
|
125
|
-
def
|
135
|
+
def check_supported_device_type(device_type, model_name):
|
126
136
|
if DISABLE_DEV_MODEL_WL:
|
127
137
|
logging.warning(
|
128
138
|
"Skip checking if model is supported on device because the flag `PADDLE_PDX_DISABLE_DEV_MODEL_WL` has been set."
|
129
139
|
)
|
130
140
|
return
|
131
|
-
|
141
|
+
tips = "You could set env `PADDLE_PDX_DISABLE_DEV_MODEL_WL` to `true` to disable this checking."
|
132
142
|
if device_type == "dcu":
|
133
|
-
assert (
|
134
|
-
model_name
|
135
|
-
)
|
143
|
+
assert model_name in DCU_WHITELIST, (
|
144
|
+
f"The DCU device does not yet support `{model_name}` model!" + tips
|
145
|
+
)
|
136
146
|
elif device_type == "mlu":
|
137
|
-
assert (
|
138
|
-
model_name
|
139
|
-
)
|
147
|
+
assert model_name in MLU_WHITELIST, (
|
148
|
+
f"The MLU device does not yet support `{model_name}` model!" + tips
|
149
|
+
)
|
140
150
|
elif device_type == "npu":
|
141
|
-
assert (
|
142
|
-
model_name
|
143
|
-
)
|
151
|
+
assert model_name not in NPU_BLACKLIST, (
|
152
|
+
f"The NPU device does not yet support `{model_name}` model!" + tips
|
153
|
+
)
|
144
154
|
elif device_type == "xpu":
|
145
|
-
assert (
|
146
|
-
model_name
|
147
|
-
)
|
155
|
+
assert model_name in XPU_WHITELIST, (
|
156
|
+
f"The XPU device does not yet support `{model_name}` model!" + tips
|
157
|
+
)
|
148
158
|
elif device_type == "gcu":
|
149
|
-
assert (
|
150
|
-
model_name
|
151
|
-
)
|
159
|
+
assert model_name in GCU_WHITELIST, (
|
160
|
+
f"The GCU device does not yet support `{model_name}` model!" + tips
|
161
|
+
)
|
162
|
+
|
163
|
+
|
164
|
+
def check_supported_device(device, model_name):
|
165
|
+
device_type, _ = parse_device(device)
|
166
|
+
return check_supported_device_type(device_type, model_name)
|
167
|
+
|
168
|
+
|
169
|
+
class TemporaryDeviceChanger(ContextDecorator):
|
170
|
+
"""
|
171
|
+
A context manager to temporarily change global device
|
172
|
+
"""
|
173
|
+
|
174
|
+
def __init__(self, new_device):
|
175
|
+
# if new_device is None, nothing changed
|
176
|
+
import paddle
|
177
|
+
|
178
|
+
self.new_device = new_device
|
179
|
+
self.original_device = paddle.device.get_device()
|
180
|
+
|
181
|
+
def __enter__(self):
|
182
|
+
import paddle
|
183
|
+
|
184
|
+
if self.new_device is None:
|
185
|
+
return self
|
186
|
+
paddle.device.set_device(self.new_device)
|
187
|
+
return self
|
188
|
+
|
189
|
+
def __exit__(self, exc_type, exc_val, exc_tb):
|
190
|
+
import paddle
|
191
|
+
|
192
|
+
if self.new_device is None:
|
193
|
+
return False
|
194
|
+
paddle.device.set_device(self.original_device)
|
195
|
+
return False
|
paddlex/utils/download.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.
|
@@ -13,12 +13,12 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
import os
|
16
|
-
import sys
|
17
|
-
import time
|
18
16
|
import shutil
|
17
|
+
import sys
|
19
18
|
import tarfile
|
20
|
-
import zipfile
|
21
19
|
import tempfile
|
20
|
+
import time
|
21
|
+
import zipfile
|
22
22
|
|
23
23
|
import requests
|
24
24
|
|
paddlex/utils/env.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,17 +12,43 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
import lazy_paddle as paddle
|
16
|
-
|
17
15
|
|
18
16
|
def get_device_type():
|
17
|
+
import paddle
|
18
|
+
|
19
19
|
device_str = paddle.get_device()
|
20
20
|
return device_str.split(":")[0]
|
21
21
|
|
22
22
|
|
23
23
|
def get_paddle_version():
|
24
|
-
|
25
|
-
|
24
|
+
import paddle
|
25
|
+
|
26
|
+
version = paddle.__version__
|
27
|
+
if "-" in version:
|
28
|
+
version, tag = version.split("-")
|
29
|
+
else:
|
30
|
+
tag = None
|
31
|
+
version = version.split(".")
|
26
32
|
assert len(version) == 3
|
27
|
-
major_v, minor_v, patch_v = version
|
28
|
-
|
33
|
+
major_v, minor_v, patch_v = map(int, version)
|
34
|
+
if tag:
|
35
|
+
return major_v, minor_v, patch_v, tag
|
36
|
+
else:
|
37
|
+
return major_v, minor_v, patch_v, None
|
38
|
+
|
39
|
+
|
40
|
+
def get_paddle_cuda_version():
|
41
|
+
import paddle.version
|
42
|
+
|
43
|
+
cuda_version = paddle.version.cuda()
|
44
|
+
return tuple(map(int, cuda_version.split(".")))
|
45
|
+
|
46
|
+
|
47
|
+
def get_paddle_cudnn_version():
|
48
|
+
import paddle.version
|
49
|
+
|
50
|
+
cudnn_version = paddle.version.cudnn()
|
51
|
+
return tuple(map(int, cudnn_version.split(".")))
|
52
|
+
|
53
|
+
|
54
|
+
# Should we also support getting the runtime versions of CUDA and cuDNN?
|
paddlex/utils/errors/__init__.py
CHANGED
paddlex/utils/errors/others.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.
|
@@ -14,8 +14,8 @@
|
|
14
14
|
|
15
15
|
import json
|
16
16
|
import signal
|
17
|
-
from typing import Union
|
18
17
|
from pathlib import Path
|
18
|
+
from typing import Union
|
19
19
|
|
20
20
|
__all__ = [
|
21
21
|
"UnsupportedAPIError",
|
@@ -34,38 +34,26 @@ __all__ = [
|
|
34
34
|
class UnsupportedAPIError(Exception):
|
35
35
|
"""UnsupportedAPIError"""
|
36
36
|
|
37
|
-
pass
|
38
|
-
|
39
37
|
|
40
38
|
class UnsupportedParamError(Exception):
|
41
39
|
"""UnsupportedParamError"""
|
42
40
|
|
43
|
-
pass
|
44
|
-
|
45
41
|
|
46
42
|
class KeyNotFoundError(Exception):
|
47
43
|
"""KeyNotFoundError"""
|
48
44
|
|
49
|
-
pass
|
50
|
-
|
51
45
|
|
52
46
|
class ClassNotFoundException(Exception):
|
53
47
|
"""ClassNotFoundException"""
|
54
48
|
|
55
|
-
pass
|
56
|
-
|
57
49
|
|
58
50
|
class NoEntityRegisteredException(Exception):
|
59
51
|
"""NoEntityRegisteredException"""
|
60
52
|
|
61
|
-
pass
|
62
|
-
|
63
53
|
|
64
54
|
class UnsupportedDeviceError(Exception):
|
65
55
|
"""UnsupportedDeviceError"""
|
66
56
|
|
67
|
-
pass
|
68
|
-
|
69
57
|
|
70
58
|
class CalledProcessError(Exception):
|
71
59
|
"""CalledProcessError"""
|
@@ -90,8 +78,6 @@ class CalledProcessError(Exception):
|
|
90
78
|
class DuplicateRegistrationError(Exception):
|
91
79
|
"""DuplicateRegistrationError"""
|
92
80
|
|
93
|
-
pass
|
94
|
-
|
95
81
|
|
96
82
|
class ModelNotFoundError(Exception):
|
97
83
|
"""Model Not Found Error"""
|
paddlex/utils/file_interface.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.
|
@@ -15,12 +15,11 @@
|
|
15
15
|
|
16
16
|
import logging
|
17
17
|
import os
|
18
|
-
from threading import ThreadError
|
19
18
|
|
20
|
-
from filelock import FileLock
|
21
|
-
import yaml
|
22
|
-
import ruamel.yaml
|
23
19
|
import chardet
|
20
|
+
import ruamel.yaml
|
21
|
+
import yaml
|
22
|
+
from filelock import FileLock
|
24
23
|
|
25
24
|
try:
|
26
25
|
import ujson as json
|
paddlex/utils/flags.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.
|
@@ -21,13 +21,14 @@ __all__ = [
|
|
21
21
|
"CHECK_OPTS",
|
22
22
|
"EAGER_INITIALIZATION",
|
23
23
|
"INFER_BENCHMARK",
|
24
|
-
"
|
24
|
+
"INFER_BENCHMARK_ITERS",
|
25
25
|
"INFER_BENCHMARK_WARMUP",
|
26
|
-
"
|
27
|
-
"
|
26
|
+
"INFER_BENCHMARK_OUTPUT_DIR",
|
27
|
+
"INFER_BENCHMARK_USE_NEW_INFER_API",
|
28
28
|
"FLAGS_json_format_model",
|
29
29
|
"USE_PIR_TRT",
|
30
30
|
"DISABLE_DEV_MODEL_WL",
|
31
|
+
"DISABLE_CINN_MODEL_WL",
|
31
32
|
]
|
32
33
|
|
33
34
|
|
@@ -47,19 +48,25 @@ DEBUG = get_flag_from_env_var("PADDLE_PDX_DEBUG", False)
|
|
47
48
|
DRY_RUN = get_flag_from_env_var("PADDLE_PDX_DRY_RUN", False)
|
48
49
|
CHECK_OPTS = get_flag_from_env_var("PADDLE_PDX_CHECK_OPTS", False)
|
49
50
|
EAGER_INITIALIZATION = get_flag_from_env_var("PADDLE_PDX_EAGER_INIT", True)
|
50
|
-
FLAGS_json_format_model = get_flag_from_env_var("FLAGS_json_format_model",
|
51
|
-
USE_PIR_TRT = get_flag_from_env_var("PADDLE_PDX_USE_PIR_TRT",
|
51
|
+
FLAGS_json_format_model = get_flag_from_env_var("FLAGS_json_format_model", True)
|
52
|
+
USE_PIR_TRT = get_flag_from_env_var("PADDLE_PDX_USE_PIR_TRT", True)
|
52
53
|
DISABLE_DEV_MODEL_WL = get_flag_from_env_var("PADDLE_PDX_DISABLE_DEV_MODEL_WL", False)
|
54
|
+
DISABLE_CINN_MODEL_WL = get_flag_from_env_var("PADDLE_PDX_DISABLE_CINN_MODEL_WL", False)
|
53
55
|
|
54
56
|
# Inference Benchmark
|
55
|
-
INFER_BENCHMARK = get_flag_from_env_var("PADDLE_PDX_INFER_BENCHMARK",
|
57
|
+
INFER_BENCHMARK = get_flag_from_env_var("PADDLE_PDX_INFER_BENCHMARK", False)
|
56
58
|
INFER_BENCHMARK_WARMUP = get_flag_from_env_var(
|
57
59
|
"PADDLE_PDX_INFER_BENCHMARK_WARMUP", 0, int
|
58
60
|
)
|
59
|
-
|
60
|
-
"
|
61
|
+
INFER_BENCHMARK_OUTPUT_DIR = get_flag_from_env_var(
|
62
|
+
"PADDLE_PDX_INFER_BENCHMARK_OUTPUT_DIR", None
|
61
63
|
)
|
62
|
-
|
63
|
-
|
64
|
-
|
64
|
+
INFER_BENCHMARK_ITERS = get_flag_from_env_var(
|
65
|
+
"PADDLE_PDX_INFER_BENCHMARK_ITERS", 0, int
|
66
|
+
)
|
67
|
+
INFER_BENCHMARK_USE_CACHE_FOR_READ = get_flag_from_env_var(
|
68
|
+
"PADDLE_PDX_INFER_BENCHMARK_USE_CACHE_FOR_READ", False
|
69
|
+
)
|
70
|
+
INFER_BENCHMARK_USE_NEW_INFER_API = get_flag_from_env_var(
|
71
|
+
"PADDLE_PDX_INFER_BENCHMARK_USE_NEW_INFER_API", False
|
65
72
|
)
|
paddlex/utils/fonts/__init__.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.
|
@@ -16,6 +16,7 @@ from pathlib import Path
|
|
16
16
|
|
17
17
|
import PIL
|
18
18
|
from PIL import ImageFont
|
19
|
+
|
19
20
|
from .. import logging
|
20
21
|
from ..download import download
|
21
22
|
|
paddlex/utils/func_register.py
CHANGED