#101·HRM

在模型加载过程中,将 bare except 替换为明确的异常 (evaluate.py)

作者: somdipto创建于 2025年12月23日更新于 2025年12月23日

问题

evaluate.py 中,模型加载部分使用了一个 bare except: 子句:

python
try:
    train_state.model.load_state_dict(torch.load(eval_cfg.checkpoint, map_location="cuda"), assign=True)
except:
    train_state.model.load_state_dict({k.removeprefix("_orig_mod."): v for k, v in torch.load(eval_cfg.checkpoint, map_location="cuda").items()}, assign=True)

使用 bare except: 是危险的,因为它会捕获所有异常,包括 KeyboardInterrupt 和 SystemExit,这可能会隐藏错误、中断信号或应处理不同的错误。