forked from PaddlePaddle/paddle-ce-latest-kpis
-
Notifications
You must be signed in to change notification settings - Fork 0
CE 模型
guochaorong edited this page May 15, 2018
·
7 revisions
paddlepaddle 代码库merge时,会触跑CE模型。 与前一次的评价指标(如精确度、cost、时长等 )比较,超过阈值会邮件告警。
这样可以尽可能早地发现paddlepaddle框架中精度、性能相关的问题。
安装python3.4及以上版本, 以及xonsh
git clone https://github.com/PaddlePaddle/continuous_evaluation continuous_evaluation
cd continuous_evaluation
git clone https://github.com/Superjomn/paddle-ce-latest-kpis tasks
目前tasks中已经有一些基础模型,你可以在此加入新的模型。
1.增加接口脚本
在模型目录增加continuous_evaluation.py, 在里面设置支持的评价指标和其阈值
目前支持的评价指标有, 精确度:acc, 损失函数:cost,耗时:duration
示例
import os
import sys
sys.path.append(os.environ['ceroot'])
from kpi import CostKpi, DurationKpi, AccKpi
##kpy定义在脚本:https://github.com/PaddlePaddle/continuous_evaluation/blob/develop/kpi.py
train_acc_kpi = AccKpi('train_acc', 0.05) #0.05 标示阈值
test_acc_kpi = AccKpi('test_acc', 0.05)
train_duration_kpi = DurationKpi('train_duration', 0.1)
tracking_kpis = [
train_acc_kpi,
test_acc_kpi,
train_duration_kpi,
2.模型的train.py 或model.py的修改
##其中评价指标对象从ce框架中import
from continuous_evaluation import (train_acc_kpi, test_acc_kpi,
train_duration_kpi, tracking_kpis)
##最终数据产生后,记录评价指标数据
train_acc_kpi.add_record(np.array(train_avg_acc, dtype='float32')) # train_avg_acc 是平均acc, accuracy = fluid.average.WeightedAverage().eval()
test_acc_kpi.add_record(np.array(test_avg_acc, dtype='float32'))
train_duration_kpi.add_record(pass_end - pass_start)
3.增加run.xsh 启动脚本
#!/usr/bin/env xonsh
import sys
model_file = 'model.py'
python @(model_file) --batch_size 128 --pass_num 5 --device CPU