def main(): logging.basicConfig(level=logging.INFO) modules = load_config(MODULES_CONFIG_FILENAME) arg_parser = build_arg_parser(modules['arg_parser']) ote_args = vars(arg_parser.get_train_parser(MODEL_TEMPLATE_FILENAME).parse_args()) arg_converter = build_arg_converter(modules['arg_converter']) train_args = arg_converter.convert_train_args(MODEL_TEMPLATE_FILENAME, ote_args) # Note that compression args transformer is not applied here, # since NNCF compression (if it is enabled) will be applied # later, when the training is finished. trainer = build_trainer(modules['trainer']) trainer(**train_args) if modules.get('compression') and is_compression_enabled_in_template(MODEL_TEMPLATE_FILENAME): # TODO: think on the case if compression is enabled in template.yaml, but modules does not contain 'compression' latest_snapshot = trainer.get_latest_snapshot() if not latest_snapshot: raise RuntimeError('Cannot find latest snapshot to make compression after training') compress_args = arg_converter.convert_train_args_to_compress_args(MODEL_TEMPLATE_FILENAME, ote_args) arg_converter.update_converted_args_to_load_from_snapshot(compress_args, latest_snapshot) compression_arg_transformer = build_compression_arg_transformer(modules['compression']) compress_args = compression_arg_transformer.process_args(MODEL_TEMPLATE_FILENAME, compress_args) compress_trainer = build_trainer(modules['trainer']) compress_trainer(**compress_args)
def main(): logging.basicConfig(level=logging.INFO) modules = load_config(MODULES_CONFIG_FILENAME) arg_parser = build_arg_parser(modules['arg_parser']) ote_args = vars(arg_parser.get_compression_parser(MODEL_TEMPLATE_FILENAME).parse_args()) if 'compression' not in modules: raise RuntimeError(f'Cannot make compression for the template that' f' does not have "compression" field in its modules' f' file {MODULES_CONFIG_FILENAME}') if not is_optimisation_enabled_in_template(MODEL_TEMPLATE_FILENAME): raise RuntimeError(f'Cannot make compression for the template that' f' does not enable any of compression flags') arg_converter = build_arg_converter(modules['arg_converter_map']) compress_args = arg_converter.convert_compress_args(ote_args) compression_arg_transformer = build_compression_arg_transformer(modules['compression']) compress_args, is_optimisation_enabled = \ compression_arg_transformer.process_args(MODEL_TEMPLATE_FILENAME, compress_args) if not is_optimisation_enabled: logging.warning('Optimization flags are not set -- compression is not made') return # Note that compression in this tool will be made by the same trainer, # as in the tool train.py # The difference is only in the argparser and in the NNCFConfigTransformer used to # transform the configuration file. trainer = build_trainer(modules['trainer']) trainer(**compress_args)
def main(): logging.basicConfig(level=logging.INFO) modules = load_config(MODULES_CONFIG_FILENAME) arg_parser = build_arg_parser(modules['arg_parser']) ote_args = vars(arg_parser.get_train_parser(MODEL_TEMPLATE_FILENAME).parse_args()) arg_converter = build_arg_converter(modules['arg_converter_map']) train_args = arg_converter.convert_train_args(ote_args) # Note that compression args transformer is not applied here, # since NNCF compression (if it is enabled) will be applied # later, when the training is finished. trainer = build_trainer(modules['trainer']) trainer(**train_args)