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

使用SimpleTransformers时如何在训练阶段上报更多自定义评估指标

解决方法

你完全可以通过配置train_model函数实现训练阶段上报自定义指标,操作方式和你给eval_model传参的逻辑完全一致,具体步骤如下:

  • 你已经开启了eval_during_training=True,只需要在调用train_model方法时,和你传入eval_model的自定义指标参数一样,把f1、acc等你需要的指标作为关键字参数传入即可,同时要确保传入验证集eval_df。
    示例代码如下:
from functools import partial
from sklearn.metrics import f1_score, accuracy_score

# 提前定义好符合你需求的指标函数,多分类场景记得指定f1的average规则
f1_multiclass = partial(f1_score, average="macro")

# 训练时直接传入自定义指标即可
model.train_model(
    train_df,
    eval_df=eval_df,
    f1=f1_multiclass,
    acc=accuracy_score
)
  • 传入的自定义指标函数需要满足参数要求:第一个入参为真实标签数组,第二个入参为模型预测结果数组,大部分sklearn内置的指标函数默认都符合这个规则,自定义指标时注意参数顺序即可。
  • 配置完成后,训练过程中每次触发评估(默认是每个checkpoint保存、每个epoch结束时,你也可以通过模型初始化参数evaluate_during_training_steps自定义评估步长),你配置的acc、f1等指标会和默认的mcc、eval_loss一起输出,同时自动写入输出目录的eval_results.txt文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:54:06