def load_pre_trained_checkpoint(): param_dict = None if cfg['pre_trained']: if os.path.isdir(cfg['ckpt_path']): ckpt_save_dir = cfg['ckpt_path'] ckpt_pattern = os.path.join(ckpt_save_dir, "*.ckpt") ckpt_files = glob.glob(ckpt_pattern) if not ckpt_files: logger.warning(f"There is no ckpt file in {ckpt_save_dir}, " f"pre_trained is unsupported.") else: ckpt_files.sort(key=os.path.getmtime, reverse=True) time_stamp = datetime.datetime.now() print(f"time stamp {time_stamp.strftime('%Y.%m.%d-%H:%M:%S')}" f" pre trained ckpt model {ckpt_files[0]} loading", flush=True) param_dict = ms.load_checkpoint(ckpt_files[0]) elif os.path.isfile(cfg['ckpt_path']): param_dict = ms.load_checkpoint(cfg['ckpt_path']) print('Successfully loaded!') else: print(f"Invalid pre_trained {cfg['ckpt_path']} parameter.") return param_dict
时间: 2024-02-14 22:28:36 浏览: 142
SAFE代码需要的外部文件:safe_trained_X86.pb
这是一个加载预训练模型的函数。它首先检查配置文件中的预训练参数(pre_trained)是否为True,并且检查ckpt_path参数指定的路径是否存在。
如果ckpt_path是一个目录,则函数会在该目录中查找最新的.ckpt文件,并使用MindSpore的load_checkpoint方法加载该文件。加载成功后,将打印加载的模型文件的时间戳和路径,并返回参数字典(param_dict)。
如果ckpt_path是一个文件,则直接使用MindSpore的load_checkpoint方法加载该文件,并返回参数字典。
如果pre_trained为False或者ckpt_path参数无效(既不是目录也不是文件),则会打印相应的错误信息,并返回None。
阅读全文