From ddd73f2651687f6c2a723bc57cf05607e6a39b84 Mon Sep 17 00:00:00 2001 From: Yunchu Lee Date: Fri, 17 Nov 2023 09:20:40 +0900 Subject: [PATCH] Revert "Mergeback 1.5.0 to develop" (#2645) Revert "Mergeback 1.5.0 to develop (#2642)" This reverts commit 2f67686103df873d020681f6d504f9595ce4a963. --- .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, 40 insertions(+), 64 deletions(-) diff --git a/.github/workflows/publish_internal.yml b/.github/workflows/publish_internal.yml index 800cc2c60ac..2d5d14f1601 100644 --- a/.github/workflows/publish_internal.yml +++ b/.github/workflows/publish_internal.yml @@ -2,6 +2,8 @@ name: Build and upload to internal PyPI on: workflow_dispatch: # run on request (no need for PR) + release: + types: [published] jobs: build_wheels: @@ -59,20 +61,23 @@ jobs: uses: actions-ecosystem/action-regex-match@v2 with: text: ${{ github.ref }} - regex: '^refs/heads/releases/[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+rc[0-9]+|rc[0-9]+)?$' + 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 - 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 9953ee7d95b..c15ccc7979b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,20 +2,18 @@ All notable changes to this project will be documented in this file. -## \[unreleased\] - -## \[v1.5.0\] +## \[v1.5.0 - unreleased\] ### 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 e8e3f424eeb..665dc2ae5bc 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/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. +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. ### 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/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. +- [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. - [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/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. +- 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. --- @@ -97,20 +97,16 @@ You can find more details with examples in the [CLI command intro](https://openv ## Updates -### 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 () +### 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 () ### Release History diff --git a/docs/source/guide/release_notes/index.rst b/docs/source/guide/release_notes/index.rst index 133b7350c9e..2699992177b 100644 --- a/docs/source/guide/release_notes/index.rst +++ b/docs/source/guide/release_notes/index.rst @@ -4,35 +4,6 @@ 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 538912b36cc..e284377021d 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 ce673d0b5d0..16aa2ab6d12 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.6.0dev" +__version__ = "1.5.0" # 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 f06013bba10..83a90ecfcca 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,6 +14,7 @@ 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 335b07f8099..0c94a081ce3 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,6 +14,7 @@ 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 1fdf665d533..50e07835a96 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,6 +14,7 @@ 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 79308f5388a..27fe398fd1b 100644 --- a/src/otx/algorithms/detection/configs/detection/resnext101_atss/template.yaml +++ b/src/otx/algorithms/detection/configs/detection/resnext101_atss/template.yaml @@ -14,6 +14,7 @@ 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 44821039d86..6baef6921d3 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,6 +14,7 @@ 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 61f359406e9..ed02d0f7e9f 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,6 +14,7 @@ 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 4cd11fa937c..02024d54bfd 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": (16, 16), # Need to be adapted to configurable or adaptive input size + "MobileNetV2-ATSS": (4, 4), # Need to be adapted to configurable or adaptive input size } @e2e_pytest_api