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

训练Transformer模型后无法保存最优模型,求问题排查

问题分析与解决

核心原因

你创建了ModelCheckpoint回调cp_callback,但没有将它传入model.fit()的callbacks参数列表,当前callbacks里只有display_cb,导致保存最优模型的逻辑根本没被执行。

修复步骤

修改model.fit()的callbacks参数,把cp_callback加入进去:

history = model.fit(
    ds,
    validation_data=val_ds,
    callbacks=[display_cb, cp_callback],  # 加入cp_callback
    initial_epoch=0,
    epochs=1
)

额外检查点(避免后续问题)

  • 确认val_ds包含有效验证数据:如果验证数据集为空,val_loss无法计算,回调会因为没有监控指标而不触发保存。
  • 优化检查点路径格式:建议给filepath指定具体的文件名模板,比如:
    checkpoint_path = '/content/asr-checkpoint/best_model.keras'
    
    或者带epoch和loss的命名规则:
    checkpoint_path = '/content/asr-checkpoint/model-{epoch:02d}-{val_loss:.2f}.keras'
    
    这样能更清晰地管理模型文件,避免目录保存可能出现的异常。
  • 当前训练仅执行1轮:如果只训练1个epoch,save_best_only=True只会保存这一轮的模型(因为没有其他轮次对比),如果需要多轮训练找最优,需调整epochs参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 02:18:16