| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import yaml
- import argparse
- def update_dct(fin_configs, root):
- if root == {}:
- return {}
- for root_key, root_value in root.items():
- if not isinstance(root[root_key],dict):
- fin_configs[root_key] = root[root_key]
- else:
- result = update_dct(fin_configs[root_key], root[root_key])
- fin_configs[root_key] = result
- return fin_configs
- if __name__ == '__main__':
- parser = argparse.ArgumentParser(
- description="update configs",
- formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- )
- parser.add_argument("--modelscope_config",
- type=str,
- help="modelscope config file")
- parser.add_argument("--finetune_config",
- type=str,
- help="finetune config file")
- parser.add_argument("--output_config",
- type=str,
- help="output config file")
- args = parser.parse_args()
- with open(args.modelscope_config) as f:
- modelscope_configs = yaml.safe_load(f)
- with open(args.finetune_config) as f:
- finetune_configs = yaml.safe_load(f)
- # update configs, e.g., lr, batch_size, ...
- modelscope_configs = update_dct(modelscope_configs, finetune_configs)
- with open(args.output_config, "w") as f:
- yaml.dump(modelscope_configs, f, indent=4)
|