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

2.9 KiB
Raw Blame History

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_argsawf_create_test_dataset_fn回调函数的参数关于awf_create_test_dataset_fn请参考[]。