def driver(argv: argparse.Namespace): init_logger(argv.log_level.upper(), argv.silent) start_time = datetime.datetime.now() graph, ngraph_function = prepare_ir(argv) if graph is not None: ret_res = emit_ir(graph, argv) else: ret_res = moc_emit_ir(ngraph_function, argv) if ret_res != 0: return ret_res elapsed_time = datetime.datetime.now() - start_time print('[ SUCCESS ] Total execution time: {:.2f} seconds. '.format( elapsed_time.total_seconds())) try: import resource mem_usage = round( resource.getrusage(resource.RUSAGE_SELF).ru_maxrss / 1024) if sys.platform == 'darwin': mem_usage = round(mem_usage / 1024) print('[ SUCCESS ] Memory consumed: {} MB. '.format(mem_usage)) except ImportError: pass return ret_res
def main(cli_parser: argparse.ArgumentParser, fem: FrontEndManager, framework: str): telemetry = tm.Telemetry(tid=get_tid(), app_name='Model Optimizer', app_version=get_simplified_mo_version()) telemetry.start_session('mo') telemetry.send_event('mo', 'version', get_simplified_mo_version()) try: # Initialize logger with 'ERROR' as default level to be able to form nice messages # before arg parser deliver log_level requested by user init_logger('ERROR', False) argv = cli_parser.parse_args() send_params_info(argv, cli_parser) if framework: argv.framework = framework argv.feManager = fem ov_update_message = None if not hasattr(argv, 'silent') or not argv.silent: ov_update_message = get_ov_update_message() ret_code = driver(argv) if ov_update_message: print(ov_update_message) telemetry.send_event('mo', 'conversion_result', 'success') telemetry.end_session('mo') telemetry.force_shutdown(1.0) return ret_code except (FileNotFoundError, NotADirectoryError) as e: log.error('File {} was not found'.format( str(e).split('No such file or directory:')[1])) log.debug(traceback.format_exc()) except Error as err: analysis_results = AnalysisResults() if analysis_results.get_messages() is not None: for el in analysis_results.get_messages(): log.error(el, extra={'analysis_info': True}) log.error(err) log.debug(traceback.format_exc()) except FrameworkError as err: log.error(err, extra={'framework_error': True}) log.debug(traceback.format_exc()) except Exception as err: log.error("-------------------------------------------------") log.error("----------------- INTERNAL ERROR ----------------") log.error("Unexpected exception happened.") log.error( "Please contact Model Optimizer developers and forward the following information:" ) log.error(str(err)) log.error(traceback.format_exc()) log.error("---------------- END OF BUG REPORT --------------") log.error("-------------------------------------------------") telemetry.send_event('mo', 'conversion_result', 'fail') telemetry.end_session('mo') telemetry.force_shutdown(1.0) return 1
import tempfile from copy import deepcopy from openvino.tools.mo.graph.graph import Graph from openvino.tools.mo.utils.ir_reader.restore_graph import restore_graph_from_ir, save_restored_graph from openvino.tools.mo.utils.logger import init_logger from openvino.runtime import Core # pylint: disable=E0401,E0611 from openvino.runtime.passes import Manager # pylint: disable=E0401,E0611 try: from openvino.offline_transformations import apply_pot_transformations # pylint: disable=import-error,no-name-in-module except ImportError: from openvino.offline_transformations_pybind import apply_pot_transformations # pylint: disable=import-error,no-name-in-module from ..graph.passes import ModelPreprocessor, remove_converts, add_removed_converts from ..utils.logger import stdout_redirect init_logger('ERROR', False) core = Core() pass_manager = Manager() def load_graph(model_config, target_device='ANY'): """ Loads model from specified path :return NetworkX model """ special_transform_devices = ['GNA'] serialized_bin_path = os.path.join(tempfile.gettempdir(), 'serialized_ir.bin') serialized_xml_path = os.path.join(tempfile.gettempdir(), 'serialized_ir.xml') bin_path = model_config.weights xml_path = model_config.model