如何格式化日志以匹配SageMaker预定义的validation:auc正则表达式?
解决Amazon SageMaker中AUC列表日志匹配预定义正则的问题
正则逻辑分析
给定的预定义正则表达式为:
.*\[[0-9]+\].*#011validation-auc:([-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?).*
核心规则是:匹配包含[数字]、#011validation-auc:的日志行,要求validation-auc:后直接紧跟一个符合格式的数值(正则会捕获该数值),行内其他位置允许任意字符。
可行的日志格式调整方案
要记录AUC值列表,只需保证第一个AUC值直接紧跟在validation-auc:之后,列表其余内容放在该数值之后即可,示例格式如下:
[2]#011validation-auc:+0.89,+0.90[2]#011validation-auc:+0.89, +0.90[2]#011validation-auc:+0.89 [+0.90, +0.91]
关键注意事项
- 禁止在
validation-auc:和第一个数值之间加空格(比如原尝试的[2]#011validation-auc: [+0.89, +0.90]会匹配失败,因为冒号后是空格而非数值)。 - 列表的分隔符(逗号、空格等)以及后续数值的格式不影响正则匹配,只要第一个数值符合
[-+]?[0-9]*\.?[0-9]+(?:[eE][-+]?[0-9]+)?的格式即可。
内容的提问来源于stack exchange,提问作者Raj
相关产品推荐
相关产品推荐

