From 2f67686103df873d020681f6d504f9595ce4a963 Mon Sep 17 00:00:00 2001 From: Yunchu Lee Date: Fri, 17 Nov 2023 09:16:32 +0900 Subject: [PATCH] Mergeback 1.5.0 to develop (#2642) * Update publish workflow for tag checking (#2632) * Update e2e tests for XAI Detection (#2634) * Disable QAT for newly added models (#2636) * Update release note and readme (#2637) * remove package upload step on internal publish wf * update release note and, changelog, and readme * update version string to 1.6.0dev --------- Co-authored-by: Galina Zalesskaya Co-authored-by: Jaeguk Hyun --- .github/workflows/publish_internal.yml | 19 +++++------- CHANGELOG.md | 14 +++++---- README.md | 30 +++++++++++-------- docs/source/guide/release_notes/index.rst | 29 ++++++++++++++++++ requirements/base.txt | 2 +- src/otx/__init__.py | 2 +- .../cspdarknet_yolox_l/template.yaml | 1 - .../cspdarknet_yolox_s/template.yaml | 1 - .../cspdarknet_yolox_x/template.yaml | 1 - .../detection/resnext101_atss/template.yaml | 1 - .../template_experimental.yaml | 1 - .../maskrcnn_swin_t/template.yaml | 1 - .../test_api_xai_sanity_detection.py | 2 +- 13 files changed, 64 insertions(+), 40 deletions(-) diff --git a/.github/workflows/publish_internal.yml b/.github/workflows/publish_internal.yml index 2d5d14f1601..800cc2c60ac 100644 --- a/.github/workflows/publish_internal.yml +++ b/.github/workflows/publish_internal.yml @@ -2,8 +2,6 @@ name: Build and upload to internal PyPI on: workflow_dispatch: # run on request (no need for PR) - release: - types: [published] jobs: build_wheels: @@ -61,23 +59,20 @@ jobs: uses: actions-ecosystem/action-regex-match@v2 with: text: ${{ github.ref }} - regex: '^refs/tags/[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+rc[0-9]+|rc[0-9]+)?$' - - name: Upload package distributions to github - if: ${{ steps.check-tag.outputs.match != '' }} - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: dist/* - tag: ${{ github.ref }} - overwrite: true - file_glob: true + regex: '^refs/heads/releases/[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+rc[0-9]+|rc[0-9]+)?$' - name: Check dist contents run: twine check dist/* - name: Publish package dist to internal PyPI + if: ${{ steps.check-tag.outputs.match != '' }} run: | export no_proxy=${{ secrets.PYPI_HOST }} export REPOSITORY_URL=http://${{ secrets.PYPI_HOST }}:${{ secrets.PYPI_PORT }} twine upload --verbose --repository-url $REPOSITORY_URL dist/* -u ${{ secrets.PYPI_USER }} -p ${{ secrets.PYPI_PASSWORD }} + - name: Publish package distributions to TestPyPI + if: ${{ steps.check-tag.outputs.match == '' }} + run: | + export REPOSITORY_URL=https://test.pypi.org/legacy/ + twine upload --verbose --repository-url $REPOSITORY_URL dist/* -u __token__ -p ${{ secrets.TESTPYPI_API_TOKEN }} - name: Clean up dist if: ${{ always() }} run: | diff --git a/CHANGELOG.md b/CHANGELOG.md index c15ccc7979b..9953ee7d95b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,18 +2,20 @@ All notable changes to this project will be documented in this file. -## \[v1.5.0 - unreleased\] +## \[unreleased\] + +## \[v1.5.0\] ### New features -- Enable configurable confidence threshold for otx eval and export() +- Enable configurable confidence threshold for otx eval and export () - Add YOLOX variants as new object detector models () -- Enable FeatureVectorHook to support action tasks() +- Enable FeatureVectorHook to support action tasks () - Add ONNX metadata to detection, instance segmantation, and segmentation models () -- Add a new feature to configure input size() +- Add a new feature to configure input size () - Introduce the OTXSampler and AdaptiveRepeatDataHook to achieve faster training at the small data regime () -- Add a new object detector Lite-DINO() -- Add Semi-SL Mean Teacher algorithm for Instance Segmentation task() +- Add a new object detector Lite-DINO () +- Add Semi-SL Mean Teacher algorithm for Instance Segmentation task () - Official supports for YOLOX-X, YOLOX-L, YOLOX-S, ResNeXt101-ATSS () - Add new argument to track resource usage in train command () - Add Self-SL for semantic segmentation of SegNext families () diff --git a/README.md b/README.md index 665dc2ae5bc..e8e3f424eeb 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ If you are an experienced user, you can configure your own model based on [torch Furthermore, OpenVINO™ Training Extensions provides automatic configuration for ease of use. The framework will analyze your dataset and identify the most suitable model and figure out the best input size setting and other hyper-parameters. -The development team is continuously extending this [Auto-configuration](https://openvinotoolkit.github.io/training_extensions/latest/guide/explanation/additional_features/auto_configuration.html) functionalities to make training as simple as possible so that single CLI command can obtain accurate, efficient and robust models ready to be integrated into your project. +The development team is continuously extending this [Auto-configuration](https://openvinotoolkit.github.io/training_extensions/stable/guide/explanation/additional_features/auto_configuration.html) functionalities to make training as simple as possible so that single CLI command can obtain accurate, efficient and robust models ready to be integrated into your project. ### Key Features @@ -63,11 +63,11 @@ OpenVINO™ Training Extensions supports the [following learning methods](https: OpenVINO™ Training Extensions provides the following usability features: -- [Auto-configuration](https://openvinotoolkit.github.io/training_extensions/latest/guide/explanation/additional_features/auto_configuration.html). OpenVINO™ Training Extensions analyzes provided dataset and selects the proper task and model with appropriate input size to provide the best accuracy/speed trade-off. It will also make a random auto-split of your dataset if there is no validation set provided. +- [Auto-configuration](https://openvinotoolkit.github.io/training_extensions/stable/guide/explanation/additional_features/auto_configuration.html). OpenVINO™ Training Extensions analyzes provided dataset and selects the proper task and model with appropriate input size to provide the best accuracy/speed trade-off. It will also make a random auto-split of your dataset if there is no validation set provided. - [Datumaro](https://openvinotoolkit.github.io/datumaro/stable/index.html) data frontend: OpenVINO™ Training Extensions supports the most common academic field dataset formats for each task. We are constantly working to extend supported formats to give more freedom of datasets format choice. - **Distributed training** to accelerate the training process when you have multiple GPUs - **Mixed-precision training** to save GPUs memory and use larger batch sizes -- Integrated, efficient [hyper-parameter optimization module (HPO)](https://openvinotoolkit.github.io/training_extensions/latest/guide/explanation/additional_features/hpo.html). Through dataset proxy and built-in hyper-parameter optimizer, you can get much faster hyper-parameter optimization compared to other off-the-shelf tools. The hyperparameter optimization is dynamically scheduled based on your resource budget. +- Integrated, efficient [hyper-parameter optimization module (HPO)](https://openvinotoolkit.github.io/training_extensions/stable/guide/explanation/additional_features/hpo.html). Through dataset proxy and built-in hyper-parameter optimizer, you can get much faster hyper-parameter optimization compared to other off-the-shelf tools. The hyperparameter optimization is dynamically scheduled based on your resource budget. --- @@ -97,16 +97,20 @@ You can find more details with examples in the [CLI command intro](https://openv ## Updates -### v1.4.0 (3Q23) - -- Support encrypted dataset training () -- Add custom max iou assigner to prevent CPU OOM when large annotations are used () -- Auto train type detection for Semi-SL, Self-SL and Incremental: "--train-type" now is optional () -- Add per-class XAI saliency maps for Mask R-CNN model () -- Add new object detector Deformable DETR () -- Add new object detector DINO () -- Add new visual prompting task (, , , , ) -- Add new object detector ResNeXt101-ATSS () +### v1.5.0 (4Q23) + +- Enable configurable confidence threshold for otx eval and export () +- Add YOLOX variants as new object detector models () +- Enable FeatureVectorHook to support action tasks () +- Add ONNX metadata to detection, instance segmantation, and segmentation models () +- Add a new feature to configure input size () +- Introduce the OTXSampler and AdaptiveRepeatDataHook to achieve faster training at the small data regime () +- Add a new object detector Lite-DINO () +- Add Semi-SL Mean Teacher algorithm for Instance Segmentation task () +- Official supports for YOLOX-X, YOLOX-L, YOLOX-S, ResNeXt101-ATSS () +- Add new argument to track resource usage in train command () +- Add Self-SL for semantic segmentation of SegNext families () +- Adapt input size automatically based on dataset statistics () ### Release History diff --git a/docs/source/guide/release_notes/index.rst b/docs/source/guide/release_notes/index.rst index 2699992177b..133b7350c9e 100644 --- a/docs/source/guide/release_notes/index.rst +++ b/docs/source/guide/release_notes/index.rst @@ -4,6 +4,35 @@ Releases .. toctree:: :maxdepth: 1 +v1.5.0 (4Q23) +------------- + +- Enable configurable confidence threshold for otx eval and export +- Add YOLOX variants as new object detector models +- Enable FeatureVectorHook to support action tasks +- Add ONNX metadata to detection, instance segmantation, and segmentation models +- Add a new feature to configure input size +- Introduce the OTXSampler and AdaptiveRepeatDataHook to achieve faster training at the small data regime +- Add a new object detector Lite-DINO +- Add Semi-SL Mean Teacher algorithm for Instance Segmentation task +- Official supports for YOLOX-X, YOLOX-L, YOLOX-S, ResNeXt101-ATSS +- Add new argument to track resource usage in train command +- Add Self-SL for semantic segmentation of SegNext families +- Adapt input size automatically based on dataset statistics +- Refine input data in-memory caching +- Adapt timeout value of initialization for distributed training +- Optimize data loading by merging load & resize operations w/ caching support for cls/det/iseg/sseg +- Support torch==2.0.1 +- Set "Auto" as default input size mode + + +v1.4.4 (4Q23) +------------- + +- Update ModelAPI configuration +- Add Anomaly modelAPI changes +- Update Image numpy access + v1.4.3 (4Q23) ------------- diff --git a/requirements/base.txt b/requirements/base.txt index e284377021d..538912b36cc 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,5 +1,5 @@ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # -# Base Algo Requirements. # +# Base Algo Requirements. # natsort==8.1.* prettytable==3.9.* protobuf==3.20.* diff --git a/src/otx/__init__.py b/src/otx/__init__.py index 16aa2ab6d12..ce673d0b5d0 100644 --- a/src/otx/__init__.py +++ b/src/otx/__init__.py @@ -3,5 +3,5 @@ # Copyright (C) 2021-2023 Intel Corporation # SPDX-License-Identifier: Apache-2.0 -__version__ = "1.5.0" +__version__ = "1.6.0dev" # NOTE: Sync w/ src/otx/api/usecases/exportable_code/demo/requirements.txt on release diff --git a/src/otx/algorithms/detection/configs/detection/cspdarknet_yolox_l/template.yaml b/src/otx/algorithms/detection/configs/detection/cspdarknet_yolox_l/template.yaml index 83a90ecfcca..f06013bba10 100644 --- a/src/otx/algorithms/detection/configs/detection/cspdarknet_yolox_l/template.yaml +++ b/src/otx/algorithms/detection/configs/detection/cspdarknet_yolox_l/template.yaml @@ -14,7 +14,6 @@ framework: OTXDetection v2.9.1 entrypoints: base: otx.algorithms.detection.adapters.mmdet.task.MMDetectionTask openvino: otx.algorithms.detection.adapters.openvino.task.OpenVINODetectionTask - nncf: otx.algorithms.detection.adapters.mmdet.nncf.task.DetectionNNCFTask # Capabilities. capabilities: diff --git a/src/otx/algorithms/detection/configs/detection/cspdarknet_yolox_s/template.yaml b/src/otx/algorithms/detection/configs/detection/cspdarknet_yolox_s/template.yaml index 0c94a081ce3..335b07f8099 100644 --- a/src/otx/algorithms/detection/configs/detection/cspdarknet_yolox_s/template.yaml +++ b/src/otx/algorithms/detection/configs/detection/cspdarknet_yolox_s/template.yaml @@ -14,7 +14,6 @@ framework: OTXDetection v2.9.1 entrypoints: base: otx.algorithms.detection.adapters.mmdet.task.MMDetectionTask openvino: otx.algorithms.detection.adapters.openvino.task.OpenVINODetectionTask - nncf: otx.algorithms.detection.adapters.mmdet.nncf.task.DetectionNNCFTask # Capabilities. capabilities: diff --git a/src/otx/algorithms/detection/configs/detection/cspdarknet_yolox_x/template.yaml b/src/otx/algorithms/detection/configs/detection/cspdarknet_yolox_x/template.yaml index 50e07835a96..1fdf665d533 100644 --- a/src/otx/algorithms/detection/configs/detection/cspdarknet_yolox_x/template.yaml +++ b/src/otx/algorithms/detection/configs/detection/cspdarknet_yolox_x/template.yaml @@ -14,7 +14,6 @@ framework: OTXDetection v2.9.1 entrypoints: base: otx.algorithms.detection.adapters.mmdet.task.MMDetectionTask openvino: otx.algorithms.detection.adapters.openvino.task.OpenVINODetectionTask - nncf: otx.algorithms.detection.adapters.mmdet.nncf.task.DetectionNNCFTask # Capabilities. capabilities: diff --git a/src/otx/algorithms/detection/configs/detection/resnext101_atss/template.yaml b/src/otx/algorithms/detection/configs/detection/resnext101_atss/template.yaml index 27fe398fd1b..79308f5388a 100644 --- a/src/otx/algorithms/detection/configs/detection/resnext101_atss/template.yaml +++ b/src/otx/algorithms/detection/configs/detection/resnext101_atss/template.yaml @@ -14,7 +14,6 @@ framework: OTXDetection v2.9.1 entrypoints: base: otx.algorithms.detection.adapters.mmdet.task.MMDetectionTask openvino: otx.algorithms.detection.adapters.openvino.task.OpenVINODetectionTask - nncf: otx.algorithms.detection.adapters.mmdet.nncf.task.DetectionNNCFTask # Capabilities. capabilities: diff --git a/src/otx/algorithms/detection/configs/instance_segmentation/convnext_maskrcnn/template_experimental.yaml b/src/otx/algorithms/detection/configs/instance_segmentation/convnext_maskrcnn/template_experimental.yaml index 6baef6921d3..44821039d86 100644 --- a/src/otx/algorithms/detection/configs/instance_segmentation/convnext_maskrcnn/template_experimental.yaml +++ b/src/otx/algorithms/detection/configs/instance_segmentation/convnext_maskrcnn/template_experimental.yaml @@ -14,7 +14,6 @@ framework: OTXDetection v2.9.1 entrypoints: base: otx.algorithms.detection.adapters.mmdet.task.MMDetectionTask openvino: otx.algorithms.detection.adapters.openvino.task.OpenVINODetectionTask - nncf: otx.algorithms.detection.adapters.mmdet.nncf.task.DetectionNNCFTask # Capabilities. capabilities: diff --git a/src/otx/algorithms/detection/configs/instance_segmentation/maskrcnn_swin_t/template.yaml b/src/otx/algorithms/detection/configs/instance_segmentation/maskrcnn_swin_t/template.yaml index ed02d0f7e9f..61f359406e9 100644 --- a/src/otx/algorithms/detection/configs/instance_segmentation/maskrcnn_swin_t/template.yaml +++ b/src/otx/algorithms/detection/configs/instance_segmentation/maskrcnn_swin_t/template.yaml @@ -14,7 +14,6 @@ framework: OTXDetection v2.9.1 entrypoints: base: otx.algorithms.detection.adapters.mmdet.task.MMDetectionTask openvino: otx.algorithms.detection.adapters.openvino.task.OpenVINODetectionTask - nncf: otx.algorithms.detection.adapters.mmdet.nncf.task.DetectionNNCFTask # Capabilities. capabilities: diff --git a/tests/e2e/cli/detection/test_api_xai_sanity_detection.py b/tests/e2e/cli/detection/test_api_xai_sanity_detection.py index 02024d54bfd..4cd11fa937c 100644 --- a/tests/e2e/cli/detection/test_api_xai_sanity_detection.py +++ b/tests/e2e/cli/detection/test_api_xai_sanity_detection.py @@ -32,7 +32,7 @@ class TestOVDetXAIAPI(DetectionTaskAPIBase): ref_raw_saliency_shapes = { - "MobileNetV2-ATSS": (4, 4), # Need to be adapted to configurable or adaptive input size + "MobileNetV2-ATSS": (16, 16), # Need to be adapted to configurable or adaptive input size } @e2e_pytest_api