@@ -201,7 +201,7 @@ def predict(self, inputs, metadata=None, **kwargs):
201
201
outputs = self .infer_request .infer (inputs = feed_dict )
202
202
results .append ({
203
203
out_node .get_node ().friendly_name : out_res
204
- for out_node , out_res in zip ( self . exec_network . outputs , outputs )
204
+ for out_node , out_res in outputs . items ( )
205
205
})
206
206
if self .reset_memory_state :
207
207
for state in self .infer_request .query_state ():
@@ -224,7 +224,7 @@ def _predict_sequential(self, inputs, metadata=None, **kwargs):
224
224
out_tensors = self .infer_request .infer (infer_inputs )
225
225
output_result = {
226
226
out_node .get_node ().friendly_name : out_tensor
227
- for out_node , out_tensor in zip ( self . exec_network . outputs , out_tensors )
227
+ for out_node , out_tensor in out_tensors . items ( )
228
228
}
229
229
lstm_inputs_feed = self ._fill_lstm_inputs (output_result )
230
230
results .append (output_result )
@@ -315,6 +315,7 @@ def async_mode(self, flag):
315
315
self ._async_mode = flag
316
316
317
317
def get_async_requests (self ):
318
+ self ._set_nireq ()
318
319
return [
319
320
AsyncInferRequestWrapper (ireq_id , self .exec_network .create_infer_request ())
320
321
for ireq_id in range (self .num_requests )]
@@ -356,7 +357,6 @@ def _prepare_ie(self, log=True):
356
357
self ._prepare_multi_device (log )
357
358
else :
358
359
self .async_mode = self .get_value_from_config ('async_mode' )
359
- self ._set_nireq ()
360
360
if log :
361
361
self ._log_versions ()
362
362
self ._device_specific_configuration ()
@@ -408,8 +408,11 @@ def _set_nireq(self):
408
408
print_info ('Infer requests number:{}' .format (self .num_requests ))
409
409
410
410
def auto_num_requests (self , return_list = False ):
411
- concurrency_device = {'CPU' : 1 , 'GPU' : 1 , 'HDDL' : 100 , 'MYRIAD' : 4 }
412
411
platform_list = self ._devices_list ()
412
+ concurrency_device = {'CPU' : 1 , 'GPU' : 1 , 'HDDL' : 100 , 'MYRIAD' : 4 }
413
+ if hasattr (self , 'exec_network' ) and self .exec_network is not None :
414
+ num_requests = self .exec_network .get_metric ('OPTIMAL_NUMBER_OF_INFER_REQUESTS' )
415
+ return num_requests
413
416
if 'CPU' in platform_list and len (platform_list ) == 1 :
414
417
min_requests = [4 , 5 , 3 ]
415
418
cpu_count = multiprocessing .cpu_count ()
@@ -448,12 +451,10 @@ def _prepare_multi_device(self, log=True):
448
451
if num_devices != len (num_per_device_requests ):
449
452
raise ConfigError ('num requests for all {} should be specified' .format (num_devices ))
450
453
self ._num_requests = sum (num_per_device_requests ) * 2
454
+ self ._async_mode = True
451
455
if log :
452
456
self ._log_versions ()
453
457
print_info ('Async mode activated' )
454
- print_info ('Request number for each device:' )
455
- for device , nreq in zip (device_list , num_per_device_requests ):
456
- print_info (' {} - {}' .format (device , nreq ))
457
458
458
459
def _set_device_config (self , device_config ):
459
460
if not isinstance (device_config , dict ):
@@ -881,10 +882,11 @@ def prepare_data_for_request(self,
881
882
context = (batch_id , batch_input_ids , batch_annotation , batch_identifiers , batch_meta )
882
883
return feed_dict , context
883
884
884
- def get_result_from_request (self , request ):
885
+ @staticmethod
886
+ def get_result_from_request (request ):
885
887
return [{
886
888
out .get_node ().friendly_name : tensor .data for out , tensor
887
- in zip ( self . exec_network . outputs , request .output_tensors )}
889
+ in request .results . items ( )}
888
890
]
889
891
890
892
def input_shape (self , input_name ):
0 commit comments