Fix python benchmark_app hanging on faster rcnn (#6003)

This commit is contained in:
Nadezhda Ageeva 2021-06-02 22:01:20 +03:00 committed by GitHub
parent e7e8c4b85e
commit ac1803c3ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 7 deletions

View File

@ -93,7 +93,7 @@ class Benchmark:
infer_request.infer()
else:
infer_request.async_infer()
status = exe_network.wait()
status = infer_request.wait()
if status != StatusCode.OK:
raise Exception(f"Wait for all requests is failed with status code {status}!")
return infer_request.latency

View File

@ -118,9 +118,9 @@ def parse_args():
" Please note, command line parameters have higher priority then parameters from configuration file.")
args.add_argument('-qb', '--quantization_bits', type=int, required=False, default=None, choices=[8, 16],
help="Optional. Weight bits for quantization: 8 (I8) or 16 (I16) ")
args.add_argument('-ip', '--input_precision', type=str, required=False, default='U8', choices=['U8', 'FP16', 'FP32'],
args.add_argument('-ip', '--input_precision', type=str, required=False, choices=['U8', 'FP16', 'FP32'],
help='Optional. Specifies precision for all input layers of the network.')
args.add_argument('-op', '--output_precision', type=str, required=False, default='FP32', choices=['U8', 'FP16', 'FP32'],
args.add_argument('-op', '--output_precision', type=str, required=False, choices=['U8', 'FP16', 'FP32'],
help='Optional. Specifies precision for all output layers of the network.')
args.add_argument('-iop', '--input_output_precision', type=str, required=False,
help='Optional. Specifies precision for input and output layers by name. Example: -iop "input:FP16, output:FP16". Notice that quotes are required. Overwrites precision from ip and op options for specified layers.')

View File

@ -48,10 +48,21 @@ def next_step(additional_info='', step_id=0):
print(step_info_template)
def process_precision(ie_network: IENetwork, app_inputs_info, input_precision: str, output_precision: str, input_output_precision: str):
_configure_network_inputs(ie_network, app_inputs_info, input_precision)
_configure_network_outputs(ie_network, output_precision)
if input_precision:
_configure_network_inputs(ie_network, app_inputs_info, input_precision)
if output_precision:
_configure_network_outputs(ie_network, output_precision)
if input_output_precision:
_configure_network_inputs_and_outputs(ie_network, input_output_precision)
input_info = ie_network.input_info
for key in app_inputs_info.keys():
## if precision for input set by user, then set it to app_inputs
## if it an image, set U8
if input_precision or (input_output_precision and key in input_output_precision.keys()):
app_inputs_info[key].precision = input_info[key].precision
elif app_inputs_info[key].is_image:
app_inputs_info[key].precision = 'U8'
input_info[key].precision = 'U8'
def _configure_network_inputs(ie_network: IENetwork, app_inputs_info, input_precision: str):
input_info = ie_network.input_info