Sagemaker Studio Trial组件图表无法显示TensorFlow训练的损失和准确率曲线
解决方案
1. 修正正则表达式语法错误
你当前配置的所有指标正则都缺少捕获组的闭合右括号),即使目前指标标签页能正常采集到数据,语法不规范也会导致Trial组件解析指标维度关联时出错,同时需要新增epoch指标捕获用于匹配X轴维度,修正后的metric_definitions配置如下:
metric_definitions=[ {'Name':'train:loss', 'Regex':'loss: ([0-9.]+)'}, {'Name':'val:loss', 'Regex':'val_loss: ([0-9.]+)'}, {'Name':'train:accuracy', 'Regex':'accuracy: ([0-9.]+)'}, {'Name':'val:accuracy', 'Regex':'val_accuracy: ([0-9.]+)'}, # 新增epoch指标捕获,用于关联X轴维度 {'Name':'epoch', 'Regex':'Epoch ([0-9]+)/'} ]
2. 确认训练日志输出规则
确保你的sm_entrypoint.sh启动的Keras训练脚本没有禁用默认日志输出,也没有自定义修改日志格式去掉epoch标识,Keras默认输出的Epoch X/总epoch数格式日志是捕获epoch指标的前提。如果是自定义打印指标,需要保证每条指标记录的相邻行有对应的epoch编号输出。
3. 重新提交训练任务
Sagemaker Experiments会缓存已创建的Trial组件元数据,之前生成的Trial组件缺少epoch维度关联,修复配置后需要给新训练任务指定新的TrialName,或者删除原有Trial组件后再重新运行训练,避免缓存数据影响展示。
4. 图表展示排查操作
重新训练后如果还是看不到曲线,可以按以下步骤操作:
- 点击Trial组件右上角的刷新按钮同步最新指标数据
- 在指标选择框中手动勾选需要展示的
train:loss、val:accuracy等指标,不要依赖系统自动选择 - X轴切换为
epoch后等待3-5秒,组件需要拉取全量指标做维度关联
内容的提问来源于stack exchange,提问作者Jake
相关产品推荐
相关产品推荐

