You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Detectron2中DefaultTrainer训练时的模型保存文件名

修改Detectron2 DefaultTrainer模型保存文件名的方法

方法一:继承DefaultTrainer重写Checkpointer配置

DefaultTrainer的模型保存逻辑由DetectionCheckpointer处理,默认最终模型文件名为model_final.pth。你可以通过继承DefaultTrainer并重写build_checkpointer方法,指定自定义文件名:

from detectron2.engine import DefaultTrainer
from detectron2.checkpoint import DetectionCheckpointer

class CustomTrainer(DefaultTrainer):
    def build_checkpointer(self, cfg, model, optimizer, scheduler):
        return DetectionCheckpointer(
            model,
            cfg.OUTPUT_DIR,
            optimizer=optimizer,
            scheduler=scheduler,
            save_dir=cfg.OUTPUT_DIR,
            final_model_name="my_custom_model.pth"  # 此处替换为你的目标文件名
        )

# 使用自定义Trainer执行训练
cfg = get_cfg()
# ... 你的配置初始化代码 ...
trainer = CustomTrainer(cfg)
trainer.resume_or_load(resume=False)
trainer.train()

方法二:训练完成后手动重命名文件

如果不想修改Trainer类结构,可以在训练结束后直接对默认生成的文件进行重命名,操作简单直接:

import os

cfg = get_cfg()
# ... 你的配置初始化代码 ...
trainer = DefaultTrainer(cfg)
trainer.resume_or_load(resume=False)
trainer.train()

# 重命名模型文件
default_model_path = os.path.join(cfg.OUTPUT_DIR, "model_final.pth")
target_model_path = os.path.join(cfg.OUTPUT_DIR, "my_custom_model.pth")

if os.path.exists(default_model_path):
    os.rename(default_model_path, target_model_path)
    print(f"模型已重命名为: {target_model_path}")

两种方法各有适用场景:方法一适合需要嵌入自动化训练流程的场景,从根源修改保存逻辑;方法二更适合快速调整、无需重构代码的临时需求。

内容的提问来源于stack exchange,提问作者jianfeng cai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 21:20:27