cube-studio/job-template/job/tf_model_evaluation/README.md
2022-02-26 22:36:02 +08:00

41 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# tensorflow模型评估任务配置
```
{
"job_detail": {
"script_name": "<str>",
"evaluation_args": {
"losses": "<str|dict>",
"batch_size": <int>,
"metrics": <str|dict>,
"model_call_exclude_input_index": <int>|[<int>...],
"input_squeeze": <bool>,
"models": [
{
"name": "<str>",
"path": "<str>"
},
...
],
"output_file": "<str>"
},
"test_data_args": {
"<str>": <any>
}
}
}
```
- **job_detail**: 任务的详细描述,其下字段有:
- **script_name**:用户脚本文件名,默认在包目录中,支持相对路径
- **evaluation_args**:评估流程详细参数,其下字段有:
- **losses**:用法与训练时一样。
- **batch_size**:评估数据的批次大小
- **metrics**用法与训练时一样但是可以使用与训练时不同的metric
- **model_call_exclude_input_index**当模型数据集有多输入时call模型时是否要排除某些输入。一般情况下不用设置这个参数目前唯一的使用场景是使用gauc metric时因为metric输入中需要加上用户标识uid而在模型训练或者预测时这个uid又是用不到的这样在Dataset输出和模型输入上就有了差异此时可以通过设置这个参数来修改call模型时候的输入。
- **input_squeeze**与model_call_exclude_input_index类似一般情况下也用不到主要是标识如果call模型输入中去掉了model_call_exclude_input_index设置的几路输入后只剩下一路是否需要去掉输入外层的tuple或list类似于张量处理中的squeeze压缩。
- **models**:需要作为对比的模型数组,其中每个模型有如下字段(!!#cc0000 **有多个模型对比时,最后一个模型将被视为基线模型**!!
- **name**:模型名称
- **path**:模型文件所在目录,可以使用`${ONLINE_MODEL}$`魔法变量
**!!#ff00ff 注意所有模型应该具有相同的输入和输出另外models数组中的最后一个模型将被认为是基线模型!!**
- **output_file**:评估结果输出文件名字(!!#cc0000 不要包含路径名,输出文件会放在数据目录下!!文件内容是一个json dict格式。其中包含所有模型的评估结果**!!#cc0000 一般如果下游要接部署任务的话可以配置output_file并把这个文件名配置为部署任务的upstream_output_file这样部署任务就会从这个文件里面获得最优模型的路径。!!**
- **test_data_args**awf_create_test_dataset_fn回调函数的参数关于awf_create_test_dataset_fn请参考[]。