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
@@ -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,15 +13,19 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
|
16
|
-
from typing import
|
17
|
-
|
16
|
+
from typing import Callable, Dict, List, Optional, Union
|
17
|
+
|
18
18
|
import numpy as np
|
19
19
|
import pandas as pd
|
20
|
-
import chinese_calendar
|
21
|
-
from pandas.tseries.offsets import DateOffset, Easter, Day
|
22
20
|
from pandas.tseries import holiday as hd
|
23
|
-
from
|
21
|
+
from pandas.tseries.offsets import DateOffset, Day, Easter
|
22
|
+
|
23
|
+
from .....utils.deps import function_requires_deps, is_dep_available
|
24
24
|
|
25
|
+
if is_dep_available("chinese-calendar"):
|
26
|
+
import chinese_calendar
|
27
|
+
if is_dep_available("scikit-learn"):
|
28
|
+
from sklearn.preprocessing import StandardScaler
|
25
29
|
|
26
30
|
MAX_WINDOW = 183 + 17
|
27
31
|
EasterSunday = hd.Holiday("Easter Sunday", month=1, day=1, offset=[Easter(), Day(0)])
|
@@ -135,12 +139,14 @@ def _cal_weekofyear(
|
|
135
139
|
return x.weekofyear / 51.0 - 0.5
|
136
140
|
|
137
141
|
|
142
|
+
@function_requires_deps("chinese-calendar")
|
138
143
|
def _cal_holiday(
|
139
144
|
x: np.datetime64,
|
140
145
|
):
|
141
146
|
return float(chinese_calendar.is_holiday(x))
|
142
147
|
|
143
148
|
|
149
|
+
@function_requires_deps("chinese-calendar")
|
144
150
|
def _cal_workday(
|
145
151
|
x: np.datetime64,
|
146
152
|
):
|
@@ -444,6 +450,7 @@ def _distance_to_holiday(holiday) -> Callable[[pd.Timestamp], float]:
|
|
444
450
|
return _distance_to_day
|
445
451
|
|
446
452
|
|
453
|
+
@function_requires_deps("scikit-learn")
|
447
454
|
def time_feature(
|
448
455
|
dataset: Dict,
|
449
456
|
freq: Optional[Union[str, int]],
|
@@ -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,15 +12,17 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
from typing import
|
16
|
-
|
17
|
-
from copy import deepcopy
|
18
|
-
import joblib
|
15
|
+
from typing import Any, Dict, List
|
16
|
+
|
19
17
|
import numpy as np
|
20
18
|
import pandas as pd
|
21
19
|
|
20
|
+
from .....utils.deps import class_requires_deps, is_dep_available
|
21
|
+
from ....utils.benchmark import benchmark
|
22
22
|
from .funcs import load_from_dataframe, time_feature
|
23
23
|
|
24
|
+
if is_dep_available("joblib"):
|
25
|
+
import joblib
|
24
26
|
|
25
27
|
__all__ = [
|
26
28
|
"BuildTSDataset",
|
@@ -32,6 +34,7 @@ __all__ = [
|
|
32
34
|
]
|
33
35
|
|
34
36
|
|
37
|
+
@benchmark.timeit
|
35
38
|
class TSCutOff:
|
36
39
|
"""Truncates time series data to a specified length for training.
|
37
40
|
|
@@ -90,6 +93,8 @@ class TSCutOff:
|
|
90
93
|
return ts_data
|
91
94
|
|
92
95
|
|
96
|
+
@benchmark.timeit
|
97
|
+
@class_requires_deps("joblib")
|
93
98
|
class TSNormalize:
|
94
99
|
"""Normalizes time series data using a pre-fitted scaler.
|
95
100
|
|
@@ -145,6 +150,7 @@ class TSNormalize:
|
|
145
150
|
return ts
|
146
151
|
|
147
152
|
|
153
|
+
@benchmark.timeit
|
148
154
|
class BuildTSDataset:
|
149
155
|
"""Constructs a time series dataset from a list of time series data frames."""
|
150
156
|
|
@@ -182,6 +188,7 @@ class BuildTSDataset:
|
|
182
188
|
return ts_data
|
183
189
|
|
184
190
|
|
191
|
+
@benchmark.timeit
|
185
192
|
class TimeFeature:
|
186
193
|
"""Extracts time features from time series data for forecasting."""
|
187
194
|
|
@@ -246,6 +253,7 @@ class TimeFeature:
|
|
246
253
|
return ts
|
247
254
|
|
248
255
|
|
256
|
+
@benchmark.timeit
|
249
257
|
class TStoArray:
|
250
258
|
"""Converts time series data into arrays for model input."""
|
251
259
|
|
@@ -287,6 +295,7 @@ class TStoArray:
|
|
287
295
|
return ts_list
|
288
296
|
|
289
297
|
|
298
|
+
@benchmark.timeit
|
290
299
|
class TStoBatch:
|
291
300
|
"""Convert a list of time series into batches for processing.
|
292
301
|
|
@@ -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,10 +14,10 @@
|
|
14
14
|
|
15
15
|
from . import funcs as F
|
16
16
|
from .processors import (
|
17
|
+
Normalize,
|
17
18
|
Resize,
|
18
19
|
ResizeByLong,
|
19
20
|
ResizeByShort,
|
20
|
-
Normalize,
|
21
|
-
ToCHWImage,
|
22
21
|
ToBatch,
|
22
|
+
ToCHWImage,
|
23
23
|
)
|
@@ -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,10 +12,14 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
import cv2
|
16
15
|
import numpy as np
|
17
16
|
from PIL import Image
|
17
|
+
|
18
18
|
from .....utils import logging
|
19
|
+
from .....utils.deps import function_requires_deps, is_dep_available
|
20
|
+
|
21
|
+
if is_dep_available("opencv-contrib-python"):
|
22
|
+
import cv2
|
19
23
|
|
20
24
|
|
21
25
|
def check_image_size(input_):
|
@@ -32,6 +36,8 @@ def check_image_size(input_):
|
|
32
36
|
def resize(im, target_size, interp, backend="cv2"):
|
33
37
|
"""resize image to target size"""
|
34
38
|
w, h = target_size
|
39
|
+
if w == im.shape[1] and h == im.shape[0]:
|
40
|
+
return im
|
35
41
|
if backend.lower() == "pil":
|
36
42
|
resize_function = _pil_resize
|
37
43
|
else:
|
@@ -44,6 +50,7 @@ def resize(im, target_size, interp, backend="cv2"):
|
|
44
50
|
return im
|
45
51
|
|
46
52
|
|
53
|
+
@function_requires_deps("opencv-contrib-python")
|
47
54
|
def _cv2_resize(src, size, resample):
|
48
55
|
return cv2.resize(src, size, interpolation=resample)
|
49
56
|
|
@@ -57,22 +64,16 @@ def _pil_resize(src, size, resample):
|
|
57
64
|
return np.asarray(pil_img)
|
58
65
|
|
59
66
|
|
67
|
+
@function_requires_deps("opencv-contrib-python")
|
60
68
|
def flip_h(im):
|
61
69
|
"""flip image horizontally"""
|
62
|
-
|
63
|
-
im = im[:, ::-1, :]
|
64
|
-
elif len(im.shape) == 2:
|
65
|
-
im = im[:, ::-1]
|
66
|
-
return im
|
70
|
+
return cv2.flip(im, 1)
|
67
71
|
|
68
72
|
|
73
|
+
@function_requires_deps("opencv-contrib-python")
|
69
74
|
def flip_v(im):
|
70
75
|
"""flip image vertically"""
|
71
|
-
|
72
|
-
im = im[::-1, :, :]
|
73
|
-
elif len(im.shape) == 2:
|
74
|
-
im = im[::-1, :]
|
75
|
-
return im
|
76
|
+
return cv2.flip(im, 0)
|
76
77
|
|
77
78
|
|
78
79
|
def slice(im, coords):
|
@@ -82,12 +83,16 @@ def slice(im, coords):
|
|
82
83
|
return im
|
83
84
|
|
84
85
|
|
86
|
+
@function_requires_deps("opencv-contrib-python")
|
85
87
|
def pad(im, pad, val):
|
86
88
|
"""padding image by value"""
|
87
89
|
if isinstance(pad, int):
|
88
90
|
pad = [pad] * 4
|
89
91
|
if len(pad) != 4:
|
90
92
|
raise ValueError
|
93
|
+
if all(x == 0 for x in pad):
|
94
|
+
return im
|
95
|
+
|
91
96
|
chns = 1 if im.ndim == 2 else im.shape[2]
|
92
97
|
im = cv2.copyMakeBorder(im, *pad, cv2.BORDER_CONSTANT, value=(val,) * chns)
|
93
98
|
return im
|
@@ -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,36 +12,37 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
import os
|
16
|
-
import ast
|
17
15
|
import math
|
18
|
-
from pathlib import Path
|
19
|
-
from copy import deepcopy
|
20
16
|
|
21
17
|
import numpy as np
|
22
|
-
import cv2
|
23
18
|
from PIL import Image
|
24
19
|
|
20
|
+
from .....utils.deps import class_requires_deps, is_dep_available
|
21
|
+
from ....utils.benchmark import benchmark
|
25
22
|
from . import funcs as F
|
26
23
|
|
24
|
+
if is_dep_available("opencv-contrib-python"):
|
25
|
+
import cv2
|
27
26
|
|
28
|
-
class _BaseResize:
|
29
|
-
_CV2_INTERP_DICT = {
|
30
|
-
"NEAREST": cv2.INTER_NEAREST,
|
31
|
-
"LINEAR": cv2.INTER_LINEAR,
|
32
|
-
"BICUBIC": cv2.INTER_CUBIC,
|
33
|
-
"AREA": cv2.INTER_AREA,
|
34
|
-
"LANCZOS4": cv2.INTER_LANCZOS4,
|
35
|
-
}
|
36
|
-
_PIL_INTERP_DICT = {
|
37
|
-
"NEAREST": Image.NEAREST,
|
38
|
-
"BILINEAR": Image.BILINEAR,
|
39
|
-
"BICUBIC": Image.BICUBIC,
|
40
|
-
"BOX": Image.BOX,
|
41
|
-
"LANCZOS4": Image.LANCZOS,
|
42
|
-
}
|
43
27
|
|
28
|
+
@class_requires_deps("opencv-contrib-python")
|
29
|
+
class _BaseResize:
|
44
30
|
def __init__(self, size_divisor, interp, backend="cv2"):
|
31
|
+
_CV2_INTERP_DICT = {
|
32
|
+
"NEAREST": cv2.INTER_NEAREST,
|
33
|
+
"LINEAR": cv2.INTER_LINEAR,
|
34
|
+
"BICUBIC": cv2.INTER_CUBIC,
|
35
|
+
"AREA": cv2.INTER_AREA,
|
36
|
+
"LANCZOS4": cv2.INTER_LANCZOS4,
|
37
|
+
}
|
38
|
+
_PIL_INTERP_DICT = {
|
39
|
+
"NEAREST": Image.NEAREST,
|
40
|
+
"BILINEAR": Image.BILINEAR,
|
41
|
+
"BICUBIC": Image.BICUBIC,
|
42
|
+
"BOX": Image.BOX,
|
43
|
+
"LANCZOS4": Image.LANCZOS,
|
44
|
+
}
|
45
|
+
|
45
46
|
super().__init__()
|
46
47
|
|
47
48
|
if size_divisor is not None:
|
@@ -53,9 +54,9 @@ class _BaseResize:
|
|
53
54
|
try:
|
54
55
|
interp = interp.upper()
|
55
56
|
if backend == "cv2":
|
56
|
-
interp =
|
57
|
+
interp = _CV2_INTERP_DICT[interp]
|
57
58
|
elif backend == "pil":
|
58
|
-
interp =
|
59
|
+
interp = _PIL_INTERP_DICT[interp]
|
59
60
|
else:
|
60
61
|
raise ValueError("backend must be `cv2` or `pil`")
|
61
62
|
except KeyError:
|
@@ -63,9 +64,9 @@ class _BaseResize:
|
|
63
64
|
"For backend '{}', `interp` should be one of {}. Please ensure the interpolation method matches the selected backend.".format(
|
64
65
|
backend,
|
65
66
|
(
|
66
|
-
|
67
|
+
_CV2_INTERP_DICT.keys()
|
67
68
|
if backend == "cv2"
|
68
|
-
else
|
69
|
+
else _PIL_INTERP_DICT.keys()
|
69
70
|
),
|
70
71
|
)
|
71
72
|
)
|
@@ -80,6 +81,7 @@ class _BaseResize:
|
|
80
81
|
return rescaled_size, scale
|
81
82
|
|
82
83
|
|
84
|
+
@benchmark.timeit
|
83
85
|
class Resize(_BaseResize):
|
84
86
|
"""Resize the image."""
|
85
87
|
|
@@ -133,6 +135,7 @@ class Resize(_BaseResize):
|
|
133
135
|
return img
|
134
136
|
|
135
137
|
|
138
|
+
@benchmark.timeit
|
136
139
|
class ResizeByLong(_BaseResize):
|
137
140
|
"""
|
138
141
|
Proportionally resize the image by specifying the target length of the
|
@@ -174,6 +177,7 @@ class ResizeByLong(_BaseResize):
|
|
174
177
|
return img
|
175
178
|
|
176
179
|
|
180
|
+
@benchmark.timeit
|
177
181
|
class ResizeByShort(_BaseResize):
|
178
182
|
"""
|
179
183
|
Proportionally resize the image by specifying the target length of the
|
@@ -215,10 +219,12 @@ class ResizeByShort(_BaseResize):
|
|
215
219
|
return img
|
216
220
|
|
217
221
|
|
222
|
+
@benchmark.timeit
|
223
|
+
@class_requires_deps("opencv-contrib-python")
|
218
224
|
class Normalize:
|
219
|
-
"""Normalize the image."""
|
225
|
+
"""Normalize the three-channel image."""
|
220
226
|
|
221
|
-
def __init__(self, scale=1.0 / 255, mean=0.5, std=0.5
|
227
|
+
def __init__(self, scale=1.0 / 255, mean=0.5, std=0.5):
|
222
228
|
"""
|
223
229
|
Initialize the instance.
|
224
230
|
|
@@ -227,36 +233,44 @@ class Normalize:
|
|
227
233
|
applying normalization. Default: 1/255.
|
228
234
|
mean (float|tuple|list, optional): Means for each channel of the image.
|
229
235
|
Default: 0.5.
|
230
|
-
std (float|tuple|list, optional): Standard deviations for each channel
|
236
|
+
std (float|tuple|list|np.ndarray, optional): Standard deviations for each channel
|
231
237
|
of the image. Default: 0.5.
|
232
|
-
preserve_dtype (bool, optional): Whether to preserve the original dtype
|
233
|
-
of the image.
|
234
238
|
"""
|
235
239
|
super().__init__()
|
236
240
|
|
237
|
-
self.scale = np.float32(scale)
|
238
241
|
if isinstance(mean, float):
|
239
|
-
mean = [mean]
|
240
|
-
|
242
|
+
mean = [mean] * 3
|
243
|
+
elif len(mean) != 3:
|
244
|
+
raise ValueError(
|
245
|
+
f"Expected `mean` to be a tuple or list of length 3, but got {len(mean)} elements."
|
246
|
+
)
|
241
247
|
if isinstance(std, float):
|
242
|
-
std = [std]
|
243
|
-
|
244
|
-
|
248
|
+
std = [std] * 3
|
249
|
+
elif len(std) != 3:
|
250
|
+
raise ValueError(
|
251
|
+
f"Expected `std` to be a tuple or list of length 3, but got {len(std)} elements."
|
252
|
+
)
|
253
|
+
|
254
|
+
self.alpha = [scale / std[i] for i in range(len(std))]
|
255
|
+
self.beta = [-mean[i] / std[i] for i in range(len(std))]
|
256
|
+
|
257
|
+
def norm(self, img):
|
258
|
+
split_im = list(cv2.split(img))
|
259
|
+
|
260
|
+
for c in range(img.shape[2]):
|
261
|
+
split_im[c] = split_im[c].astype(np.float32)
|
262
|
+
split_im[c] *= self.alpha[c]
|
263
|
+
split_im[c] += self.beta[c]
|
264
|
+
|
265
|
+
res = cv2.merge(split_im)
|
266
|
+
return res
|
245
267
|
|
246
268
|
def __call__(self, imgs):
|
247
269
|
"""apply"""
|
248
|
-
|
249
|
-
# XXX: If `old_type` has higher precision than float32,
|
250
|
-
# we will lose some precision.
|
251
|
-
imgs = np.array(imgs).astype("float32", copy=False)
|
252
|
-
imgs *= self.scale
|
253
|
-
imgs -= self.mean
|
254
|
-
imgs /= self.std
|
255
|
-
if self.preserve_dtype:
|
256
|
-
imgs = imgs.astype(old_type, copy=False)
|
257
|
-
return list(imgs)
|
270
|
+
return [self.norm(img) for img in imgs]
|
258
271
|
|
259
272
|
|
273
|
+
@benchmark.timeit
|
260
274
|
class ToCHWImage:
|
261
275
|
"""Reorder the dimensions of the image from HWC to CHW."""
|
262
276
|
|
@@ -265,6 +279,7 @@ class ToCHWImage:
|
|
265
279
|
return [img.transpose((2, 0, 1)) for img in imgs]
|
266
280
|
|
267
281
|
|
282
|
+
@benchmark.timeit
|
268
283
|
class ToBatch:
|
269
284
|
def __call__(self, imgs):
|
270
285
|
return [np.stack(imgs, axis=0).astype(dtype=np.float32, copy=False)]
|
@@ -0,0 +1,13 @@
|
|
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.
|
@@ -0,0 +1,189 @@
|
|
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 math
|
16
|
+
from collections import OrderedDict
|
17
|
+
|
18
|
+
import paddle
|
19
|
+
import paddle.nn.functional as F
|
20
|
+
from paddle import Tensor, nn
|
21
|
+
|
22
|
+
|
23
|
+
class NewGELUActivation(nn.Layer):
|
24
|
+
"""
|
25
|
+
Implementation of the GELU activation function currently in Google BERT repo (identical to OpenAI GPT). Also see
|
26
|
+
the Gaussian Error Linear Units paper: https://arxiv.org/abs/1606.08415
|
27
|
+
"""
|
28
|
+
|
29
|
+
def forward(self, input: Tensor) -> Tensor:
|
30
|
+
return (
|
31
|
+
0.5
|
32
|
+
* input
|
33
|
+
* (
|
34
|
+
1.0
|
35
|
+
+ paddle.tanh(
|
36
|
+
math.sqrt(2.0 / math.pi)
|
37
|
+
* (input + 0.044715 * paddle.pow(input, 3.0))
|
38
|
+
)
|
39
|
+
)
|
40
|
+
)
|
41
|
+
|
42
|
+
|
43
|
+
class GELUActivation(nn.Layer):
|
44
|
+
"""
|
45
|
+
Original Implementation of the GELU activation function in Google BERT repo when initially created. For
|
46
|
+
information: OpenAI GPT's GELU is slightly different (and gives slightly different results): 0.5 * x * (1 +
|
47
|
+
torch.tanh(math.sqrt(2 / math.pi) * (x + 0.044715 * torch.pow(x, 3)))) This is now written in C in nn.functional
|
48
|
+
Also see the Gaussian Error Linear Units paper: https://arxiv.org/abs/1606.08415
|
49
|
+
"""
|
50
|
+
|
51
|
+
def __init__(self, use_gelu_python: bool = False):
|
52
|
+
super().__init__()
|
53
|
+
if use_gelu_python:
|
54
|
+
self.act = self._gelu_python
|
55
|
+
else:
|
56
|
+
self.act = nn.functional.gelu
|
57
|
+
|
58
|
+
def _gelu_python(self, input: Tensor) -> Tensor:
|
59
|
+
return input * 0.5 * (1.0 + paddle.erf(input / math.sqrt(2.0)))
|
60
|
+
|
61
|
+
def forward(self, input: Tensor) -> Tensor:
|
62
|
+
return self.act(input)
|
63
|
+
|
64
|
+
|
65
|
+
class FastGELUActivation(nn.Layer):
|
66
|
+
"""
|
67
|
+
Applies GELU approximation that is slower than QuickGELU but more accurate. See: https://github.com/hendrycks/GELUs
|
68
|
+
"""
|
69
|
+
|
70
|
+
def forward(self, input: Tensor) -> Tensor:
|
71
|
+
return (
|
72
|
+
0.5
|
73
|
+
* input
|
74
|
+
* (
|
75
|
+
1.0
|
76
|
+
+ paddle.tanh(input * 0.7978845608 * (1.0 + 0.044715 * input * input))
|
77
|
+
)
|
78
|
+
)
|
79
|
+
|
80
|
+
|
81
|
+
class QuickGELUActivation(nn.Layer):
|
82
|
+
"""
|
83
|
+
Applies GELU approximation that is fast but somewhat inaccurate. See: https://github.com/hendrycks/GELUs
|
84
|
+
"""
|
85
|
+
|
86
|
+
def forward(self, input: Tensor) -> Tensor:
|
87
|
+
return input * F.sigmoid(1.702 * input)
|
88
|
+
|
89
|
+
|
90
|
+
class ClippedGELUActivation(nn.Layer):
|
91
|
+
"""
|
92
|
+
Clip the range of possible GeLU outputs between [min, max]. This is especially useful for quantization purpose, as
|
93
|
+
it allows mapping negatives values in the GeLU spectrum. For more information on this trick, please refer to
|
94
|
+
https://arxiv.org/abs/2004.09602.
|
95
|
+
|
96
|
+
Gaussian Error Linear Unit. Original Implementation of the gelu activation function in Google Bert repo when
|
97
|
+
initially created.
|
98
|
+
|
99
|
+
For information: OpenAI GPT's gelu is slightly different (and gives slightly different results): 0.5 * x * (1 +
|
100
|
+
torch.tanh(math.sqrt(2 / math.pi) * (x + 0.044715 * torch.pow(x, 3)))). See https://arxiv.org/abs/1606.08415
|
101
|
+
"""
|
102
|
+
|
103
|
+
def __init__(self, min: float, max: float):
|
104
|
+
if min > max:
|
105
|
+
raise ValueError(f"min should be < max (got min: {min}, max: {max})")
|
106
|
+
|
107
|
+
super().__init__()
|
108
|
+
self.min = min
|
109
|
+
self.max = max
|
110
|
+
|
111
|
+
def forward(self, x: Tensor) -> Tensor:
|
112
|
+
return paddle.clip(gelu(x), self.min, self.max)
|
113
|
+
|
114
|
+
|
115
|
+
class SiLUActivation(nn.Layer):
|
116
|
+
"""
|
117
|
+
See Gaussian Error Linear Units (Hendrycks et al., https://arxiv.org/abs/1606.08415) where the SiLU (Sigmoid Linear
|
118
|
+
Unit) was originally introduced and coined, and see Sigmoid-Weighted Linear Units for Neural Network Function
|
119
|
+
Approximation in Reinforcement Learning (Elfwing et al., https://arxiv.org/abs/1702.03118) and Swish: a Self-Gated
|
120
|
+
Activation Function (Ramachandran et al., https://arxiv.org/abs/1710.05941v1) where the SiLU was experimented with
|
121
|
+
later.
|
122
|
+
"""
|
123
|
+
|
124
|
+
def forward(self, input: Tensor) -> Tensor:
|
125
|
+
return F.silu(input)
|
126
|
+
|
127
|
+
|
128
|
+
class MishActivation(nn.Layer):
|
129
|
+
"""
|
130
|
+
See Mish: A Self-Regularized Non-Monotonic Activation Function (Misra., https://arxiv.org/abs/1908.08681). Also
|
131
|
+
visit the official repository for the paper: https://github.com/digantamisra98/Mish
|
132
|
+
"""
|
133
|
+
|
134
|
+
def forward(self, input: Tensor) -> Tensor:
|
135
|
+
return F.mish(input)
|
136
|
+
|
137
|
+
|
138
|
+
class LinearActivation(nn.Layer):
|
139
|
+
"""
|
140
|
+
Applies the linear activation function, i.e. forwarding input directly to output.
|
141
|
+
"""
|
142
|
+
|
143
|
+
def forward(self, input: Tensor) -> Tensor:
|
144
|
+
return input
|
145
|
+
|
146
|
+
|
147
|
+
class ClassInstantier(OrderedDict):
|
148
|
+
def __getitem__(self, key):
|
149
|
+
content = super().__getitem__(key)
|
150
|
+
cls, kwargs = content if isinstance(content, tuple) else (content, {})
|
151
|
+
return cls(**kwargs)
|
152
|
+
|
153
|
+
|
154
|
+
ACT2CLS = {
|
155
|
+
"gelu": GELUActivation,
|
156
|
+
"gelu_10": (ClippedGELUActivation, {"min": -10, "max": 10}),
|
157
|
+
"gelu_fast": FastGELUActivation,
|
158
|
+
"gelu_new": NewGELUActivation,
|
159
|
+
"gelu_python": (GELUActivation, {"use_gelu_python": True}),
|
160
|
+
"linear": LinearActivation,
|
161
|
+
"mish": MishActivation,
|
162
|
+
"quick_gelu": QuickGELUActivation,
|
163
|
+
"relu": nn.ReLU,
|
164
|
+
"relu6": nn.ReLU6,
|
165
|
+
"sigmoid": nn.Sigmoid,
|
166
|
+
"silu": SiLUActivation,
|
167
|
+
"swish": SiLUActivation,
|
168
|
+
"tanh": nn.Tanh,
|
169
|
+
}
|
170
|
+
ACT2FN = ClassInstantier(ACT2CLS)
|
171
|
+
|
172
|
+
|
173
|
+
def get_activation(activation_string):
|
174
|
+
if activation_string in ACT2FN:
|
175
|
+
return ACT2FN[activation_string]
|
176
|
+
else:
|
177
|
+
raise KeyError(
|
178
|
+
f"function {activation_string} not found in ACT2FN mapping {list(ACT2FN.keys())}"
|
179
|
+
)
|
180
|
+
|
181
|
+
|
182
|
+
gelu_python = get_activation("gelu_python")
|
183
|
+
gelu_new = get_activation("gelu_new")
|
184
|
+
gelu = get_activation("gelu")
|
185
|
+
gelu_fast = get_activation("gelu_fast")
|
186
|
+
quick_gelu = get_activation("quick_gelu")
|
187
|
+
silu = get_activation("silu")
|
188
|
+
mish = get_activation("mish")
|
189
|
+
linear_act = get_activation("linear")
|