Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge develop to develop-idev #2727

Merged
merged 161 commits into from
Dec 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
161 commits
Select commit Hold shift + click to select a range
c13a79d
Update base.txt
yunchu Jul 7, 2023
228a8ed
Update __init__.py
yunchu Jul 7, 2023
5dfd5fd
Update requirements.txt
yunchu Jul 7, 2023
e67d261
Temporarily skip visual prompting openvino integration test (#2323)
sungchul2 Jul 10, 2023
344f526
Fix import dm.DatasetSubset (#2324)
vinnamkim Jul 10, 2023
cfd7706
Fix semantic segmentation soft prediction dtype (#2322)
negvet Jul 10, 2023
c3dd4aa
Contrain yapf verison lesser than 0.40.0 (#2328)
eunwoosh Jul 10, 2023
19477a3
Fix detection e2e tests (#2327)
jaegukhyun Jul 10, 2023
6b51ba0
Mergeback: Label addtion/deletion 1.2.4 --> 1.4.0 (#2326)
sungmanc Jul 11, 2023
b47ebf3
Bump datumaro up to 1.4.0rc2 (#2332)
yunchu Jul 11, 2023
3a0fff0
Tiling Doc for releases 1.4.0 (#2333)
eugene123tw Jul 11, 2023
91ad751
Bump otx version to 1.4.0rc2 (#2341)
yunchu Jul 12, 2023
85bf95e
OTX deploy for visual prompting task (#2311)
sungchul2 Jul 12, 2023
bb3ab4c
Bump albumentations version in anomaly requirements (#2350)
djdameln Jul 13, 2023
a8c6658
Update action detection (#2346)
jaegukhyun Jul 13, 2023
225ddf1
Fix e2e (#2348)
jaegukhyun Jul 13, 2023
603efca
Update ModelAPI in 1.4 release (#2347)
sovrasov Jul 14, 2023
4a8b079
Add OTX optimize for visual prompting task (#2318)
sungchul2 Jul 14, 2023
06142b6
Update detection docs (#2335)
jaegukhyun Jul 14, 2023
7924b5a
Add visual prompting documentation (#2354)
sungchul2 Jul 14, 2023
ca5f74d
Remove custom modelapi patch in visual prompting (#2359)
sungchul2 Jul 14, 2023
a123ca7
Fix graph metric order and label issues (#2356)
goodsong81 Jul 17, 2023
5ca24e1
Update multi-label document and conversion script (#2358)
sungmanc Jul 17, 2023
c1c0463
Update third party programs (#2365)
yunchu Jul 17, 2023
895bd36
Make anomaly task compatible with older albumentations versions (#2363)
djdameln Jul 17, 2023
3d157ab
Fixing detection saliency map for one class case (#2368)
negvet Jul 17, 2023
edd1a8c
Add e2e test for visual prompting (#2360)
sungchul2 Jul 18, 2023
66e8a67
Fix e2e (#2366)
jaegukhyun Jul 18, 2023
d0e864c
Add Dino head unit tests (#2344)
jaegukhyun Jul 18, 2023
c28c612
Update for release 1.4.0rc2 (#2370)
yunchu Jul 18, 2023
0c4be3c
Fix NNCF training on CPU (#2373)
sovrasov Jul 19, 2023
85bfe9f
Align label order between Geti and OTX (#2369)
eunwoosh Jul 19, 2023
43eb838
Remove CenterCrop from Classification test pipeline and editing missi…
sungmanc Jul 19, 2023
0906811
Fix H-label classification (#2377)
sungmanc Jul 20, 2023
f1234d2
Update for release 1.4 (#2380)
yunchu Jul 21, 2023
7319b20
Switch to PTQ for sseg (#2374)
sovrasov Jul 21, 2023
22aaf2a
Fix invalid import structures in otx.api (#2383)
harimkang Jul 21, 2023
8690bf9
Update for 1.4.0rc4 (#2385)
yunchu Jul 21, 2023
efed624
[release 1.4.0] XAI: Return saliency maps for Mask RCNN IR async infe…
GalyaZalesskaya Jul 25, 2023
4fed654
Update for release 1.4.0 (#2399)
yunchu Jul 25, 2023
183c2cb
Fix broken links in documentation (#2405)
yunchu Jul 31, 2023
2858515
Update exportable code README (#2411)
GalyaZalesskaya Aug 1, 2023
c80bfe6
Updated for release 1.4.1 (#2412)
yunchu Aug 2, 2023
92006b6
Add workaround for the incorrect meta info M-RCNN (used for XAI) (#2437)
negvet Aug 18, 2023
75040e3
Add model category attributes to model template (#2439)
goodsong81 Aug 18, 2023
6b09e65
Update for 1.4.2rc1 (#2441)
yunchu Aug 21, 2023
4f9c2f1
Fix label list order for h-label classification (#2440)
GalyaZalesskaya Aug 21, 2023
230f6f2
Modified fq numbers for lite HRNET (#2445)
yunchu Aug 22, 2023
498bd85
Update PTQ ignored scope for hrnet 18 mod2 (#2449)
sovrasov Aug 24, 2023
948881e
Fix OpenVINO inference for legacy models (#2450)
ashwinvaidya17 Aug 25, 2023
9ebdad6
Update for 1.4.2rc2 (#2455)
yunchu Aug 27, 2023
c553c10
Prevent zero-sized saliency map in tiling if tile size is too big (#2…
sovrasov Aug 28, 2023
250df8e
Update pot fq reference number (#2456)
yunchu Aug 29, 2023
eac3372
Bump datumaro version to 1.5.0rc0 (#2470)
yunchu Sep 1, 2023
2fd7c3e
Set tox version constraint (#2472)
yunchu Sep 1, 2023
00a84df
Bug fix for albumentations (#2467)
ashwinvaidya17 Sep 4, 2023
efcf62f
update for release 1.4.2rc3
yunchu Sep 6, 2023
3ed1e9a
Add a dummy hierarchical config required by MAPI (#2483)
sovrasov Sep 7, 2023
98ad124
bump version to 1.4.2rc4
yunchu Sep 8, 2023
5539c18
Bump datumaro version (#2502)
yunchu Sep 18, 2023
fae472b
Upgrade nncf version for 1.4 release (#2459)
sovrasov Sep 19, 2023
4ddbffc
Update version for release 1.4.2rc5 (#2507)
yunchu Sep 19, 2023
4494955
Update for 1.4.2 (#2514)
yunchu Sep 22, 2023
88deb2d
create branch release/1.5.0
yunchu Sep 25, 2023
b0eac19
Delete mem cache handler after training is done (#2535)
eunwoosh Oct 10, 2023
419a0f2
Fix bug that auto batch size doesn't consider distributed training (#…
eunwoosh Oct 11, 2023
39ec80b
Apply fix progress hook to release 1.5.0 (#2539)
sungmanc Oct 11, 2023
b152d9e
Re introduce adaptive scheduling for training (#2541)
jaegukhyun Oct 11, 2023
b7dd570
Update for release 1.4.3rc1 (#2542)
yunchu Oct 11, 2023
c8c5d22
Mirror Anomaly ModelAPI changes (#2531)
ashwinvaidya17 Oct 12, 2023
aec9f55
Re-introduce adaptive training (#2543)
jaegukhyun Oct 12, 2023
cb94427
Fix auto input size mismatch in eval & export (#2530)
goodsong81 Oct 12, 2023
31f4e7c
Update ref. fq number for anomaly e2e2 (#2547)
yunchu Oct 12, 2023
72ebf7a
Skip e2e det tests by issue2548 (#2550)
yunchu Oct 12, 2023
2190a51
Add skip to chained TC for issue #2548 (#2552)
yunchu Oct 12, 2023
a576962
Update for release 1.4.3 (#2551)
yunchu Oct 12, 2023
f512025
Update MAPI for 1.5 release (#2555)
sovrasov Oct 18, 2023
ac8a7dd
Update ModelAPI configuration (#2564)
sovrasov Oct 19, 2023
a5193b1
Disable QAT for SegNexts (#2565)
sovrasov Oct 19, 2023
8fafd40
Add Anomaly modelAPI changes to releases/1.4.0 (#2563)
ashwinvaidya17 Oct 24, 2023
65ddbfa
Fix the CustomNonLinearClsHead when the batch_size is set to 1 (#2571)
sungmanc Oct 24, 2023
0981035
Update ModelAPI configuration (#2564 from 1.4) (#2568)
sovrasov Oct 24, 2023
0ba7b62
Update for 1.4.4rc1 (#2572)
yunchu Oct 24, 2023
1285168
Hotfix DatasetEntity.get_combined_subset function loop (#2577)
vinnamkim Oct 25, 2023
7cacd94
Revert default input size to `Default` due to YOLOX perf regression (…
goodsong81 Oct 27, 2023
8036994
Fix for the degradation issue of the classification task (#2585)
sungmanc Oct 31, 2023
06775f2
Bump datumaro version to 1.5.1rc3 (#2587)
yunchu Oct 31, 2023
8598b05
Add label ids to anomaly OpenVINO model xml (#2590)
ashwinvaidya17 Oct 31, 2023
23a4644
Fix DeiT-Tiny model regression during class incremental training (#2594)
wonjuleee Nov 1, 2023
a5d12b7
Add label ids to model xml in release 1.5 (#2591)
ashwinvaidya17 Nov 1, 2023
ba1a30d
Fix DeiT-Tiny regression test for release/1.4.0 (#2595)
wonjuleee Nov 1, 2023
c22c683
Fix mmcls bug not wrapping model in DataParallel on CPUs (#2601)
goodsong81 Nov 6, 2023
a4abbed
Fix h-label loss normalization issue w/ exclusive label group of sing…
goodsong81 Nov 6, 2023
3ec4c95
Boost up Image numpy accessing speed through PIL (#2586)
wonjuleee Nov 7, 2023
ce9e858
Add missing import pathlib for cls e2e testing (#2610)
yunchu Nov 7, 2023
794a814
Fix division by zero in class incremental learning for classification…
goodsong81 Nov 7, 2023
d240eba
Unify logger usage (#2612)
eunwoosh Nov 8, 2023
8559def
Fix XAI algorithm for Detection (#2609)
GalyaZalesskaya Nov 8, 2023
0d9dff8
Tighten dependency constraint only adapting latest patches (#2607)
yunchu Nov 9, 2023
68e42d0
Add metadata to optimized model (#2618)
ashwinvaidya17 Nov 9, 2023
d06e079
modify omegaconf version constraint
yunchu Nov 9, 2023
d9cdcc2
[release 1.5.0] Fix XAI algorithm for Detection (#2617)
GalyaZalesskaya Nov 9, 2023
6462a4b
Update dependency constraint (#2622)
yunchu Nov 10, 2023
6d3dd34
Update tpp (#2621)
yunchu Nov 10, 2023
2c9b745
Fix h-label bug of missing parent labels in output (#2626)
goodsong81 Nov 10, 2023
13a3993
Update publish workflow (#2625)
yunchu Nov 10, 2023
07491a0
Merge branch 'releases/1.5.0' into releases/1.4.0 for mergeback 1.4.4…
yunchu Nov 10, 2023
eadbb15
bump datumaro version to ~=1.5.0
yunchu Nov 10, 2023
516d395
fixed mistake while mergeing back 1.4.4
yunchu Nov 10, 2023
d84c3d4
modifiy readme
yunchu Nov 10, 2023
5e5729b
remove openvino model wrapper class
yunchu Nov 13, 2023
0325c14
remove openvino model wrapper tests
yunchu Nov 13, 2023
16dd688
[release 1.5.0] DeiT: enable tests + add ViTFeatureVectorHook (#2630)
GalyaZalesskaya Nov 13, 2023
c461200
Fix docs broken link to datatumaro_h-label
goodsong81 Nov 13, 2023
9f4a34b
Fix wrong label settings for non-anomaly task ModelAPIs
goodsong81 Nov 13, 2023
e459f1f
Merge branch 'releases/1.5.0' into mergeback/1.4.4-to-1.5.0
goodsong81 Nov 13, 2023
51ef6db
Merge pull request #2629 from openvinotoolkit/mergeback/1.4.4-to-1.5.0
yunchu Nov 13, 2023
4ca63e8
Update publish workflow for tag checking (#2632)
yunchu Nov 14, 2023
e3bd52d
Merge branch 'releases/1.5.0' into mergeback/1.5.0
yunchu Nov 14, 2023
061aecf
Update e2e tests for XAI Detection (#2634)
GalyaZalesskaya Nov 15, 2023
104404b
Merge pull request #2633 from openvinotoolkit/mergeback/1.5.0
yunchu Nov 15, 2023
9f591b6
Disable QAT for newly added models (#2636)
jaegukhyun Nov 15, 2023
a2545f9
Update release note and readme (#2637)
yunchu Nov 15, 2023
5f1d0ba
Merge branch 'releases/1.4.0' into mergeback/1.4.4rc2
yunchu Nov 15, 2023
0e09a19
update release note and, changelog, and readme
yunchu Nov 15, 2023
8107372
Merge branch 'releases/1.5.0' into mergeback/1.4.4rc2
yunchu Nov 15, 2023
9909d17
Merge pull request #2639 from openvinotoolkit/mergeback/1.4.4rc2
yunchu Nov 16, 2023
26d0fb4
Merge branch 'releases/1.5.0' into mergeback/1.5.0
yunchu Nov 16, 2023
dd84a24
update version string to 1.6.0dev
yunchu Nov 16, 2023
202c193
fix datumaro version to 1.6.0rc0
yunchu Nov 16, 2023
2f67686
Mergeback 1.5.0 to develop (#2642)
yunchu Nov 17, 2023
ddd73f2
Revert "Mergeback 1.5.0 to develop" (#2645)
yunchu Nov 17, 2023
5f62d47
Merge pull request #2646 from openvinotoolkit/mergeback/1.5.0
yunchu Nov 17, 2023
9cf5624
Add a tool to help conduct experiments (#2651)
eunwoosh Nov 20, 2023
a0780a8
Make `max_num_detections` configurable (#2647)
goodsong81 Nov 20, 2023
72cf37c
Revert inference batch size to 1 for instance segmentation (#2648)
goodsong81 Nov 20, 2023
aceebda
Fix CPU training issue on non-CUDA system (#2655)
goodsong81 Nov 21, 2023
2a936f0
Merge branch 'releases/1.4.0' into mergeback/140to150
yunchu Nov 21, 2023
6b8729a
Remove unnecessary log while building a model (#2658)
eunwoosh Nov 21, 2023
a49d58f
Merge pull request #2659 from openvinotoolkit/mergeback/140to150
yunchu Nov 21, 2023
e995639
Merge branch 'develop' into mergeback/1.5.0-to-dev
yunchu Nov 21, 2023
0fbfbb1
Fix a minor bug of experiment.py (#2662)
eunwoosh Nov 22, 2023
090ae97
Not check avg_time_per_image during test (#2665)
eunwoosh Nov 22, 2023
89d3c9d
Merge pull request #2663 from openvinotoolkit/mergeback/1.5.0-to-dev
yunchu Nov 23, 2023
aa8d175
Update docs for enabling sphinx.ext.autosummary (#2654)
yunchu Nov 24, 2023
9c56c20
Update PTQ docs (#2672)
GalyaZalesskaya Nov 24, 2023
555df97
Update regression tests for develop (#2652)
yunchu Nov 27, 2023
921c4b3
Exclude py37 target config for cibuildwheel (#2673)
yunchu Nov 27, 2023
0fed1ac
Add `--dryrun` option to tools/experiment.py (#2674)
goodsong81 Nov 27, 2023
de0f5ae
Update OTX explain CLI arguments (#2671)
GalyaZalesskaya Nov 28, 2023
1c084ec
Fix e2e tests for explain (#2681)
GalyaZalesskaya Dec 1, 2023
802dc0f
Add README.md for experiment.py (#2688)
eunwoosh Dec 5, 2023
5333049
Fix typo in reg test cmd (#2691)
yunchu Dec 5, 2023
73a7442
Select more proper model weight file according to commands run just b…
eunwoosh Dec 6, 2023
e3e1498
Add visual prompting zero-shot learning (`learn` & `infer`) (#2616)
sungchul2 Dec 11, 2023
4ef86da
Fix unsupported dtype in ov graph constant converter (#2676)
sovrasov Dec 12, 2023
89b62d7
Skip failure TC with adding issue number ref. (#2717)
yunchu Dec 12, 2023
3397006
Fix visual prompting e2e test (#2719)
sungchul2 Dec 12, 2023
e88bde1
Remove duplicated variable combination in experiment.py (#2713)
eunwoosh Dec 13, 2023
41fdefa
Enhance detection & instance segmentation experiment (#2710)
goodsong81 Dec 14, 2023
fa40db3
Merge branch 'develop' into develop-idev
eunwoosh Dec 14, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .github/workflows/run_tests_in_tox.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,6 @@ jobs:
name: ${{ inputs.artifact-prefix }}-${{ inputs.toxenv-task }}-${{ inputs.toxenv-pyver }}-${{ inputs.toxenv-ptver }}
path: |
.tox/tests-${{ inputs.toxenv-task }}-${{ inputs.toxenv-pyver }}-${{ inputs.toxenv-ptver }}.csv
.tox/tests-reg_${{ inputs.task }}_*.csv
.tox/tests-reg_tiling_${{ inputs.task }}_*.csv
.tox/tests-reg_${{ inputs.task }}*.csv
# Use always() to always run this step to publish test results when there are test failures
if: ${{ inputs.upload-artifact && always() }}
9 changes: 1 addition & 8 deletions .github/workflows/weekly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,31 +14,24 @@ jobs:
include:
- toxenv_task: "iseg"
test_dir: "tests/regression/instance_segmentation/test_instance_segmentation.py"
runs_on: "['self-hosted', 'Linux', 'X64', 'dmount']"
task: "instance_segmentation"
- toxenv_task: "iseg_t"
test_dir: "tests/regression/instance_segmentation/test_tiling_instance_segmentation.py"
runs_on: "['self-hosted', 'Linux', 'X64', 'dmount']"
task: "instance_segmentation"
- toxenv_task: "seg"
test_dir: "tests/regression/semantic_segmentation"
runs_on: "['self-hosted', 'Linux', 'X64', 'dmount']"
task: "segmentation"
- toxenv_task: "det"
test_dir: "tests/regression/detection"
runs_on: "['self-hosted', 'Linux', 'X64', 'dmount']"
task: "detection"
- toxenv_task: "ano"
test_dir: "tests/regression/anomaly"
runs_on: "['self-hosted', 'Linux', 'X64', 'dmount']"
task: "anomaly"
- toxenv_task: "act"
test_dir: "tests/regression/action"
runs_on: "['self-hosted', 'Linux', 'X64', 'dmount']"
task: "action"
- toxenv_task: "cls"
test_dir: "tests/regression/classification"
runs_on: "['self-hosted', 'Linux', 'X64', 'dmount']"
task: "classification"
name: Regression-Test-py310-${{ matrix.toxenv_task }}
uses: ./.github/workflows/run_tests_in_tox.yml
Expand All @@ -47,7 +40,7 @@ jobs:
toxenv-pyver: "py310"
toxenv-task: ${{ matrix.toxenv_task }}
tests-dir: ${{ matrix.test_dir }}
runs-on: ${{ matrix.runs_on }}
runs-on: "['self-hosted', 'Linux', 'X64', 'dmount']"
task: ${{ matrix.task }}
timeout-minutes: 8640
upload-artifact: true
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ results/
build/
dist/
!src/otx/recipes/**
src/otx/recipes/**/__pycache__
*egg-info

*.pth
Expand Down Expand Up @@ -45,3 +46,6 @@ src/**/*.so

# Dataset made by unit-test
tests/**/detcon_mask/*

# sphinx-autosummary generated files
docs/**/_autosummary/
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.

## \[unreleased\]

### New features

- Add zero-shot visual prompting (https://github.com/openvinotoolkit/training_extensions/pull/2616)

## \[v1.5.0\]

### New features
Expand Down Expand Up @@ -46,6 +50,7 @@ All notable changes to this project will be documented in this file.
- Update ModelAPI configuration(<https://github.com/openvinotoolkit/training_extensions/pull/2564>)
- Add Anomaly modelAPI changes (<https://github.com/openvinotoolkit/training_extensions/pull/2563>)
- Update Image numpy access (<https://github.com/openvinotoolkit/training_extensions/pull/2586>)
- Make max_num_detections configurable (<https://github.com/openvinotoolkit/training_extensions/pull/2647>)

### Bug fixes

Expand Down
6 changes: 6 additions & 0 deletions docs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,9 @@ html:
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

# Custom clean target that also removes autosummary generated files. Can
# be removed when https://github.com/sphinx-doc/sphinx/issues/1999 is fixed.
clean:
rm -rf "$(SOURCEDIR)/guide/reference/_autosummary"
$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
38 changes: 37 additions & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,23 @@
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
"sphinx.ext.napoleon", # Support for NumPy and Google style docstrings
'sphinx.ext.autodoc',
'sphinx_copybutton',
"sphinx.ext.autosummary", # Create neat summary tables
"sphinx.ext.viewcode", # Find the source files
"sphinx.ext.autosectionlabel", # Refer sections its title
"sphinx.ext.intersphinx", # Generate links to the documentation
]

source_suffix = {
".rst": "restructuredtext",
".md": "markdown",
}

suppress_warnings = [
"ref.python",
"autosectionlabel.*",
]

# Add any paths that contain templates here, relative to this directory.
Expand All @@ -45,7 +60,6 @@
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = []


# -- Options for HTML output ------------------------------------------------- #
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
Expand Down Expand Up @@ -74,3 +88,25 @@
html_css_files = [
'css/custom.css',
]

# -- Extension configuration -------------------------------------------------
autodoc_docstring_signature = True
autodoc_member_order = "bysource"
intersphinx_mapping = {
"python": ("https://docs.python.org/3", None),
"numpy": ("https://numpy.org/doc/stable/", None),
}
autodoc_member_order = "groupwise"
autodoc_default_options = {
"members": True,
"methods": True,
"special-members": "__call__",
"exclude-members": "_abc_impl",
"show-inheritance": True,
}

autoclass_content = "both"

autosummary_generate = True # Turn on sphinx.ext.autosummary
autosummary_ignore_module_all = False # Summary list in __all__ no others
# autosummary_imported_members = True # document classes and functions imported in modules
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
Models Optimization
===================

OpenVINO™ Training Extensions provides two types of optimization algorithms: `Post-training Optimization Tool (POT) <https://docs.openvino.ai/latest/pot_introduction.html#doxid-pot-introduction>`_ and `Neural Network Compression Framework (NNCF) <https://github.com/openvinotoolkit/nncf>`_.
OpenVINO™ Training Extensions provides two types of optimization algorithms: `Post-Training Quantization tool (PTQ) <https://github.com/openvinotoolkit/nncf#post-training-quantization>`_ and `Neural Network Compression Framework (NNCF) <https://github.com/openvinotoolkit/nncf>`_.

*******************************
Post-training Optimization Tool
Post-Training Quantization Tool
*******************************

POT is designed to optimize the inference of models by applying post-training methods that do not require model retraining or fine-tuning. If you want to know more details about how POT works and to be more familiar with model optimization methods, please refer to `documentation <https://docs.openvino.ai/latest/pot_introduction.html#doxid-pot-introduction>`_.
PTQ is designed to optimize the inference of models by applying post-training methods that do not require model retraining or fine-tuning. If you want to know more details about how PTQ works and to be more familiar with model optimization methods, please refer to `documentation <https://docs.openvino.ai/2023.2/ptq_introduction.html>`_.

To run Post-training optimization it is required to convert the model to OpenVINO™ intermediate representation (IR) first. To perform fast and accurate quantization we use ``DefaultQuantization Algorithm`` for each task. Please, see the `DefaultQuantization Parameters <https://docs.openvino.ai/latest/pot_compression_algorithms_quantization_default_README.html#doxid-pot-compression-algorithms-quantization-default-r-e-a-d-m-e>`_ for further information about configuring the optimization.
To run Post-training quantization it is required to convert the model to OpenVINO™ intermediate representation (IR) first. To perform fast and accurate quantization we use ``DefaultQuantization Algorithm`` for each task. Please, refer to the `Tune quantization Parameters <https://docs.openvino.ai/2023.2/basic_quantization_flow.html#tune-quantization-parameters>`_ for further information about configuring the optimization.

POT parameters can be found and configured in ``template.yaml`` and ``configuration.yaml`` for each task. For Anomaly and Semantic Segmentation tasks, we have separate configuration files for POT, that can be found in the same directory with ``template.yaml``, for example for `PaDiM <https://github.com/openvinotoolkit/training_extensions/blob/develop/src/otx/algorithms/anomaly/configs/classification/padim/ptq_optimization_config.py>`_, `OCR-Lite-HRNe-18-mod2 <https://github.com/openvinotoolkit/training_extensions/blob/develop/src/otx/algorithms/segmentation/configs/ocr_lite_hrnet_18_mod2/ptq_optimization_config.py>`_ model.
PTQ parameters can be found and configured in ``template.yaml`` and ``configuration.yaml`` for each task. For Anomaly and Semantic Segmentation tasks, we have separate configuration files for PTQ, that can be found in the same directory with ``template.yaml``, for example for `PaDiM <https://github.com/openvinotoolkit/training_extensions/blob/develop/src/otx/algorithms/anomaly/configs/classification/padim/ptq_optimization_config.py>`_, `OCR-Lite-HRNe-18-mod2 <https://github.com/openvinotoolkit/training_extensions/blob/develop/src/otx/algorithms/segmentation/configs/ocr_lite_hrnet_18_mod2/ptq_optimization_config.py>`_ model.

************************************
Neural Network Compression Framework
Expand All @@ -25,9 +25,9 @@ You can refer to configuration files for default templates for each task accordi

NNCF tends to provide better quality in terms of preserving accuracy as it uses training compression approaches.
Compression results achievable with the NNCF can be found `here <https://github.com/openvinotoolkit/nncf#nncf-compressed-model-zoo>`_ .
Meanwhile, the POT is faster but can degrade accuracy more than the training-enabled approach.
Meanwhile, the PTQ is faster but can degrade accuracy more than the training-enabled approach.

.. note::
The main recommendation is to start with post-training compression and use NNCF compression during training if you are not satisfied with the results.

Please, refer to our :doc:`dedicated tutorials <../../tutorials/base/how_to_train/index>` on how to optimize your model using POT or NNCF.
Please, refer to our :doc:`dedicated tutorials <../../tutorials/base/how_to_train/index>` on how to optimize your model using PTQ or NNCF.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Action Classification
==================
=====================

Action classification is a problem of identifying the action that is being performed in a video. The input to the algorithm is a sequence of video frames, and the output is a label indicating the action that is being performed.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/guide/explanation/algorithms/anomaly/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ Since STFPM trains the student network, we use the following parameters for its
- ``Aditional Techniques``:
- ``Early Stopping``: Early stopping is used to stop the training process when the validation loss stops improving. The default value of the early stopping patience is ``10``.

For more information on STFPM's training. We invite you to read Anomalib's `STFPM documentation<https://openvinotoolkit.github.io/anomalib/reference_guide/algorithms/stfpm.html>`_.
For more information on STFPM's training. We invite you to read Anomalib's `STFPM documentation <https://anomalib.readthedocs.io/en/latest/reference_guide/algorithms/stfpm.htm>`_.

Reconstruction-based Models
---------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ In the table below the top-1 accuracy on some academic datasets using our :ref:`
+-----------------------+-----------------+-----------+-----------+-----------+
| EfficientNet-V2-S | 96.13 | 90.36 | 97.68 | 86.74 |
+-----------------------+-----------------+-----------+-----------+-----------+
*These datasets were splitted with auto-split (80% train, 20% test).
\* These datasets were splitted with auto-split (80% train, 20% test).

************************
Semi-supervised Learning
Expand Down Expand Up @@ -145,7 +145,6 @@ In the table below the top-1 accuracy on some academic datasets using our pipeli
| EfficientNet-V2-S | 36.03 | 39.66 | 16.81 | 20.28 | 65.99 | 69.61 |
+-----------------------+---------+---------+-------+---------+--------+---------+

|

- 10 labeled images per class including unlabeled dataset for Semi-SL

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ Specifically, this format should be converted in our `internal representation <h
To convert the COCO data format to our internal one, run this script in similar way:

.. code-block::

python convert_coco_to_multilabel.py --ann_file_path <path to .json COCO annotations> --data_root_dir <path to images folder> --output <output path to save annotations>

.. note::
Expand Down
2 changes: 2 additions & 0 deletions docs/source/guide/explanation/algorithms/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ To this end, we support:
- **Supervised training**. This is the most common approach for computer vision tasks such as object detection and image classification. Supervised learning involves training a model on a labeled dataset of images. The model learns to associate specific features in the images with the corresponding labels.

- **Incremental learning**. This learning approach lets the model train on new data as it becomes available, rather than retraining the entire model on the whole dataset every time new data is added. OpenVINO™ Training Extensions supports also the class incremental approach for all tasks. In this approach, the model is first trained on a set of classes, and then incrementally updated with new classes of data, while keeping the previously learned classes' knowledge. The class incremental approach is particularly useful in situations where the number of classes is not fixed and new classes may be added over time.

.. _semi_sl_explanation:

- **Semi-supervised learning**. This is a type of machine learning in which the model is trained on a dataset that contains a combination of labeled and unlabeled examples. The labeled examples are used to train the model, while the unlabeled examples are used to improve the model's performance by providing additional information about the underlying distribution of the data. This approach is often used when there is a limited amount of labeled data available, but a large amount of unlabeled data. This can make it more cost-effective and efficient to train models compared to traditional supervised learning, where the model is trained only on labeled data.

- **Self-supervised learning**. This is a type of machine learning where the model is trained on a dataset that contains only unlabeled examples. The model is trained to learn useful representations of the data by solving a task that can be inferred from the input itself, without human-provided labels. The objective is to learn good representations of the input data that can then be used for downstream tasks such as classification, detection, generation or clustering.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ We support the following ready-to-use model templates:
Above table can be found using the following command

.. code-block::

$ otx find --task detection

`MobileNetV2-ATSS <https://arxiv.org/abs/1912.02424>`_ is a good medium-range model that works well and fast in most cases.
Expand Down Expand Up @@ -147,6 +148,7 @@ Please, refer to the :doc:`tutorial <../../../tutorials/advanced/backbones>` how
To see which public backbones are available for the task, the following command can be executed:

.. code-block::

$ otx find --backbone {torchvision, pytorchcv, mmcls, omz.mmcls}

In the table below the test mAP on some academic datasets using our :ref:`supervised pipeline <od_supervised_pipeline>` is presented.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,11 @@ We support the following ready-to-use model templates:
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+---------------------+-----------------+
| Template ID | Name | Complexity (GFLOPs) | Model size (MB) |
+============================================================================================================================================================================================================================================+============================+=====================+=================+
| `Custom_Counting_Instance_Segmentation_MaskRCNN_EfficientNetB2B <https://github.com/openvinotoolkit/training_extensions/blob/develop/src/otx/algorithms/detection/configs/instance_segmentation/efficientnetb2b_maskrcnn/template.yaml>`_ | MaskRCNN-EfficientNetB2B | 68.48 | 13.27 |
| `Custom_Counting_Instance_Segmentation_MaskRCNN_EfficientNetB2B <https://github.com/openvinotoolkit/training_extensions/blob/develop/src/otx/algorithms/detection/configs/instance_segmentation/efficientnetb2b_maskrcnn/template.yaml>`_ | MaskRCNN-EfficientNetB2B | 68.48 | 13.27 |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+---------------------+-----------------+
| `Custom_Counting_Instance_Segmentation_MaskRCNN_ResNet50 <https://github.com/openvinotoolkit/training_extensions/blob/develop/src/otx/algorithms/detection/configs/instance_segmentation/resnet50_maskrcnn/template.yaml>`_ | MaskRCNN-ResNet50 | 533.80 | 177.90 |
| `Custom_Counting_Instance_Segmentation_MaskRCNN_ResNet50 <https://github.com/openvinotoolkit/training_extensions/blob/develop/src/otx/algorithms/detection/configs/instance_segmentation/resnet50_maskrcnn/template.yaml>`_ | MaskRCNN-ResNet50 | 533.80 | 177.90 |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+---------------------+-----------------+
| `Custom_Counting_Instance_Segmentation_MaskRCNN_ConvNeXt <https://github.com/openvinotoolkit/training_extensions/blob/develop/src/otx/algorithms/detection/configs/instance_segmentation/convnext_maskrcnn/template.yaml>`_ | MaskRCNN-ConvNeXt | 266.78 | 192.4 |
| `Custom_Counting_Instance_Segmentation_MaskRCNN_ConvNeXt <https://github.com/openvinotoolkit/training_extensions/blob/develop/src/otx/algorithms/detection/configs/instance_segmentation/convnext_maskrcnn/template.yaml>`_ | MaskRCNN-ConvNeXt | 266.78 | 192.4 |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------+---------------------+-----------------+

MaskRCNN-ResNet50 utilizes the `ResNet-50 <https://arxiv.org/abs/1512.03385>`_ architecture as the backbone network for extracting image features. This choice of backbone network results in a higher number of parameters and FLOPs, which consequently requires more training time. However, the model offers superior performance in terms of accuracy.
Expand Down
Loading