def _apply_field_value_changes_in_nncf_config_recursively(
                template_file, field_value_changes_in_nncf_config):
            import mmcv
            from ote.modules.compression import get_optimisation_config_from_template

            assert isinstance(field_value_changes_in_nncf_config, dict)

            template_data = mmcv.Config.fromfile(template_file)
            compression_cfg_rel_path = get_optimisation_config_from_template(
                template_data)
            compression_cfg_path = os.path.join(os.path.dirname(template_file),
                                                compression_cfg_rel_path)

            compression_cfg = mmcv.Config.fromfile(compression_cfg_path)
            compression_cfg = dict(compression_cfg)

            make_field_value_changes_in_struct_recursively(
                compression_cfg, field_value_changes_in_nncf_config)

            mmcv.dump(compression_cfg,
                      compression_cfg_path,
                      file_format='json')
            logging.debug(
                f'Made new compression config file:\n{pformat(mmcv.load(compression_cfg_path))}'
            )
Esempio n. 2
0
        def apply_update_dict_params_to_template_file(template_file, template_update_dict, compression_cfg_update_dict):
            template_data = mmcv.Config.fromfile(template_file)
            template_data.dump(template_file + '.backup.yaml')

            assert is_optimisation_enabled_in_template(template_data), \
                    f'Template {template_file} does not contain optimisation part'

            if compression_cfg_update_dict:
                compression_cfg_rel_path = get_optimisation_config_from_template(template_data)
                compression_cfg_path = os.path.join(os.path.dirname(template_file), compression_cfg_rel_path)
                backup_compression_cfg_path = compression_cfg_path + '.BACKUP_FROM_TEST.json'

                compression_cfg = mmcv.Config.fromfile(compression_cfg_path)
                compression_cfg.dump(backup_compression_cfg_path)

                compression_cfg.merge_from_dict(compression_cfg_update_dict)
                compression_cfg.dump(compression_cfg_path)


            template_data.merge_from_dict(template_update_dict)
            template_data.dump(template_file)
Esempio n. 3
0
def _get_optimisation_config_from_template(*args, **kwargs):
    from ote.modules.compression import get_optimisation_config_from_template
    return get_optimisation_config_from_template(*args, **kwargs)