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

如何在ClearML中查询并下载特定项目指定指标的最优模型

筛选并下载ClearML项目中指定指标最优模型

完整解决方案

要筛选出YOLOv5项目中mAP_0.5:0.95指标最高的模型并下载,可按以下步骤实现:

1. 提取模型关联的指标数据

每个ClearML模型对象绑定着训练它的任务实例,通过任务可以获取训练过程中上报的所有标量指标,从中提取mAP_0.5:0.95的最大值。

2. 排序选出最优模型

将所有模型按目标指标值从高到低排序,排名第一的即为最优模型。

3. 下载最优模型

调用模型的get_local_copy()方法完成本地下载。


完整代码示例

from clearml import Model

# 1. 获取指定项目的模型列表
model_list = Model.query_models(
    project_name='YOLOv5', 
    model_name=None,
    tags=['demo', '-TF'],
    only_published=False,
    include_archived=True,
    max_results=5
)

# 2. 定义函数,提取模型的mAP_0.5:0.95最大值
def get_map_score(model):
    task = model.get_task()
    scalars = task.get_reported_scalars()
    # 注意:此处路径需匹配你的训练任务上报指标的实际分组和名称
    map_scores = []
    if 'metrics' in scalars and 'mAP_0.5:0.95' in scalars['metrics']:
        # 提取该指标的所有数值点并取最大值
        for _, value in scalars['metrics']['mAP_0.5:0.95']['series']:
            map_scores.append(value)
    return max(map_scores) if map_scores else 0.0

# 3. 按mAP_0.5:0.95降序排序模型
sorted_models = sorted(model_list, key=get_map_score, reverse=True)

# 4. 下载最优模型
if sorted_models:
    best_model = sorted_models[0]
    score = get_map_score(best_model)
    print(f"正在下载最优模型(mAP_0.5:0.95={score:.4f})...")
    local_path = best_model.get_local_copy()
    print(f"模型已下载到:{local_path}")
else:
    print("未找到符合条件的模型")

关键注意事项

  • 指标路径调整:代码中'metrics'和'mAP_0.5:0.95'是YOLOv5默认的指标上报路径,若你的训练任务中指标存储路径不同,可在ClearML Web界面的任务「Scalars」标签页查看实际的指标分组和名称,再修改代码对应字段。
  • 无指标模型处理:代码中对未上报目标指标的模型默认赋值0分,你可根据需求调整这部分逻辑(比如跳过这类模型)。

参考文档翻译(原文档:Querying Models)

你可以使用Model.query_models()方法检索符合特定条件的模型,参数说明如下:

  • project_name:仅返回指定项目下的模型
  • model_name:筛选模型名称(支持模糊匹配,设为None则不限制)
  • tags:筛选带有指定标签的模型,前缀-表示排除带有该标签的模型
  • only_published:设为True时,仅返回已发布的模型
  • include_archived:设为True时,结果中包含已归档的模型
  • max_results:设置返回的最大模型数量

内容的提问来源于stack exchange,提问作者Mike B

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:50:13