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

Update for release 2.0.0 #3594

Merged
merged 7 commits into from
Jun 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ All notable changes to this project will be documented in this file.

- Fixing some minor issues

### Known issues

- Anomaly task processing times have increased compared with v1.\* version, with anomaly classification experiencing a slowdown of approximately 26%, anomaly detection by approximately 213%, and anomaly segmentation by approximately 78%. [Issue #3592](https://github.com/openvinotoolkit/training_extensions/issues/3592)
- Post-Training Quantization (PTQ) optimization applied to `maskrcnn_swint` in the instance segmentation task may result in significantly reduced accuracy compared with v1.\* [Issue #3593](https://github.com/openvinotoolkit/training_extensions/issues/3593)

## \[v1.6.1\]

### Enhancements
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -240,8 +240,8 @@ Please use [Issues](https://github.com/openvinotoolkit/training_extensions/issue

## Known limitations

[misc](https://github.com/openvinotoolkit/training_extensions/tree/misc) branch contains training, evaluation, and export scripts for models based on TensorFlow and PyTorch.
These scripts are not ready for production. They are exploratory and have not been validated.
- [misc](https://github.com/openvinotoolkit/training_extensions/tree/misc) branch contains training, evaluation, and export scripts for models based on TensorFlow and PyTorch.
These scripts are not ready for production. They are exploratory and have not been validated.

---

Expand Down
29 changes: 29 additions & 0 deletions docs/source/guide/release_notes/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,35 @@ Releases
v2.0.0 (2Q24)
-------------

.. note::
OpenVINO™ Training Extensions which version 2.0.0 has been updated to include refactoring of the overall
architecture and functional updates. Users should [install the new environment](https://openvinotoolkit.github.io/training_extensions/latest/guide/get_started/installation.html).

New features
^^^^^^^^^^^^
- Enable New design to provide a more seamless API/CLI that delivers the value of OTX: [Product Design](https://openvinotoolkit.github.io/training_extensions/latest/guide/explanation/product_design.html)
- Moved away from MMLab's libraries to provide a Lightning-based core and training pipeline
- Use Lightning-based modules and trainers to deliver APIs/CLIs in a more user-friendly way
- Support Intel devices for accelerating deep learning model training

Enhancements
^^^^^^^^^^^^
- Support more models for each task
- Improve the API so user can configure efficient training with shorter code
- Provide more customize settings through the CLI and API
- Enhance the Auto-Configuration feature and made it available in the API

Bug fixes
^^^^^^^^^
- Fixing some minor issues

Known issues
^^^^^^^^^^^^
- Anomaly task processing times have increased compared with v1.\* version, with anomaly classification experiencing a slowdown of approximately 26%, anomaly detection by approximately 213%, and anomaly segmentation by approximately 78%.
(https://github.com/openvinotoolkit/training_extensions/issues/3592)
- Post-Training Quantization (PTQ) optimization applied to `maskrcnn_swint` in the instance segmentation task may result in significantly reduced accuracy compared with v1.\*
(https://github.com/openvinotoolkit/training_extensions/issues/3593)

v1.6.1 (2024.05)
----------------

Expand Down
2 changes: 1 addition & 1 deletion src/otx/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Copyright (C) 2023 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

__version__ = "2.0.0rc0"
__version__ = "2.0.0"

from otx.core.types import * # noqa: F403

Expand Down
2 changes: 2 additions & 0 deletions tests/fuzzing/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Copyright (C) 2024 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
8 changes: 8 additions & 0 deletions tests/fuzzing/assets/cli/commands.dict
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
"install"
"find"
"train"
"test"
"predict"
"export"
"optimize"
"explain"
36 changes: 36 additions & 0 deletions tests/fuzzing/cli_fuzzing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import sys

import atheris
from helper import FuzzingHelper
from otx.cli import main as cli_main


@atheris.instrument_func
def fuzz_otx(input_bytes):
# create a FuzzingHelper instance to get suitable data type from the randomly generated 'input_bytes'
helper = FuzzingHelper(input_bytes)
backup_argv = sys.argv

# get 'operation' arguments from 'input_bytes'
operation = helper.get_string()
sys.argv = ["otx", operation]
try:
_ = cli_main()
except SystemExit as e:
# argparser will throw SystemExit with code 2 when some required arguments are missing
if e.code != 2:
raise
finally:
sys.argv = backup_argv


def main():
# 'sys.argv' used to passing options to atheris.Setup()
# available options can be found https://llvm.org/docs/LibFuzzer.html#options
atheris.Setup(sys.argv, fuzz_otx)
# Fuzz() will
atheris.Fuzz()


if __name__ == "__main__":
main()
13 changes: 13 additions & 0 deletions tests/fuzzing/helper.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import atheris


class FuzzingHelper:
"""Helper to make required data from input_bytes for the fuzzing tests"""

def __init__(self, input_bytes):
"""Init"""
self.provider = atheris.FuzzedDataProvider(input_bytes)

def get_string(self, byte_conut=256):
"""Consume a string"""
return self.provider.ConsumeString(byte_conut)
15 changes: 15 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,18 @@ allowlist_externals =
bandit
commands =
- bandit -r -c .ci/ipas_default.config {toxinidir}/ -f txt -o {toxworkdir}/bandit-report.txt


[testenv:fuzzing]
deps =
.[dev]
atheris
coverage
extras = full
commands_pre =
; [TODO]: Needs to be fixed so that this is not duplicated for each test run
otx install -v
commands =
coverage erase
- coverage run tests/fuzzing/cli_fuzzing.py {posargs:-artifact_prefix={toxworkdir}/ -print_final_stats=1 -atheris_runs=500000}
coverage report --precision=2
Loading