Skip to content

Commit a0b7c26

Browse files
Julia Kamelinaivikhrev
authored andcommitted
model_tools: update telemetry data (#3424)
* update precision setting for downloader * update telemetry * update version
1 parent 3db9131 commit a0b7c26

File tree

8 files changed

+89
-36
lines changed

8 files changed

+89
-36
lines changed

tools/model_tools/setup.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import distutils.command.sdist
2828
import itertools
2929
import os
30+
import re
3031
import shutil
3132
from pathlib import Path
3233

@@ -47,6 +48,14 @@
4748
def read_text(path):
4849
return (SETUP_DIR / path).read_text()
4950

51+
def get_version(path):
52+
version_file = read_text(path)
53+
version_match = re.search(r"^__version__ = ['\"]([^'\"]*)['\"]", version_file, re.M)
54+
if version_match:
55+
return version_match.group(1)
56+
else:
57+
return "0.0.0"
58+
5059
# We can't build sdists, because we depend on files outside the
5160
# project directory. Disable the sdist command to prevent creation
5261
# of broken sdists.
@@ -98,7 +107,7 @@ def run(self):
98107

99108
setup(
100109
install_requires=read_text('requirements.in'),
101-
version="1.0.1",
110+
version=get_version('src/openvino/model_zoo/__init__.py'),
102111
extras_require={
103112
'pytorch': read_text('requirements-pytorch.in'),
104113
'tensorflow2': read_text('requirements-tensorflow.in'),
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Copyright (c) 2022 Intel Corporation
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+
__version__ = "1.0.2"

tools/model_tools/src/openvino/model_zoo/_common.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,17 @@
2020

2121
from pathlib import Path
2222

23+
from . import __version__
24+
2325
PACKAGE_DIR = Path(__file__).resolve().parent
2426
MODEL_ROOT = PACKAGE_DIR / 'models'
2527
DATASET_DEFINITIONS = PACKAGE_DIR / 'data/dataset_definitions.yml'
26-
VERSION_FILE = None
2728

2829
if not MODEL_ROOT.exists() or not DATASET_DEFINITIONS.exists():
2930
# We are run directly from OMZ rather than from an installed environment.
3031
_OMZ_ROOT = PACKAGE_DIR.parents[4]
3132
MODEL_ROOT = _OMZ_ROOT / 'models'
3233
DATASET_DEFINITIONS = _OMZ_ROOT / 'data/dataset_definitions.yml'
33-
VERSION_FILE = _OMZ_ROOT / 'version.txt'
3434

3535
# make sure to update the documentation if you modify these
3636
KNOWN_FRAMEWORKS = {
@@ -135,25 +135,30 @@ def get_package_path(python_executable, package_name):
135135
return file_path.parent, completed_process.stderr
136136

137137
def get_version():
138-
if VERSION_FILE and VERSION_FILE.is_file():
139-
with VERSION_FILE.open('r') as version_file:
140-
version = version_file.readline().rstrip('\n')
141-
return f'commit {version}'
142-
else:
143-
return 'unknown'
138+
try:
139+
from openvino.runtime import get_version as ov_get_version
140+
ov_version = ov_get_version()
141+
version_match = re.match(r"^([0-9]+).([0-9]+)*", ov_version)
142+
return f"{version_match.group(0)}-{__version__}"
143+
except BaseException:
144+
return __version__
144145

145146
@contextlib.contextmanager
146147
def telemetry_session(app_name, tool):
147148
version = get_version()
148149
telemetry = Telemetry(tid='UA-17808594-29', app_name=app_name, app_version=version)
149150
telemetry.start_session('md')
151+
telemetry.send_event('md', 'version', version)
150152
try:
151153
yield telemetry
152154
except SystemExit as e:
153155
telemetry.send_event('md', f'{tool}_result', 'failure' if e.code else 'success')
156+
if e.code:
157+
telemetry.send_event('md', f'{tool}_error_type', type(e))
154158
raise
155-
except BaseException:
159+
except BaseException as e:
156160
telemetry.send_event('md', f'{tool}_result', 'exception')
161+
telemetry.send_event('md', f'{tool}_error_type', type(e))
157162
raise
158163
else:
159164
telemetry.send_event('md', f'{tool}_result', 'success')
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright (c) 2022 Intel Corporation
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.

tools/model_tools/src/openvino/model_zoo/download_engine/downloader.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,17 +63,12 @@ def requested_precisions(self) -> Set[str]:
6363
return self._requested_precisions
6464

6565
@requested_precisions.setter
66-
def requested_precisions(self, value: str = None):
67-
if value is None:
68-
_requested_precisions = _common.KNOWN_PRECISIONS
69-
else:
70-
_requested_precisions = set(value.split(','))
71-
72-
unknown_precisions = _requested_precisions - _common.KNOWN_PRECISIONS
66+
def requested_precisions(self, value: Set[str] = None):
67+
unknown_precisions = value - _common.KNOWN_PRECISIONS
7368
if unknown_precisions:
7469
sys.exit('Unknown precisions specified: {}.'.format(', '.join(sorted(unknown_precisions))))
7570

76-
self._requested_precisions = _requested_precisions
71+
self._requested_precisions = value
7772

7873
def _process_download(self, reporter, chunk_iterable, size, progress, file):
7974
start_time = time.monotonic()

tools/model_tools/src/openvino/model_zoo/omz_converter.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -196,11 +196,15 @@ def main():
196196
args = parser.parse_args()
197197

198198
with _common.telemetry_session('Model Converter', 'converter') as telemetry:
199-
models = _configuration.load_models_from_args(parser, args, _common.MODEL_ROOT)
199+
args_count = sum([args.all, args.name is not None, args.list is not None, args.print_all])
200+
if args_count == 0:
201+
telemetry.send_event('md', 'converter_selection_mode', None)
202+
else:
203+
for mode in ['all', 'list', 'name', 'print_all']:
204+
if getattr(args, mode):
205+
telemetry.send_event('md', 'converter_selection_mode', mode)
200206

201-
for mode in ['all', 'list', 'name']:
202-
if getattr(args, mode):
203-
telemetry.send_event('md', 'converter_selection_mode', mode)
207+
models = _configuration.load_models_from_args(parser, args, _common.MODEL_ROOT)
204208

205209
if args.precisions is None:
206210
requested_precisions = _common.KNOWN_PRECISIONS
@@ -212,7 +216,7 @@ def main():
212216
model_information = {
213217
'name': model.name,
214218
'framework': model.framework,
215-
'precisions': str(precisions_to_send).replace(',', ';'),
219+
'precisions': str(sorted(precisions_to_send)).replace(',', ';'),
216220
}
217221
telemetry.send_event('md', 'converter_model', json.dumps(model_information))
218222

tools/model_tools/src/openvino/model_zoo/omz_downloader.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,25 +68,33 @@ def main():
6868
reporter = Downloader.make_reporter(args.progress_format)
6969

7070
with _common.telemetry_session('Model Downloader', 'downloader') as telemetry:
71-
models = _configuration.load_models_from_args(parser, args, _common.MODEL_ROOT)
72-
73-
for mode in ['all', 'list', 'name']:
74-
if getattr(args, mode):
75-
telemetry.send_event('md', 'downloader_selection_mode', mode)
71+
args_count = sum([args.all, args.name is not None, args.list is not None, args.print_all])
72+
if args_count == 0:
73+
telemetry.send_event('md', 'downloader_selection_mode', None)
74+
else:
75+
for mode in ['all', 'list', 'name', 'print_all']:
76+
if getattr(args, mode):
77+
telemetry.send_event('md', 'downloader_selection_mode', mode)
7678

79+
models = _configuration.load_models_from_args(parser, args, _common.MODEL_ROOT)
7780
failed_models = set()
7881

79-
downloader = Downloader(args.precisions, args.output_dir, args.cache_dir, args.num_attempts)
82+
if args.precisions is None:
83+
requested_precisions = _common.KNOWN_PRECISIONS
84+
else:
85+
requested_precisions = set(args.precisions.split(','))
8086

8187
for model in models:
82-
precisions_to_send = downloader.requested_precisions if args.precisions else downloader.requested_precisions & model.precisions
88+
precisions_to_send = requested_precisions if args.precisions else requested_precisions & model.precisions
8389
model_information = {
8490
'name': model.name,
8591
'framework': model.framework,
86-
'precisions': str(precisions_to_send).replace(',', ';'),
92+
'precisions': str(sorted(precisions_to_send)).replace(',', ';'),
8793
}
8894
telemetry.send_event('md', 'downloader_model', json.dumps(model_information))
8995

96+
downloader = Downloader(requested_precisions, args.output_dir, args.cache_dir, args.num_attempts)
97+
9098
failed_models = downloader.bulk_download_model(models, reporter, args.jobs, args.progress_format)
9199

92100
if failed_models:

tools/model_tools/src/openvino/model_zoo/omz_quantizer.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,15 @@ def main():
4949
args = parser.parse_args()
5050

5151
with _common.telemetry_session('Model Quantizer', 'quantizer') as telemetry:
52-
models = _configuration.load_models_from_args(parser, args, _common.MODEL_ROOT)
52+
args_count = sum([args.all, args.name is not None, args.list is not None, args.print_all])
53+
if args_count == 0:
54+
telemetry.send_event('md', 'quantizer_selection_mode', None)
55+
else:
56+
for mode in ['all', 'list', 'name', 'print_all']:
57+
if getattr(args, mode):
58+
telemetry.send_event('md', 'quantizer_selection_mode', mode)
5359

54-
for mode in ['all', 'list', 'name']:
55-
if getattr(args, mode):
56-
telemetry.send_event('md', 'quantizer_selection_mode', mode)
60+
models = _configuration.load_models_from_args(parser, args, _common.MODEL_ROOT)
5761

5862
if args.precisions is None:
5963
requested_precisions = _common.KNOWN_QUANTIZED_PRECISIONS.keys()
@@ -64,7 +68,7 @@ def main():
6468
model_information = {
6569
'name': model.name,
6670
'framework': model.framework,
67-
'precisions': str(requested_precisions).replace(',', ';'),
71+
'precisions': str(sorted(requested_precisions)).replace(',', ';'),
6872
}
6973
telemetry.send_event('md', 'quantizer_model', json.dumps(model_information))
7074

0 commit comments

Comments
 (0)